一、安装cpustat工具
在Debian系统中,cpustat通常包含在sysstat软件包中。若未安装,可通过以下命令安装:
sudo apt update && sudo apt install sysstat
安装完成后,cpustat即可用于监控CPU性能。
二、cpustat基本使用方法
cpustat命令(需root权限),默认每2秒采样一次,显示CPU的用户态、内核态、空闲时间及上下文切换等指标:sudo cpustat
-C选项指定CPU编号(如CPU 0),可针对性监控单个核心的负载:sudo cpustat -C 0
-i(采样间隔,秒)和-c(采样次数)选项,定期收集数据并重定向到文件,便于后续分析。例如,每5秒采样一次,共采10次,保存到cpu_usage.log:sudo cpustat -i 5 -c 10 > cpu_usage.log
若需长期定时收集(如每5秒一次),可将命令添加到cron任务中:*/5 * * * * cpustat -i 5 -c 60 > /var/log/cpu_usage_$(date +\%Y\%m\%d).log
三、分析cpustat输出识别瓶颈
cpustat的输出包含系统级指标(如usr用户态占比、sys内核态占比、idle空闲率)和进程级指标(如进程ID、CPU占用率、运行队列长度)。重点关注以下内容:
-u选项显示进程级CPU使用率,识别占用率超过10%的进程(如某Java进程占用了30%的CPU);sys值持续高于20%,可能存在内核模块异常(如频繁的磁盘I/O操作);runq(可运行进程数)平均值超过CPU核心数的1.5倍,说明CPU资源不足,存在进程等待。四、基于分析结果的调优措施
nice(启动时设置优先级)或renice(调整运行中进程优先级)降低其权重。例如,将PID为1234的进程优先级调整为10(范围-20到19,数值越大优先级越低):sudo renice -n 10 -p 1234
innodb_buffer_pool_size);调整Nginx的worker_processes为CPU核心数,提升并发处理能力。/etc/sysctl.conf文件,优化系统内核性能。例如:
fs.file-max = 65535;net.core.rmem_max = 16777216、net.core.wmem_max = 16777216;sudo sysctl -p使配置生效。五、持续监控与优化
性能调优是持续过程,需定期使用cpustat监控CPU使用情况,结合top、htop、vmstat等工具综合分析(如top查看实时进程排名、vmstat查看系统整体负载),验证优化效果并及时调整策略。