所以我对Linux和networking服务器相当陌生,但是大约8个月前,我们把我们的网站从共享主机环境迁移到了Linux虚拟服务器上,速度更快,并且一直运行起来,直到我们在Wordpress中重新构build我们的网站之一,出版。
WP网站在testing服务器上运行良好,但现在它已经上线到我们的服务器上,我们遇到了麻烦。 这是到目前为止发生的事情和我所做的。
网站运行良好,然后我注意到,Apache RAM和CPU峰值100%和一堆php-cgi进程启动。 然后我得到一个错误:
mod_fcgid: process ##### graceful kill fail, sending SIGKILL
WordPress的网站,然后开始给503错误,但非WordPress的网站工作得很好。
apache重新启动修复了这个问题。 所以之后我对fcgid conf文件做了一些修改,如下所示:
FcgidIdleTimeout 60 FcgidProcessLifeTime 120 FcgidMaxProcesses 150 FcgidMaxProcessesPerClass 8 FcgidMinProcessesPerClass 0 FcgidConnectTimeout 30 FcgidIOTimeout 2000 FcgidInitialEnv RAILS_ENV production FcgidIdleScanInterval 30 FcgidMaxRequestLen 1073741824
现在,当CPU / RAM秒杀发生时,我仍然得到一堆的php-cgi进程,但一段时间后,它平静下来,我得到了一堆僵尸php-cgi进程,但服务器继续下去,所以我对此感到高兴。 但是我必须偶尔重新启动这些进程。
我们在一个testing服务器上testing了我们的网站几个月,没有问题,但是现在我们一次在网站上有10-20个人。 但是我不知道是什么原因导致了这个失控,甚至不知道从哪里开始。 也许这是一个代码问题,也许这是一个服务器configuration问题。
服务器规格:
让我知道如果你需要其他的细节,我可以看看他们。
更新:所以我认为这可能是相关的一些不良的PHP代码,但这将需要时间来追查。 似乎应该有一些更强大的服务器configuration,我可以设置,以防止下降。 今天我把它放下了2-3次,其中一个把apache服务全部撞在了一起。