top/htop:实时查看进程资源占用
top - 11:23:45 up 2 days, 3:45, 3 users, load average: 1.25, 1.32, 1.15
Tasks: 125 total, 2 running, 123 sleeping, 0 stopped, 0 zombie
%Cpu(s): 25.3 us, 12.1 sy, 0.0 ni, 62.1 id, 0.0 wa, 0.0 hi, 0.5 si, 0.0 st
vmstat:系统整体状态
vmstat 1 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 0 123456 78900 456789 0 0 12 34 567 1234 25 12 62 0 0
mpstat:多核CPU详细统计
mpstat -P ALL 1
perf:性能分析工具
perf top
perf stat -a
perf record -a -g
strace:系统调用跟踪
strace -p <PID> -c
dstat:综合监控
dstat -tcmsdnlpy
可能原因:
解决方案:
top
找到高CPU进程strace
或perf
分析具体调用可能原因:
解决方案:
vmstat
中的cs
(上下文切换)值perf
分析内核调用栈可能原因:
解决方案:
iostat
检查磁盘I/O可能原因:
解决方案:
/proc/interrupts
和/proc/softirqs
内核参数调整:
# 减少上下文切换
echo 1 > /proc/sys/kernel/sched_child_runs_first
echo 1 > /proc/sys/kernel/sched_autogroup_enabled
# 网络优化
echo 32768 > /proc/sys/net/core/somaxconn
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
调度策略优化:
chrt
设置实时优先级taskset
绑定CPU核心中断平衡:
apt-get install irqbalance
service irqbalance start
系统监控工具:
日志分析:
基线建立:
通过以上工具和方法,可以系统性地分析Linux系统中CPU、Sys等资源占用异常问题,并采取针对性的优化措施。