一、安装cpustat工具
在CentOS系统中,cpustat通常属于sysstat工具集的一部分。若未安装,可通过以下命令安装:
sudo yum install sysstat -y
安装完成后,即可使用cpustat命令监控CPU使用情况。
二、使用cpustat监控CPU关键指标
cpustat的核心价值在于提供实时的CPU状态数据,需重点关注以下指标:
-m
参数查看用户态(user)、内核态(system)、空闲(idle)、I/O等待(iowait)等模式的占比。例如,cpustat -m user,system,idle -i 1
(每秒刷新一次),若user
占比过高,说明用户程序占用大量CPU;若system
占比高,可能是内核或驱动消耗过多资源;若iowait
高,则需排查磁盘I/O瓶颈。vmstat 1
辅助查看)或中断(irq
/softirq
占比高)会导致CPU性能下降,需定位是否因进程过多、驱动异常或硬件问题引起。-c
参数指定监控特定核心(如cpustat -c 0,1
),若某核心长期高负载而其他核心空闲,说明进程未充分利用多核资源。三、识别高负载进程/线程
通过cpustat输出定位高CPU消耗对象,再结合ps
、top
或htop
命令进一步分析:
-p
参数(如cpustat -p 1234
,1234为进程ID);-u
参数(如cpustat -u mysql
,监控MySQL用户的进程)。四、针对高负载进程的优化措施
根据识别的高负载进程,采取针对性优化手段:
nice
命令降低高负载进程的优先级(如nice -n 10 ./app
,数值越大优先级越低),避免其占用过多CPU;若需提高关键进程优先级,可使用renice
命令(如renice -n -5 -p 1234
)。cgroups
(如创建cpu
组并设置cpu.cfs_quota_us
限制CPU配额)或cpulimit
工具(如cpulimit -l 50 -p 1234
,限制进程CPU使用率为50%),防止进程过度占用系统资源。五、系统级配置优化
结合cpustat的输出,调整系统配置以提升整体性能:
taskset
命令将进程绑定到特定核心(如taskset -c 0,1 ./app
),减少进程在不同核心间迁移的开销,提升缓存命中率。sysctl
命令调整内核参数,如增大vm.swappiness
(减少内存交换)、优化net.core.somaxconn
(提升网络连接处理能力),改善系统对CPU资源的调度效率。六、持续监控与迭代优化
性能优化是持续过程,需定期使用cpustat监控CPU状态(如设置cron任务每5分钟收集一次数据:*/5 * * * * cpustat > /var/log/cpu_usage.log
),对比不同时段的数据,识别新出现的瓶颈(如新增进程导致CPU负载升高),并及时调整优化策略。