我的服务器经常出现内存中断。
服务器正在疯狂地派生新的连接。我有一个安装了WHM的VPS。
这是我的主机的回复:“问题似乎是您的服务器一直在占用其内存资源。我们已经对常见的原因进行了调整,例如您的dns服务器在新系统上看到的每个CPU都会产生一个线程,但我建议您进一步配置服务器,以最大限度地减少内存使用。您的apache服务器的MaxClients设置似乎也相当高,但不是能够清除配置文件以查看其设置位置。“”
我通过shell进入并调整了httpd。conf文件对Maxclients、MaxRequestsPerChild和MaxKeepAliverRequests进行了一百万次更改,但都没有效果
我正在使用WHM中的TOP和putty(shell)中的beancounter进行监控,我看到大量内存中断。
我完全不知道是什么在吸干这些记忆。我甚至通过IP禁令来查看机器人是否在吸收内存,但要么我无法获得正确的信息,要么这不是问题所在。
IT/WP/PHP eprt需要坏
谢谢
SO网友:Evan Wondrasek
在缓存尽可能多的动态请求的基础上,通过W3 Total Cache, 我还必须修改PHP配置,以便在内存不足的web服务器上表现良好。在调整PHP之前,它会产生太多的PHP子进程,耗尽RAM,进行交换,并基本上关闭整个服务器。
我正在运行Nginx和PHP5-FPM,但解决问题的是编辑我的PHP5-FPM配置(在/etc/php5/fpm/php5-fpm.conf
我相信)并减少pm.max_children = 12
到pm.max_children = 10
. 自从进行此更改后,我没有出现任何内存问题。
您的配置可能会有所不同,但我相信PHP也有类似的配置值,您可以调整这些值以减少内存使用。
要了解哪些进程占用了您的内存,请使用top
如果可用,请按SHIFT+M按内存使用情况排序。当我的服务器出现问题时,我会看到大量的php进程正在消耗资源。