核心命令与工具
-
top
/htop
(实时监控)- 运行
top
后按1
键,显示所有CPU核心的负载:top - 14:30:25 up 10 days, 1:23, 2 users, load average: 0.15, 0.20, 0.18 Tasks: 256 total, 1 running, 255 sleeping, 0 stopped, 0 zombie %Cpu0 : 5.6 us, 2.0 sy, 0.0 ni, 92.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu1 : 1.2 us, 0.8 sy, 0.0 ni, 98.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st ...(其他核心)
- 关键指标:
us
(用户态占用)、sy
(内核态占用)、id
(空闲率)- 若所有核心的
id
(空闲率)均较高(如 >80%),说明负载均衡良好;若某些核心us
/sy
持续高而其他核心id
高,则存在不均衡。
- 关键指标:
htop
(需安装):彩色界面更直观,直接显示各核心利用率柱状图。
- 运行
-
mpstat
(多核统计)- 安装:
sudo apt install sysstat
(Debian/Ubuntu) - 使用:
mpstat -P ALL 2 5 # 每2秒采样1次,共5次,显示所有核心数据
输出示例:
14:35:01 CPU %usr %nice %sys %iowait %idle 14:35:03 all 8.2 0.0 1.5 0.1 90.2 14:35:03 0 15.1 0.0 2.0 0.0 82.9 14:35:03 1 1.3 0.0 1.0 0.2 97.5
- 分析:若不同核心的
%idle
或%usr
差异持续 >30%,可能存在负载倾斜。
- 分析:若不同核心的
- 安装:
-
sar
(历史数据)- 查看过去CPU负载:
sar -P ALL -f /var/log/sysstat/saXX # XX为日志日期(如sa15)
- 输出类似
mpstat
,可追溯历史不均衡情况。
- 输出类似
- 查看过去CPU负载:
-
perf
(高级诊断)- 安装:
sudo apt install linux-tools-common
- 检查调度事件:
sudo perf sched record -a sleep 10 # 记录10秒调度 sudo perf sched map # 生成CPU任务分布图
输出示例:
*A0 B0 C0 D0 : 核心编号 A0 ran 10%任务 B0 ran 5%任务 ...
任务分布不均时,同一核心的任务密度显著高于其他。
- 安装:
负载均衡问题排查
-
场景1:某核心持续高负载
可能原因:- 进程绑定(CPU亲和性):通过
taskset -pc <PID>
查看进程是否被锁定到特定核心。 - 中断集中:检查
/proc/interrupts
,若某核心处理过多中断(如网卡IRQ),需分散中断请求:echo 0-3 > /proc/irq/<IRQ编号>/smp_affinity_list # 将中断分配到0~3号核心
- 进程绑定(CPU亲和性):通过
-
场景2:NUMA架构不均衡
- 查看NUMA节点:
numastat -c
或lscpu | grep NUMA
- 若跨节点访问内存(
numastat
中的other_node
数值高),需绑定进程到同节点:numactl --cpunodebind=0 --membind=0 ./program # 限制程序在节点0运行
- 查看NUMA节点:
自动化监控建议
-
配置告警
- 工具:
Prometheus
+Node Exporter
+Grafana
,监控各核心差异率。 - 规则:当核心间利用率标准差 >15% 时触发告警。
- 工具:
-
内核参数调优
- 调整调度器参数(如CFS):
sysctl kernel.sched_migration_cost_ns=500000 # 降低迁移成本阈值
- 调整调度器参数(如CFS):
Linux通过内核调度器自动实现负载均衡,但需定期监控核心间利用率差异,推荐组合:
- 快速检查:
htop
+mpstat -P ALL
- 深度诊断:
perf sched
+/proc/interrupts
- 长期监控:
sar
+Prometheus
引用说明:
- Linux内核文档:kernel.org/doc/html/latest/scheduler
mpstat
/sar
手册页:man7.org/linux/man-pages/man1/mpstat.1.html- CPU负载均衡原理:《深入理解Linux内核》(O’Reilly)第7章
- 性能工具指南:brendangregg.com/linuxperf.html
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7889.html