Ramhost 是我唯一用过的 VPS 产品。性价比高是 Ramhost 最大的特色,像我这样没有什么特殊需求的用户,最便宜的方案就可以勉强满足我了。
我过去一直用的就是最便宜的 nano 方案,亚特兰大机房。最开始时是 80M 内存,2G 硬盘,流量我记不清了,反正我的小网站完全不会超流量。除了内存比较吃紧外,其它方面都比较充足。我讨厌 yum 包管理系统,也不喜欢 kloxo 那种难看又难用的图形设置方式,因此就没有使用最省内存的 centos-5-i386-kloxo-hostinabox 镜像。比较了一番后,我用的是 Debian 5.0。为了节省内存,我从网上找了一些优化方面的文章,让系统正常跑起来了,详细的内容我记录在这篇文章里了。
在我后来运行的过程中,或许是我没有优化到极致的原因,我发现 80M 内存其实不够我用的。不过 Ramhost 有 burstable 内存,nano 的方案好像是 96M,我常常发现我实际上内存的占用率在 87M~92M 之间。后来 Ramhost 取消了 burstable 内存,把实际的内存限制 定在了 burstable 的内存量上面。也就是说我的 nano 方案的实际可用内存成了 96M。之后 Ramhost 似乎也升级了流量,我的这个方案的流量成了 50G 了。
由于 Ramhost 实在是物美价廉,也不超售,因此常常 sold out。上周日我偶然看了一眼 VPS 方案,发现 Ramhost 变更了方案,而且有了新的方案可以购买了。原先的 nano / mini / micro 之类的方案都不见了,亚特兰大机房的方案名称成了 ATL-1 / ATL-2 等,堪萨斯机房的方案名称为 KCMO-1 / KCMO-2 等,新开的德国机房为 DE-1 / DE-2 等。其中亚特兰大和德国的机房属于高级方案,配置稍高;堪萨斯属于廉价方案,配置稍次。其中 ATL-1 方案有 256M 内存,10G 硬盘,200G 流量,价格却比我过去用的 nano 高了一美元,每月 3.99 美元,季付,相当合算,我立马就心动了。当时这个方案还剩 5 份,我目前用的 plan 到 6 月 27 日到期,这个时间点正好可以让我升级 VPS,也方便转移,所以我立马就买了这个方案。Ramhost 开通新 VPS 最长需要 3 个工作日,我到了今天中午就收到邮件说 VPS 已经开通了。
我之前在 Twitter 上说新 VPS 开通了之后想试试 ArchLinux,是因为看到了别人写的一篇文章《128M内存Ramhost VPS使用测评》。因为我想尽量的使用新软件,正好我这个 VPS 开通后原先的 VPS 还在,可以有足够的时间让我测试折腾。所以我的 VPS 下来了之后我立刻就 reload 了 arch-i386 这个镜像。完成后发现占用内存 5M。不过我用 pacman 更新的时候,说是无法获得数据库,我更新了一个源之后才可以刷新。上面的那片文章中说要让 ArchLinux 正常在 VPS 中运行需要禁止更新几个包,我按照说明禁止更新之后却发现我几乎什么包都没法安装了,原因似乎就是因为我禁止更新了那些包。我没有从本地使用 ArchLinux 的经验,于是发现不行后我也没有深入研究,马上换用了其它系统。
我又尝试了一下 centos-5-i386-kloxo-hostinabox 这个镜像,确认了我依然不喜欢这种配置方式(其实我也从来没有配置成功过),于是就 reload 了 ubuntu-10.04-x86 这个镜像。发现它的包并不如我想象中的那样,比 Debian 要新很多,所以就回到了我最熟悉的 Debian,不过这次用的是更新的 debian-6.0-i386 镜像。reload 了几次系统之后,我发现 Ubuntu 和 Debian 下都有一个问题,我每次用 apt-get 安装包的时候都提示我 /etc/rc6.d/S00vzreboot 这个脚本有问题。我看了一下这个脚本除了第一行的 shebang 外,只有一行 >//reboot,似乎没有什么意义,我于是把它删除了了事,到目前为止没发现什么异常。
Debian 的包的版本都很保守。一方面这样很稳定,另一方面这些包都很老。我在 VPS 开通前打算用 Nginx 1.0+ 版本,结果悲催的发现 Debian 上 Nginx 的版本还是 0.7。后来我看了某篇文章,知道了 Dotdeb 这个网站。这个网站是一个第三方 Debian 软件仓库,包含了网站服务器中需要的各种软件的 Debian 安装包,版本都很新,比如 Nginx 就是 1.0.2 的。使用起来也很方便,按照 Instructions 页面中的说明添加一个源和密钥后更新系统就可以了。
很多 VPS 设定的教程中,安装 PHP 时要装 php5 包,其实不必要的。我这次一个没注意,直接复制粘贴命令运行后发现如果我装 php5 包的话,系统会连 Apache 2 也给装上了。后来我发现我用 php-fpm 就只装 php5-fpm 就可以了,不用管其它的。在用这个 VPS 之前我还试了一把 LAMP,并成功运行了 Apache 2。但运行一段时间之后马上就耗光了内存,看来 Apache 还是不能随便的在小内存 VPS 上玩啊。
我在用 nano 方案的时候,安装 MySQL 时比较麻烦。apt-get 安装完 MySQL 后会自动运行,这时会耗光我所有的内存。我只好重启 VPS,禁用 MySQL,做优化之后才能重新启动 MySQL 守护进程。这次有了内存就不需要这么费劲了,安装完 MySQL 后内存使用量会到 125M 左右。这有足够充裕的内存供我编辑各种配置文件了。我之前读的文章中,最主要的两条是给 my.cnf 添加 skip-bdb 和 skip-innodb 这句。不过我发现添加了 skip-bdb 后重启守护进程的时候会卡在那里不动,所以我就把这一行去掉了,没发现什么问题。同样,这次因为有了更多的内存,我也没有像上次那样小心翼翼的优化,很多参数我都没有仔细调整,不过最后 MySQL 的所有进程加起来一共不到 8M,让我比较满意。
过去我用的 Lighttpd + php-cgi,最近因为 Nginx 比 Lighttpd 活跃,而且似乎 php-fpm 比 php-cgi 更先进的样子,我就在这个系统上装了 Nginx + php-fpm。之前我做网站用过 Nginx,因此这次的配置还算顺利。而我发现 Debian 里竟然搜索不到 php-fpm 包。有文章说 PHP 的新版本已经包含了 php-fpm,不过这些文章都是编译安装的这些软件,或许和我安装的有所区别。后来我添加了 dotdeb 源之后发现这个源里有 php-fpm,于是就装上了。我也考虑过我这次装的软件版本都这么新,会不会不稳定,不过我看 dotdeb 的口碑还不错,应该不会有太大的问题,而且中文 VPS 圈子里流行的 LNMP一键安装包还是直接编译的整个系统呢。
我过去用 phpMyAdmin 管理 MySQL 数据库。安装 phpMyAdmin 的时候会问我是不是要自动配置服务器,里面可以选择 Apache 和 Lighttpd。选择 Lighttpd 后就可以直接登陆了。我之前做网站的时候在 Nginx 上配置 phpMyAdmin 花了我很多功夫,设置了各种参数才勉强可用,现在想起来还很害怕。这次安装 phpMyAdmin 前提示的依赖软件包中竟然还有 Apache 2,我看了之后赶紧停止了。印象里似乎有禁止安装 Apache 的办法,不过我没有花时间去查。对着《MySQL 5.1参考手册》我通过 SQL 命令创建了数据库和新用户并分配了权限,除了不如 phpMyAdmin 只管外没什么别的问题。
创建了数据库之后,我装了个 WordPress 试了试,安装成功,不过刷新了几下页面后发现不动了。去终端看看发现系统内存耗光了,没法 fork 新进程了,应该是我没有设定 PHP 的问题。只好停止系统再启动,然后配置 php.ini 中的参数。从 php.ini 里走了一圈,调整了几个参数,把每个进程使用内存限制到 16M,但没有发现我要找的进程数目的限制。过去我在用 Lighttpd 的时候,是在 Lighttpd 的设定里调整的,Nginx 里面似乎没有这个设定。找了一下发现 php-fpm 的相关设定在 /etc/php5/fpm/pool.d/www.conf 中。我调整了 pm.start_servers、pm.min_spare_servers 和 pm.max_spare_servers 三个参数,这样开机后会有 5 个进程,进程数目在 2 个和 8 个之间浮动。或许有点高,不过我目前的系统内存还足够。
为了检测我的系统,我在上面放了一个 PHP 探针,不过没法运行。查看 log 发现了 “PHP Parse error: syntax error, unexpected $end” 提示。搜索之后发现了解决方法,在 php.ini 文件里把 short_open_tag 设定成On 就可以了,默认的是 Off。我在过去没有遇到过这种问题。
经过这么一番设置,VPS 应该是设置好了。今天挺晚了,我还没有转移数据,目前还不知道该怎么做。过去我做网站的时候用过 mysqldump 来备份,似乎也尝试过恢复,但那时的记录不知道放在哪里了,等明天还要再想想。目前必要的软件包基本上都装上了,过去我用过 Memcache,不过效果不是很明显,要不要在这上面装还有待观察。现在我执行 free -m 的结果显示内存占用为 53M,远远低于限制的标准。到了真正把数据转移过来后使用这个 VPS 的时候会怎么样,等到时候再看了。
《新 VPS》有2条评论