php-fpm 进程在云服务器cpu分配不均匀

8核的云服务器,开了200个php-fpm进程,用top命令查看 大部分进程都在cpu 0 上跑着,导致其他cpu 负载很低,cpu分配不均匀;

使用shell 解决问题:

列出所有php-fpm 进程, 用 taskset 重新分配cpu

 1 #!/bin/bash                                                                                                                                                                                                      
 2 
 3 CPUs=$(grep -c processor /proc/cpuinfo)
 4 PIDs=$(ps aux | grep "php-fpm[:] pool" | awk '{print $2}')
 5 
 6 let i=0 
 7 for PID in $PIDs; do
 8     CPU=$(echo "$i % $CPUs" | bc)
 9     let i++ 
10 
11     taskset -pc $CPU $PID
12 done