我有一个 PHP 脚本,它使我能够拥有一个社交网络和类似的东西。
通常,没有任何问题,我的服务器是一个 VPS:
问题是,通常服务器可以维持 30-40% 的 CPU 负载,大约 30 个并发用户。但有时,我不知道是什么原因,负载真的很高,一直到 98-100%。即使用户注销并且网站中只有 3-4 人,服务器负载始终保持在 98-100%,直到我不重新启动服务器。
所以,我注意到,使用 顶部 通过 SSH 命令,在 PHP 中创建一个进程,用户作为 webspace 的所有者(通过 cPanel 创建)并作为命令 PHP。此过程的负载为 20% 到 27%。
事实是,这些 PHP 进程中的更多创建时间越长。
例如,在 30 分钟后,有另一个 PHP 进程与第一个进程具有相同的特性。两者加在一起,占用了 50-60% 的 CPU 负载。更多的时间过去,更多的进程被创建,最多 4 个这样的进程。 (是因为我的 CPU 有 4 个内核吗?)。
如果我通过 杀死这些进程杀死 [pid] 在 1-2 分钟内,即使有 10-15 个并发用户,服务器也会恢复到 3%。
问题是什么?它是严格的 php 文件相关的还是什么?我什至尝试在网站上进行事件以检查这些 PHP 进程(甚至无用)启动的操作。因为如果我杀了他们,网站会继续运行得很好!
可能是什么问题呢?
有一个CPU使用率屏幕:
谢谢你们。
最佳答案
如果一个进程正在进行大量的 I/O 操作,如数据库调用等,它会大大增加 CPU 负载。在您的情况下,您可以确定导致这种高负载的过程。注意到负载明显增加了时间,您应该仔细查看 PHP 脚本是否存在内存泄漏、大量 session 、大量嵌套循环以及 IO 拉入其间,并尝试找出原因。祝你好运
关于PHP进程加载并卡住所有CPU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34103255/