服务器响应缓慢:ps aux 显示许多 php5-fpm 进程

服务器响应缓慢:ps aux 显示许多 php5-fpm 进程

我刚刚设置好了自己的 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 -mtop)并验证您是否没有达到此处的某些限制。

话虽如此,我不知道你的统计数据是什么,这个536ms请求时间只是针对主页的吗?它可能不是很棒,但也不是那么糟糕。尝试将其与一些静态页面和其他 PHP 应用程序进行比较看看问题出在哪里。WordPress没有缓存可能不是最快的,但是如果您知道问题的原因,您可以稍后尝试优化。

相关内容