4月1日租了(mt)的(dv) BASE,尽管租之前已经做好了牺牲速度换取自由、稳定性的打算,但2天用下来,速度大大低于我的预期,非常不满意!!于是开始了折腾,要折腾明白它为什么那么慢..
首先,排除法。访问了几个不同朋友的(mt)(dv),速度暴快!页面几乎一点就开。说明我网速不慢,同样也说明,正常情况下国外服务器的访问速度也是可以足够快的。
那么,是不是服务器负载的问题呢?不太可能。才刚租下哇,仅绑了几个站点,而且都没什么访问量(约100 IP/天/站)。朋友的(dv)都是20人合租,且访问量起码是我的10倍。从服务器的uptime来看,load average也是低的可怜,接近0,从带宽占用来看,也很少很少(应该不存在mp3、图片等被盗链的情况)。
那为何这么慢呢??用HttpWatch监测。一次访问耗时40秒左右,DNS Lookup、Connect、Send、Receive阶段都很快(3-5秒),其他时间都卡在Wait阶段。看来,慢的主要原因在服务器对请求的响应上。第一感觉就是内存不够用。(早就耳闻(dv)Base的内存让人捉襟见肘(仅256M),只是没想到这么快…)。
在Plesk控制面板中,看见系统总内存(total)673.34MB,使用了(Used) 410.39MB,剩余(free)262.95MB。有点高。尝试把内存降下来,看看能否提高响应速度。
(注:我没弄明白总内存为何是673.34MB,哪位能告诉我答案?thanks)
———————— 下面正式开工 ————————
一:关掉不需要的服务
(dv)默认开启了 SMTP服务器(QMail)、IMAP/POP3 服务器 (Courier-IMAP)、DNS 服务器 (BIND)、SpamAssassin,这些对我来说都没用,完全可以禁掉。以下操作均需要以root账号登陆(推荐使用putty)。
1、禁用DNS服务
/etc/init.d/named stop
chmod 644 /etc/init.d/named
也可以下面这句禁掉它
/usr/local/mt/bin/mib –disablenamed –apply
如果以后需要用,用下面这句启动它
/usr/local/mt/bin/mib –enablenamed –apply
注:效果非常明显!大约可以释出50M内存,执行完这步之后已经明显可以感觉到服务器响应快了很多。
2、禁用SpamAssassin
/etc/init.d/psa-spamassassin stop
chmod 644 /etc/init.d/psa-spamassassin
3、禁用Watchdog((dv)3.5默认就是关闭的)
rpm -e psa-watchdog
如果你觉得上面的操作看不懂,没关系。其实在Plesk控制面板中也可以执行这些操作。
登陆控制面板,在“系统”-》“服务器”-》“服务管理”中设置。如图:


二、调优Plesk

限制Plesk PSA connections连接数
vi /usr/local/psa/admin/conf/httpsd.custom.include
增加下面这段:
MinSpareServers 1
MaxSpareServers 1
StartServers 1
MaxClients 5
注:(dv) 3.5已经默认这样设置了。
三、调优MySQL

编辑mysql配置文件:
vi /etc/my.cnf
增加下面这段在[MySQLd]这块中:
query-cache-type = 1
query-cache-size = 8M
修改完了重启MySQL
/etc/init.d/mysqld stop
/etc/init.d/mysqld start
注:(dv) 3.5已经默认这样设置了。参考
四、调优Apache
修改Apache配置文件:
vi +/Timeout /etc/httpd/conf/httpd.conf
将timeout的值从120修改为20.
vi +/MaxClients /etc/httpd/conf/httpd.conf
按照下面的值修改..
<IfModule prefork.c>
StartServers 1
MinSpareServers 1
MaxSpareServers 3
ServerLimit 50
MaxClients 50
MaxRequestsPerChild 4000
</IfModule>
修改完成后重启apahce
/etc/init.d/httpd restart
注:(dv) 3.5已经默认这样设置了。参考
设置完上面这些,我的(dv)内存占用基本上稳定在280M-310M。
设置apache的mod_deflate模块,提高传输性能。
(因为要压缩文件,所以会增加CPU的负担。不过对我来说问题不大,这颗CPU本身也很“悠闲”。)
1、先看看是否已经启用
grep ‘mod_deflate’ /etc/httpd/conf/httpd.conf
如果显示为下面这样,这继续第2步
LoadModule deflate_module modules/mod_deflate.so
如果显示为下面这样(前面多了个#号)
#LoadModule deflate_module modules/mod_deflate.so
执行
perl -pi -e ‘s/# LoadModule mod_deflate/LoadModule mod_deflate/g’ /etc/httpd/conf/httpd.conf
2、修改apache配置文件
vi /etc/httpd/conf/httpd.conf
在最后增加一段
#
# Deflate output configuration
#
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
重启apahce。
/usr/sbin/apachectl -t
如果提示“Syntax OK”,再执行
/usr/sbin/apachectl graceful
然后可以去这里测试是否配置成功。
配置前:

配置后:

在HttpWatch中也能看见效果(和上图不是同一天测的
)

五、其他优化
如果你是像我这样主要用来跑WordPress。那么可以安装 wp-super-cache 这个插件加速。在后台你可以启用Wordpress自带的加速功能(右上角有个:加速
),通过 Google Gears 实现的。
———————— 结束 ————————
注意:修改任何配置文件前请做好备份。以免出错时恢复。
使用cp命令备份(cp的意思就是复制啦~
),例如:
cp /etc/my.cnf /etc/my.cnf.20090406.bak
表示把 /etc/ 目录下的 my.cnf 复制一份并命名为 my.cnf.20090406.bak
如果有什么不对的地方,请指教。
————————
————————
