优化mediatemple (dv),降低100M内存占用,提高5倍访问速度!

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控制面板中也可以执行这些操作。

登陆控制面板,在“系统”-》“服务器”-》“服务管理”中设置。如图:

mt-1

mt-2

参考

二、调优Plesk

mt-3

限制Plesk PSA connections连接数

vi /usr/local/psa/admin/conf/httpsd.custom.include

增加下面这段:

MinSpareServers 1
MaxSpareServers 1
StartServers 1
MaxClients 5

注:(dv) 3.5已经默认这样设置了。

三、调优MySQL

mt-4

编辑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

然后可以去这里测试是否配置成功。

配置前:

mt-6

配置后:

mt-7

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

mt-8

参考

五、其他优化

如果你是像我这样主要用来跑WordPress。那么可以安装 wp-super-cache 这个插件加速。在后台你可以启用Wordpress自带的加速功能(右上角有个:加速  :) ),通过 Google Gears 实现的。

———————— 结束 ————————

注意:修改任何配置文件前请做好备份。以免出错时恢复。

使用cp命令备份(cp的意思就是复制啦~ :D ),例如:

cp /etc/my.cnf /etc/my.cnf.20090406.bak

表示把 /etc/ 目录下的 my.cnf 复制一份并命名为 my.cnf.20090406.bak

如果有什么不对的地方,请指教。

———————— :D ————————

点击这里了解更多(mt)

无觅相关文章插件,快速提升流量

This entry was posted in Linux and tagged , , , . Bookmark the permalink.

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">