正如您在下面看到的,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 负载过高的两个最可能原因如下:
- 高流量- 大量传入请求相当于大量 Apache 进程正在工作。
- 缓慢的 PHP 脚本- 缓慢、优化不佳甚至有缺陷的 PHP 脚本会很快占用大量 CPU。
我会设置mod_status启用扩展的“/server-status”页面,该页面将告诉您有关 Apache 当前服务的更多详细信息。从那里,您可以看到是否是一个客户端在攻击网站,是否是某个特定页面超时,或者是否太多请求刚刚开始拖慢网站。有许多潜在的根本原因,每个原因都有不同的解决方案,所以我会首先尝试找到或缩小原因范围。