zshrc 启动速度分析和优化
由于常年不科学的使用和随便塞东西,我的 .zshrc
里有太多太多的各类语言、SDK 的启动逻辑,因而它逐渐变得不堪重负起来。今天终于受不了了,我决定对它进行整理,移除部分太慢的代码,并且将部分不需要实时加载的东西懒加载。
速度优化的前期准备
要开始优化,首先需要有科学的评估速度的方法,这将使我们能够找到速度的瓶颈。
由于常年不科学的使用和随便塞东西,我的 .zshrc
里有太多太多的各类语言、SDK 的启动逻辑,因而它逐渐变得不堪重负起来。今天终于受不了了,我决定对它进行整理,移除部分太慢的代码,并且将部分不需要实时加载的东西懒加载。
要开始优化,首先需要有科学的评估速度的方法,这将使我们能够找到速度的瓶颈。
主要原料是 https://github.com/interbrite/letsencrypt-vesta 这个脚本。
然后写一个 python 脚本用来给用户自助签发
注目:本人不接受任何的免费的技术咨询指导,提问请先发红包!
自己有个小型的 Minecraft 服务器,为了节约成本以及管理方便,做了一整套自动化的管理方案。整套方案代码量近万行,同时很多东西都写死在了代码里,想开源但是很多东西目前还不完善,根本没法拿出手……所以写了个思路整理,若有需要的朋友可以参考着搭一个。
很久以前研究过一会儿 docker ,当时觉得只是一个轻量级的虚拟机包装而已,没觉得有多大用。
最近发现这玩意还蛮好玩的,但是又懒得翻以前的虚拟机了,于是发现一个叫 boot2docker – 国内下载(via DaoCloud) 的东西。官方宣称是“It runs completely from RAM, weighs ~27MB and boots in ~5s (YMMV).”。
现在的工程中,有一部分是用 pyspider 来抓取数据的,使用 supervisord 来管理它的进程。在使用过程中,遇到一个奇怪的问题:用supervisorctl stop pyspider
之后,pyspider 并未全部停止,而是留下了三四个进程在系统中。
查阅官方手册,在 [program:x] Section Settings 中找到了名为 stopasgroup
的选项,解释如下:
docker 在 CentOS 7 下已经收录到了 extras
包中,因此我们只需要执行:yum install docker
即可安装 docker。
安装后,使用systemctl start docker
来启动 docker 的服务,再用systemctl enable docker
来使其开机启动。顺带一提,service docker start
和chkconfig docker on
也能达到同样的效果;但由于 CentOS 7 采用了 systemd 来管理服务和开启启动项,因此我们尽量使用 systemctl
来操作服务。
别问我为什么还要用 5.2 ,我会告诉你是因为 ZendOPT 么。
言归正传。在 Linux 下,要装两个不同版本的 php 可不是下载两个 exe 那么简单。这里采用的方法,是手工编译 php 5.2 并使用 epel 源中的 php 5.4 。前者采用 fastcgi 模式运行,后者采用传统的 mod_php 来运行。
由于某些原因,自己的FTP服务器访问起来相当不顺畅。好在手上有速度稍快的资源可以拿来当反代,Google了一大堆,最后终于找到了一个合适的项目,叫 ftp.proxy 。ftp.proxy 是一个提供 FTP 代理的程序,支持透明代理,也支持标准化的 FTP 代理。这里我们把它配置为透明(反向)代理来使用。
首先,到 ftp.proxy 的下载页面 查看最新的 ftp.proxy ,在服务器上下载它。写这篇文章的时候,最新的 ftp.proxy 是1.2.3。由于这个项目已经快10年没有更新了(The current stable version of ftp.proxy is 1.2.3 Released 30. July 2004),为了防止官方出现某些意外的错误,我把它放了一份到了百度网盘上,你可以考虑下载它。