我刚刚设置好了自己的 VPS,其规格如下:2 Ghz 单核 CPU 和 1 GB RAM。
我使用 nginx 来满足我的网络服务器需求。我安装了 Ruby on Rails、Phusion Passenger、mysql 和 php5-fpm。
我上传了一个 Wordpress 博客,但响应速度很慢:http://cl.ly/6Hks. 请求页面时CPU负载大概在10-20%左右。
当我查看 ps aux 时,我看到以下输出:
root 896 0.0 0.3 40916 4080 ? Ss 10:49 0:00 /usr/bin/php5-fpm --fpm-config /etc/php5/fpm/php5-fpm.conf
www-data 897 0.1 3.2 66488 33260 ? S 10:49 0:04 /usr/bin/php5-fpm --fpm-config /etc/php5/fpm/php5-fpm.conf
www-data 898 0.1 2.0 54660 21084 ? S 10:49 0:04 /usr/bin/php5-fpm --fpm-config /etc/php5/fpm/php5-fpm.conf
www-data 899 0.1 3.1 66468 32040 ? S 10:49 0:04 /usr/bin/php5-fpm --fpm-config /etc/php5/fpm/php5-fpm.conf
www-data 900 0.1 3.1 66492 32196 ? S 10:49 0:05 /usr/bin/php5-fpm --fpm-config /etc/php5/fpm/php5-fpm.conf
www-data 901 0.1 3.1 66984 32300 ? S 10:49 0:04 /usr/bin/php5-fpm --fpm-config /etc/php5/fpm/php5-fpm.conf
www-data 902 0.1 3.2 68040 33648 ? S 10:49 0:05 /usr/bin/php5-fpm --fpm-config /etc/php5/fpm/php5-fpm.conf
www-data 903 0.1 3.3 68364 33924 ? S 10:49 0:04 /usr/bin/php5-fpm --fpm-config /etc/php5/fpm/php5-fpm.conf
www-data 904 0.1 3.3 68348 34088 ? S 10:49 0:05 /usr/bin/php5-fpm --fpm-config /etc/php5/fpm/php5-fpm.conf
www-data 905 0.1 3.3 68572 34140 ? S 10:49 0:04 /usr/bin/php5-fpm --fpm-config /etc/php5/fpm/php5-fpm.conf
www-data 906 0.1 3.1 66500 32068 ? S 10:49 0:04 /usr/bin/php5-fpm --fpm-config /etc/php5/fpm/php5-fpm.conf
有那么多 php5-fpm 进程是正常的吗?
另外,当我对域上的静态页面执行跟踪路由时,它会非常快地执行,但是当我对 wordpress 博客进行跟踪路由时,输出如下:
1 10.15.206.1 (10.15.206.1) 8.832 ms 9.044 ms 19.764 ms
2 p7001.net.upc.nl (212.142.7.1) 22.976 ms 10.605 ms 12.005 ms
3 84.116.244.21 (84.116.244.21) 15.661 ms 14.731 ms 15.406 ms
4 nl-ams04a-ri2-xe-9-1-0.aorta.net (84.116.130.218) 16.405 ms
nl-ams04a-ri2-xe-9-0-0.aorta.net (84.116.130.170) 27.288 ms
nl-ams04a-ri2-xe-2-3-0.aorta.net (84.116.134.89) 13.824 ms
5 te7-1-10g.ar2.ams1.gblx.net (64.212.107.49) 15.009 ms
208.178.58.193 (208.178.58.193) 14.877 ms 15.392 ms
6 nominum.port-c2.552.406.ar4.lon3.gblx.net (64.210.69.250) 26.768 ms 24.410 ms 21.830 ms
7 81.200.66.253 (81.200.66.253) 27.068 ms 23.849 ms 24.113 ms
8 * * *
9 * * *
10 * * *
11 * * *
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * *^C
最终我只是退出了这个过程,因为它没有结束。
答案1
首先,没有这样的东西traceroute
到静态/动态页面。 完成在主机级别。因此,除非您使用不同的服务器来托管静态内容和动态页面,否则traceroute
在这种情况下不会真正有帮助。
至于产卵数量 php
进程- 这是完全可配置的,应该在您拥有的资源和您预期的负载之间取得平衡。问题是您希望处理尽可能多的进程(为多个并发用户提供服务而无需排队等待),但同时又不想完全耗尽内存。如果您的服务器开始交换,性能将严重下降。
您可以尝试通过以下方式进一步诊断这种情况检查当前内存使用情况(free -m
或top
)并验证您是否没有达到此处的某些限制。
话虽如此,我不知道你的统计数据是什么,这个536ms
请求时间只是针对主页的吗?它可能不是很棒,但也不是那么糟糕。尝试将其与一些静态页面和其他 PHP 应用程序进行比较看看问题出在哪里。WordPress没有缓存可能不是最快的,但是如果您知道问题的原因,您可以稍后尝试优化。