我有一个PHP脚本,可以让我拥有一个社交网络和类似的。
通常,没有任何问题,我的服务器是VPS:
问题是通常服务器可以在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处理(甚至无用)的操作。因为如果我杀了他们,网站继续工作非常好!
可能是什么问题?
谢谢大家。
答案 0 :(得分:1)
如果进程正在进行大量的I / O操作,如数据库调用等,则会大大增加CPU负载。在您的情况下,您确定了这个高负载背后的原因。注意到负载增加了时间,你应该仔细查看PHP脚本的内存泄漏,大量的会话,大量的嵌套循环与IO之间的拉力,并试图找出它的原因。祝你好运