top # 实时进程监控
htop # 增强版top
vmstat 1 # 系统整体状态(1秒刷新)
mpstat -P ALL 1 # 每个CPU核心的使用情况
dstat -c # 彩色CPU使用统计
pidstat -u 1 # 进程级CPU使用统计
perf top # 性能分析工具
strace -p <PID> # 跟踪进程系统调用
sar -u # 历史CPU使用数据
/var/log/messages # 系统日志检查
journalctl # 系统日志(systemd系统)
# 终止问题进程(谨慎使用)
kill -9 <PID>
# 调整进程优先级
renice +10 <PID>
# 调整进程调度策略(针对特定进程)
chrt -f -p 99 <PID>
# 调整内核参数(示例)
echo "1" > /proc/sys/vm/drop_caches # 清理缓存
# 将进程绑定到特定CPU核心
taskset -cp 0,1 <PID>
# 安装irqbalance服务(如未安装)
apt-get install irqbalance
service irqbalance start
# 增加进程可打开文件数限制
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf
# 调整swappiness(减少交换)
echo "vm.swappiness=10" >> /etc/sysctl.conf
sysctl -p
设置监控告警
定期维护
# 设置定期日志轮转
logrotate -f /etc/logrotate.conf
性能基准测试
更新系统
# 定期更新系统和内核
yum update || apt-get update && apt-get upgrade
通过以上方法,可以有效地诊断和解决Linux系统中的CPU负载过高问题。对于生产环境,建议先进行测试再应用更改,并确保有完整的回滚方案。