PHP 进程加载并占用所有 CPU
PHP processes load and stuck taking all CPUs
我有一个 PHP 脚本,可以让我拥有社交网络等类似功能。
通常情况下,没有任何问题,我的服务器是 VPS,其中:
- 2.4 GHz CPU
- 4 核
- 8 GB RAM
- 150GB 固态硬盘
- 带有控制面板的 CentOS 7.1。
问题是服务器通常可以保持 CPU 30-40% 的负载,大约 30 个并发用户。但有时,我不知道为什么,负载会非常高,一直达到 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用法的画面:
谢谢大家
如果一个进程正在进行大量 I/O 操作,例如数据库调用等,它会大大增加 CPU 负载。在您的情况下,您确定导致这种高负载的过程。注意到负载明显增加了时间,您应该仔细查看 PHP 脚本是否存在内存泄漏、大量会话、大量嵌套循环以及夹在中间的 IO,并尝试找出其原因。祝你好运
我有一个 PHP 脚本,可以让我拥有社交网络等类似功能。
通常情况下,没有任何问题,我的服务器是 VPS,其中:
- 2.4 GHz CPU
- 4 核
- 8 GB RAM
- 150GB 固态硬盘
- 带有控制面板的 CentOS 7.1。
问题是服务器通常可以保持 CPU 30-40% 的负载,大约 30 个并发用户。但有时,我不知道为什么,负载会非常高,一直达到 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用法的画面:
谢谢大家
如果一个进程正在进行大量 I/O 操作,例如数据库调用等,它会大大增加 CPU 负载。在您的情况下,您确定导致这种高负载的过程。注意到负载明显增加了时间,您应该仔细查看 PHP 脚本是否存在内存泄漏、大量会话、大量嵌套循环以及夹在中间的 IO,并尝试找出其原因。祝你好运