我遇到了 CPU 使用率过高的问题,这是我从服务器获得的统计数据,每次重启后 15 分钟内的消耗都会上升到 100%,这可能是什么问题?
我在服务器上安装了 laravel 中的一个站点,该站点的流量不大(+- 500 个用户),下面是我使用服务器上的 top 命令获取的统计数据。
top - 19:23:15 up 1 day, 10:55, 1 user, load average: 207.49, 204.19, 190.39
Tasks: 1303 total, 143 running, 1144 sleeping, 16 stopped, 0 zombie
Cpu(s): 81.4%us, 7.2%sy, 0.0%ni, 8.4%id, 0.0%wa, 0.0%hi, 0.4%si, 2.6%st
Mem: 33012284k total, 23683980k used, 9328304k free, 399100k buffers
Swap: 0k total, 0k used, 0k free, 5473208k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7302 nginx 20 0 445m 23m 6392 R 6.9 0.1 0:06.87 php-fpm
7538 nginx 20 0 450m 27m 6412 D 6.9 0.1 0:07.86 php-fpm
7169 nginx 20 0 444m 22m 6580 S 6.4 0.1 0:07.30 php-fpm
7138 nginx 20 0 443m 21m 6008 S 5.9 0.1 0:06.84 php-fpm
7185 nginx 20 0 443m 21m 5984 R 5.4 0.1 0:06.67 php-fpm
7229 nginx 20 0 443m 22m 6376 R 5.4 0.1 0:06.70 php-fpm
7462 nginx 20 0 443m 21m 6340 R 5.4 0.1 0:07.06 php-fpm
7474 nginx 20 0 448m 25m 6464 R 5.4 0.1 0:06.93 php-fpm
7632 nginx 20 0 447m 25m 6664 R 5.4 0.1 0:06.81 php-fpm
7772 nginx 20 0 447m 24m 6208 R 5.4 0.1 0:06.38 php-fpm
7921 nginx 20 0 446m 24m 6372 R 5.4 0.1 0:04.36 php-fpm
8187 nginx 20 0 440m 15m 3612 R 5.4 0.0 0:00.12 php-fpm
55 root 20 0 0 0 0 S 4.9 0.0 43:25.75 events/4
7119 nginx 20 0 443m 21m 6320 S 4.9 0.1 0:07.17 php-fpm
7137 nginx 20 0 443m 21m 6360 S 4.9 0.1 0:07.35 php-fpm
7143 nginx 20 0 446m 24m 6380 R 4.9 0.1 0:07.22 php-fpm
7215 nginx 20 0 443m 21m 6296 R 4.9 0.1 0:06.40 php-fpm
7296 nginx 20 0 443m 21m 5932 S 4.9 0.1 0:07.16 php-fpm
7388 nginx 20 0 443m 21m 6336 R 4.9 0.1 0:07.48 php-fpm
7411 nginx 20 0 446m 24m 6436 R 4.9 0.1 0:06.77 php-fpm
7576 nginx 20 0 447m 24m 6232 S 4.9 0.1 0:07.31 php-fpm
7662 nginx 20 0 443m 21m 6412 R 4.9 0.1 0:06.47 php-fpm
7838 nginx 20 0 445m 23m 6416 D 4.9 0.1 0:05.86 php-fpm
7887 nginx 20 0 443m 21m 6352 D 4.9 0.1 0:05.95 php-fpm
7896 nginx 20 0 446m 24m 6164 R 4.9 0.1 0:05.24 php-fpm
7941 nginx 20 0 447m 25m 6252 D 4.9 0.1 0:04.47 php-fpm
8049 nginx 20 0 443m 20m 4800 R 4.9 0.1 0:06.69 php-fpm
8163 nginx 20 0 440m 17m 5740 R 4.9 0.1 0:00.75 php-fpm
8167 nginx 20 0 447m 23m 4396 R 4.9 0.1 0:00.96 php-fpm
61 root 20 0 0 0 0 S 4.5 0.0 44:40.33 events/10
7059 nginx 20 0 443m 21m 6276 R 4.5 0.1 0:06.66 php-fpm
7125 nginx 20 0 446m 24m 6396 S 4.5 0.1 0:07.55 php-fpm
7205 nginx 20 0 443m 21m 6400 S 4.5 0.1 0:06.86 php-fpm
7279 nginx 20 0 448m 25m 6408 S 4.5 0.1 0:06.99 php-fpm
7514 nginx 20 0 443m 21m 6412 R 4.5 0.1 0:06.83 php-fpm
7546 nginx 20 0 447m 25m 6548 R 4.5 0.1 0:06.88 php-fpm
7571 nginx 20 0 448m 26m 6320 R 4.5 0.1 0:07.16 php-fpm
7574 nginx 20 0 444m 22m 6648 R 4.5 0.1 0:06.37 php-fpm
7583 nginx 20 0 446m 24m 6328 S 4.5 0.1 0:06.87 php-fpm
答案1
看起来某些 php 代码运行速度太慢,无法跟上负载。还似乎生成了太多 php-fpm 进程。
查看 的配置pm.max_children
。尝试将其设置为 5 或 10,然后监控 CPU 使用率。一旦您知道了 CPU 使用率,您就可以通过将 80 除以平均 CPU 百分比来计算出一个新值。这可能是一个很好的起点。