一直对这个资源超紧张的主机上用 lighttpd + mysql + wordpress 拼凑起来的小站性能没谱,简单的测试了一下,竟然不比 DH 上的站点慢。测试很简单,没有用专业的httperf 之类的工具,就是用若干 wget 进程同时请求不同的页面。用的这个小脚本,同时请求 18 个页面。
$ cat abaseurl=$1
for y in 2006 2007 ; do
for m in 04 05 06 07 08 09 10 11 12 ; do
wget -q http://$baseurl/$y/$m/ -O $(dirname $baseurl)-$y-$m.html &
done
done
wait
运行时间 13 秒多点:
$ time bash a joyus.org/blogreal 0m13.462s
user 0m0.048s
sys 0m0.080s
运行的同时在主机上查看内存和 CPU 占用情况,内存和 CPU 占用情况没什么大问题,完全不超过主机服务商的限制。lighttpd 还真不错,做个 blog 好得很。就是起的那几个 php cgi 进程内存占用比较多,不敢多起。
$ vmstat 1procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 0 189896 0 0 0 0 0 0 0 1383 0 0 100 0
0 0 0 189896 0 0 0 0 0 0 0 1211 0 0 100 0
0 0 0 189896 0 0 0 0 0 0 0 1349 0 0 100 0
5 0 0 182072 0 0 0 0 0 0 0 1594 11 1 89 0
5 0 0 173536 0 0 0 0 8 0 0 1793 13 1 86 0
5 0 0 180636 0 0 0 0 0 0 0 1429 12 0 88 0
8 0 0 174716 0 0 0 0 0 0 0 1634 12 0 88 0
6 0 0 175352 0 0 0 0 0 0 0 1572 12 0 88 0
5 0 0 189380 0 0 0 0 0 0 0 1497 12 1 87 0
6 0 0 176212 0 0 0 0 16 0 0 2566 14 1 86 0
5 0 0 176536 0 0 0 0 16 0 0 1583 14 0 86 0
7 0 0 175916 0 0 0 0 16 0 0 2036 16 0 84 0
6 0 0 176532 0 0 0 0 24 0 0 1407 14 0 86 0
6 0 0 176492 0 0 0 0 16 0 0 1602 13 0 87 0
2 0 0 175900 0 0 0 0 32 0 0 2305 11 0 89 0
0 0 0 176052 0 0 0 0 16 0 0 1264 1 0 99 0
0 0 0 176052 0 0 0 0 0 0 0 1383 0 0 100 0
0 0 0 176052 0 0 0 0 0 0 0 1297 0 0 100 0
0 0 0 176052 0 0 0 0 0 0 0 1358 0 0 100 0
而针对这哥们的站点(在 dreamhost 上)运行后返回的时间是 14 秒多点:
$ time bash a gopherwood.inforeal 0m14.403s
user 0m0.052s
sys 0m0.072s
这是 top 按内存占用排序:
$ toptop - 21:35:27 up 5 days, 5:29, 1 user, load average: 0.01, 0.25, 0.17
Tasks: 17 total, 1 running, 16 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 262144k total, 86280k used, 175864k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 0k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
29979 www-data 15 0 21964 12m 2884 S 0 4.8 0:01.05 php5-cgi
29818 www-data 15 0 21936 12m 2812 S 0 4.8 0:01.27 php5-cgi
29819 www-data 15 0 21896 12m 2800 S 0 4.8 0:01.18 php5-cgi
29993 www-data 15 0 21916 12m 2792 S 0 4.8 0:00.60 php5-cgi
29990 www-data 15 0 21860 12m 2796 S 0 4.7 0:00.57 php5-cgi
12271 mysql 15 0 20144 8696 4188 S 0 3.3 0:04.05 mysqld
24432 www-data 15 0 13636 3968 2636 S 0 1.5 0:00.01 php5-cgi
24431 www-data 18 0 4688 2544 1276 S 0 1.0 0:00.14 lighttpd
28359 root 16 0 7476 2420 2004 S 0 0.9 0:00.03 sshd
28389 XXXXXX 15 0 3216 1852 1200 S 0 0.7 0:00.00 bash
28384 XXXXXX 15 0 7476 1528 1108 S 0 0.6 0:00.01 sshd
12207 root 21 0 2384 1196 960 S 0 0.5 0:00.01 mysqld_safe
31891 XXXXXX 15 0 2140 1072 864 R 0 0.4 0:00.02 top
22159 root 15 0 4692 1060 760 S 0 0.4 0:00.00 sshd
20248 syslog 18 0 1700 704 584 S 0 0.3 0:00.03 syslogd
1 root 15 0 1488 528 460 S 0 0.2 0:08.46 init
12272 root 18 0 1472 500 432 S 0 0.2 0:00.00 logger
一些配置记录如下,其中 mysql 的配置尤其关键:
fastcgi "max-procs" => 1
"PHP_FCGI_CHILDREN" => "5" "3"php.ini memory_limit = 16M 24Mmy.cnf key_buffer = 32K
key_buffer_size = 32K
max_allowed_packet = 2M
thread_stack = 128K
table_cache = 8
sort_buffer_size = 64K
read_buffer_size = 256K
net_buffer_length = 16K
query_cache_limit = 4M
query_cache_size = 8M
query_cache_type = 1
skip-bdb
skip-innodbwp-config.php define('WP_MEMORY_LIMIT', '10MB' '20MB');