我的问题是 php5-fpm 进程消耗了大量 CPU。我的网站发出的任何单个请求都会导致 CPU 消耗至少 20% 到最大值。我多次观察到,即使是 index.php 页面也会消耗高达 70% 的 CPU。因此,服务器上的多个请求最终导致 CPU 利用率达到 100%,并且在未知的时间内 CPU 保持 100% 该网站托管在 aws infra 上,其中 Web 服务器使用 nginx 和 php5-fpm 在自动扩展和负载平衡环境下运行。
由于多台服务器在自动缩放中运行,因此上述行为会同时在多台服务器(并非全部)上观察到。
目前www.conf文件内容如下:
pm = dynamic
pm.max_children = 200
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 4
pm.process_idle_timeout = 10s;
pm.max_requests = 100
我也尝试过“ondemand”流程管理器,但没有成功(随后这关联)。
请帮帮我。
更新1:
谢谢。我在电子商务网站上遇到了这个问题,所以我们可以了解一下它会使用哪种脚本。我已经检查过 php 脚本来打印 hello。大多数时候它显示 CPU 消耗为 0%,但我发现下面也显示了奇怪的读数 356.63。
30810 Idle 30/Apr/2015:11:03:30 +0530 466 93 2804 GET /hello.php 0 - /mnt/www/Lecom_Magento/hello.php 356.63 524288
31162 Idle 30/Apr/2015:11:19:33 +0530 280 43 472 GET /hello.php 0 - /mnt/www/Lecom_Magento/hello.php 0.00 524288
以下是 CPU 利用率为 100% 时的 top 命令输出。
top - 11:02:59 up 23:58, 2 users, load average: 22.60, 23.10, 21.48
Tasks: 253 total, 13 running, 240 sleeping, 0 stopped, 0 zombie
Cpu(s): 64.5%us, 31.8%sy, 0.0%ni, 3.4%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
Mem: 30759072k total, 9692172k used, 21066900k free, 325488k buffers
Swap: 0k total, 0k used, 0k free, 5487396k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
30157 www-data 20 0 916m 432m 39m R 92 1.4 7:44.66 php5-fpm
30177 www-data 20 0 913m 429m 36m R 90 1.4 7:40.15 php5-fpm
30326 www-data 20 0 555m 78m 42m R 89 0.3 1:45.19 php5-fpm
30462 www-data 20 0 553m 71m 35m R 88 0.2 0:30.93 php5-fpm
30393 www-data 20 0 555m 78m 40m R 86 0.3 0:51.62 php5-fpm
30793 www-data 20 0 542m 50m 25m S 85 0.2 0:10.91 php5-fpm
30454 www-data 20 0 550m 60m 27m R 80 0.2 0:29.87 php5-fpm
30342 www-data 20 0 555m 75m 37m S 77 0.3 2:00.78 php5-fpm
30416 www-data 20 0 554m 73m 35m S 74 0.2 0:39.84 php5-fpm
30369 www-data 20 0 554m 72m 35m R 64 0.2 1:32.15 php5-fpm
30350 www-data 20 0 555m 76m 38m S 63 0.3 1:38.23 php5-fpm
30388 www-data 20 0 552m 71m 35m S 62 0.2 1:08.40 php5-fpm
30799 www-data 20 0 548m 55m 24m R 55 0.2 0:01.77 php5-fpm
30792 www-data 20 0 555m 71m 33m S 50 0.2 0:05.49 php5-fpm
30391 www-data 20 0 553m 70m 34m R 44 0.2 1:15.94 php5-fpm
30333 www-data 20 0 554m 77m 39m S 40 0.3 1:38.81 php5-fpm
CPU 配置:c3.4xlarge aws ec2 实例具有 16vCPU 和 30GB 内存。