PHP进程加载并卡住所有CPU

时间:2015-12-05 09:21:39

标签: php centos overloading cpanel

我有一个PHP脚本,可以让我拥有一个社交网络和类似的。

通常,没有任何问题,我的服务器是VPS:

  • 2.4 GHz CPU
  • 4个核心
  • 8 GB RAM
  • 150GB SSD
  • 带有cPanel的CentOS 7.1。

问题是通常服务器可以在30个并发用户的30到40%的CPU负载下保持不变。但有时候,我不知道出于什么原因,负载非常高,一直到98-100%。即使用户注销,网站中甚至只有3-4人,服务器负载始终保持在98-100%,直到我不重启服务器。

所以,我注意到,通过SSH使用 top 命令,在PHP中创建了一个进程,用户作为网站空间的所有者(通过cPanel创建)和命令PHP。此过程的负载为20%至27%。

事实是,更多的这些PHP进程创建了更多的时间。 例如,30分钟后,还有另一个PHP进程具有与第一个进程相同的特征。两者一起占用CPU负载的50-60%。更多的时间通过,创建更多的流程,最多4个这样的流程。 (是因为我的CPU有4个核心?)。

如果我在1-2分钟内通过 kill [pid] 终止这些进程,即使有10-15个并发用户,服务器也会回到3%。

有什么问题?这是严格的PHP文件相关或什么?我甚至尝试在网站上做事件来检查这些PHP处理(甚至无用)的操作。因为如果我杀了他们,网站继续工作非常好!

可能是什么问题?

有一个CPU使用情况的屏幕: Screenshot

谢谢大家。

1 个答案:

答案 0 :(得分:1)

如果进程正在进行大量的I / O操作,如数据库调用等,则会大大增加CPU负载。在您的情况下,您确定了这个高负载背后的原因。注意到负载增加了时间,你应该仔细查看PHP脚本的内存泄漏,大量的会话,大量的嵌套循环与IO之间的拉力,并试图找出它的原因。祝你好运