stream量增加导致VPS由于RAM利用率而崩溃

我有一个运行多个Opencart站点的VPS,并且大部分执行任务非常好。

规格:

中央处理器
GenuineIntel,Intel(R)Xeon(R)CPU E5-2665 0 @ 2.40GHz

Parallels Plesk Panel v11.5.30_build115130819.13 os_CentOS 6
OS
CentOS 6.2(最终)
内存 4GB

然而,我有一个客户经常进行stream行的促销活动,导致他们的网站stream量大概在3000 – 4000人左右,大概1-2个小时,其中许多人正在尝试完成订单stream程。

当这些促销活动运行时,我可以观察到RAM降低到达到100%利用率的一个点,并导致所有站点甚至SSH访问VPS都会丢失,并显示以下错误日志:

(12)无法分配内存:mod_fcgid:无法运行/ var / www / cgi-bin / cgi_wrapper / cgi_wrapper [警告](12)无法分配内存:mod_fcgid:spawn进程/ var / www / cgi-bin / cgi_wrapper / cgi_wrapper错误

重新启动Apache或VPS不会帮助和内存利用率只有恢复正常,因为人们放弃和停止不断点击该网站。 即使将内存提高到6GB也没有解决这个问题,但我认为这将是任何合理数量的内存相同。

我已经把这个报告给我的主人谁是相当无益的。 他们表示,他们已经优化了Apache的工作方式,但是我仍然看到每个促销都会导致完全中断的问题。

经过优化,我的Apacheconfiguration如下所示:

IfModule prefork.c
StartServers 2
MinSpareServers 2
MaxSpareServers 5
ServerLimit 80
MaxClients 200
MaxRequestsPerChild 400

IfModule worker.c
StartServers 1
MaxClients 10
MinSpareThreads 1
MaxSpareThreads 4
ThreadsPerChild 25
MaxRequestsPerChild 0

我也刚刚注意到,他们已经设置了KeepAliveclosures。

这个客户有一个促销在不久的将来运行,我很想深究这点,以确保网站始终保持活跃。

任何build议将不胜感激,请询问是否需要更多的信息。

提前致谢。

我build议以下一项或多项:

  • 将该客户端移到单独的VPS。
  • 大幅减lessMaxClients,例如10
  • 使用nginx代替Apache,或者在Apache前面使用varnish
  • 使用cloudflare

你正在运行apc? 如果没有,我会安装,看看情况是否改善。 我也看看php的fcgiconfiguration。 由于php是从Apache下运行分开的fcgi,我不相信你的问题是与Apache。