高 CPU 使用率 + 低内存使用率

高 CPU 使用率 + 低内存使用率

正如您在下面看到的,Apache 正在使用大量 CPU。


  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM     TIME+ COMMAND
28577 apache    15   0 99676  53m 3488 S   21  0.2   1:13.67 httpd
28568 apache    15   0 99676  53m 3496 S   19  0.2   1:14.92 httpd
28608 apache    15   0 99676  53m 3428 R   19  0.2   0:28.28 httpd
28615 apache    15   0 99676  53m 3436 R   19  0.2   0:25.33 httpd
28616 apache    15   0 99676  53m 3440 S   19  0.2   0:25.83 httpd
28619 apache    15   0 99676  53m 3436 R   19  0.2   0:26.12 httpd
28635 apache    15   0 97.9m  54m 3416 S   19  0.2   0:24.86 httpd
28558 apache    15   0 97.9m  54m 3432 R   17  0.2   1:40.75 httpd
28560 apache    15   0 97.9m  54m 3496 R   17  0.2   1:40.02 httpd
28621 apache    15   0 97.9m  54m 3420 S   17  0.2   0:25.61 httpd
28641 apache    16   0 97.9m  54m 3428 R   17  0.2   0:21.52 httpd
28642 apache    15   0 99756  53m 3424 R   15  0.2   0:21.46 httpd
28643 apache    15   0 99676  53m 3424 S   15  0.2   0:21.59 httpd
28594 apache    15   0 99756  53m 3428 R   13  0.2   0:44.41 httpd
28618 apache    15   0 99676  53m 3420 S   13  0.2   0:26.15 httpd
28654 apache    15   0 99676  53m 3472 S   13  0.2   0:04.27 httpd
28575 apache    15   0 99756  53m 3436 R   11  0.2   1:14.02 httpd
28576 apache    15   0 99676  53m 3496 S   11  0.2   1:16.79 httpd
28634 apache    15   0 99676  53m 3436 S   11  0.2   0:25.36 httpd
28653 apache    15   0 99676  53m 3424 S   11  0.2   0:04.35 httpd
28574 apache    15   0 99676  53m 3440 S   10  0.2   1:13.05 httpd
28592 apache    15   0 99676  53m 3492 R   10  0.2   0:45.78 httpd
28595 apache    15   0 99676  53m 3432 R   10  0.2   0:47.02 httpd
28617 apache    16   0 99676  53m 3436 S   10  0.2   0:25.32 httpd
28620 apache    15   0 99676  53m 3432 S   10  0.2   0:25.35 httpd
28597 apache    15   0 99676  53m 3428 S    8  0.2   0:43.56 httpd
11345 mysql     15   0 2927m 198m 4472 R    4  0.6   1624:43 mysqld
    1 root      15   0  2036  648  552 S    0  0.0   0:16.97 init
    2 root      RT   0     0    0    0 S    0  0.0   0:48.50 migration/0
    3 root      34  19     0    0    0 S    0  0.0   0:26.72 ksoftirqd/0
    4 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/0
    5 root      RT   0     0    0    0 S    0  0.0   0:04.98 migration/1
    6 root      34  19     0    0    0 R    0  0.0   0:27.51 ksoftirqd/1
    7 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/1
    8 root      RT   0     0    0    0 S    0  0.0   0:15.42 migration/2
    9 root      34  19     0    0    0 S    0  0.0   0:26.50 ksoftirqd/2
   10 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/2

我应该如何分析导致 CPU 使用率过高的原因以及如何降低它?

答案1

如果没有更多信息,Apache CPU 负载过高的两个最可能原因如下:

  1. 高流量- 大量传入请求相当于大量 Apache 进程正在工作。
  2. 缓慢的 PHP 脚本- 缓慢、优化不佳甚至有缺陷的 PHP 脚本会很快占用大量 CPU。

我会设置mod_status启用扩展的“/server-status”页面,该页面将告诉您有关 Apache 当前服务的更多详细信息。从那里,您可以看到是否是一个客户端在攻击网站,是否是某个特定页面超时,或者是否太多请求刚刚开始拖慢网站。有许多潜在的根本原因,每个原因都有不同的解决方案,所以我会首先尝试找到或缩小原因范围。

相关内容