PHP CPU 使用率过高

PHP CPU 使用率过高

我有一台带有 2 个处理器、4 个内核和 16GB 内存的专用服务器,我托管了一些 php 应用程序,这些应用程序对 php 和 mysql 的使用率很高。当我检查 top 命令时,我发现 php 和 mysql 消耗了大约 80% 的 CPU,但在检查 mpstat 命令以检查每个内核的使用情况时,我发现所有内核的空闲率为 95%,对此有何解释?请注意,运行这些应用程序时,服务器会变慢。我应该购买另一台内核更多的服务器吗?

top command out put:
7589 root      20   0  287648  31480  18540 R  78.7  0.2   1:49.11 php
1006 mysql     20   0 2400692 214440   6704 S  19.3  1.3 434:34.99 mysqld
18 root      20   0       0      0      0 S   2.0  0.0   1435:51 ksoftirqd/2
3 root      20   0       0      0      0 S   1.3  0.0   1424:58 ksoftirqd/0
5228 www-data  20   0  339616  29608  17772 S   1.3  0.2   0:00.72 apache2

mpstat -P ALL output:
root@datax:~#  mpstat -P ALL
Linux 3.16.0-4-amd64 (datax)    08/15/2016      _x86_64_        (4 CPU)

04:01:58 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
04:01:58 AM  all    1.49    0.13    0.83    2.23    0.00    0.03    0.00    0.00    0.00   95.29
04:01:58 AM    0    1.38    0.13    0.62    2.30    0.00    0.03    0.00    0.00    0.00   95.54
04:01:58 AM    1    1.38    0.13    0.62    2.32    0.00    0.03    0.00    0.00    0.00   95.53
04:01:58 AM    2    1.62    0.13    1.04    2.15    0.00    0.03    0.00    0.00    0.00   95.03
04:01:58 AM    3    1.59    0.13    1.04    2.16    0.00    0.03    0.00    0.00    0.00   95.06

答案1

如果您一次只运行一个代码实例,并且代码不是多线程的,那么更多的内核将对您没有帮助。

PHP 可以使用多个核心来同时处理多个请求,因为这样就不存在干扰多线程的内部代码依赖关系。

相关内容