cpustat是CentOS系统下用于监控CPU使用情况的工具(属于sysstat包的一部分),本身不直接优化CPU,但可通过其输出的指标识别瓶颈,指导针对性优化。以下是具体步骤:
首先需安装sysstat包(包含cpustat):
# CentOS 7及以下
sudo yum install sysstat -y
# CentOS 8及以上
sudo dnf install sysstat -y
安装后启动sysstat服务并设置开机自启:
sudo systemctl start sysstat
sudo systemctl enable sysstat
cpustat的基本用法是实时查看CPU使用统计,常用命令如下:
sudo cpustat
sudo cpustat -c 0
sudo cpustat -p 1234
sudo cpustat -i 2 -c 5
sudo cpustat -y
cpustat的输出主要包含以下关键指标,需重点关注:
根据cpustat分析结果,采取对应优化手段:
原因:应用程序或服务(如Java应用、数据库)存在性能问题(如低效算法、过多计算)。
优化措施:
原因:系统调用频繁(如网络请求、磁盘操作)、内核模块问题。
优化措施:
原因:CPU资源不足(如业务增长导致负载升高)。
优化措施:
# 查看当前CPU频率策略
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
# 设为性能模式(所有核心)
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
# 永久生效(需安装cpufrequtils)
sudo sed -i 's/GOVERNOR="ondemand"/GOVERNOR="performance"/g' /etc/default/cpufrequtils
sudo systemctl restart cpufrequtils
原因:磁盘读写速度慢(如机械硬盘、RAID配置不合理)。
优化措施:
# 查看当前调度算法
cat /sys/block/sda/queue/scheduler
# 设为deadline(适合数据库等I/O密集型场景)
echo deadline | sudo tee /sys/block/sda/queue/scheduler
原因:虚拟机管理程序(如VMware、KVM)占用过多CPU资源。
优化措施:
cpustat需与其他工具配合,获取更全面的性能视图:
top -c可显示进程命令);vmstat 2显示CPU、内存、I/O情况);sar -u 5 5显示近5次CPU使用率);pidstat -p 1234 -u 2)。*/5 * * * * /usr/bin/cpustat > /var/log/cpu_usage_$(date +\%Y\%m\%d\%H\%M\%S).txt
通过以上步骤,可利用cpustat有效识别CentOS系统的CPU瓶颈,并采取针对性措施优化,提升系统整体性能。