linux vmstat 1 如何查看线程上下文切换 是否正常 4核8GB的Ubuntu20.04系统
vmstat 1 输出中,cs 列 表示每秒上下文切换次数,结合 4 核 8GB Ubuntu 20.04 系统,判断方法如下:
1. 核心指标:cs 列数值
1 | vmstat 1 |
输出示例:
plaintext
1 | procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- |
cs:每秒上下文切换次数
2. 正常范围参考
| 系统负载状态 | 正常 cs 值范围 |
|---|---|
| 轻负载(无高并发进程) | 几百~几千 |
| 中负载(常规服务运行) | 几千~几万 |
| 高负载(高并发 / 多线程程序) | 几万~几十万(需结合其他指标) |
4 核 8GB Ubuntu 20.04:无高并发服务时,
cs稳定在 1000 以内 属正常;运行 Web / 数据库等服务,cs几万内且无性能卡顿也可接受。
3. 异常判断 & 排查
(1)异常信号
cs数值 突然飙升(如从几千涨到几十万)- 伴随
%us(用户 CPU)/%sy(内核 CPU)升高、r(等待运行进程数)持续大于核数
(2)排查工具
1 | # 1. 查看进程上下文切换详情(cswch自愿,nvcswch非自愿) |
4. 关键结论
cs 无绝对 “正常值”,核心看 是否稳定 + 是否伴随性能问题(卡顿、延迟高)。4 核 8GB 系统,无高并发时 cs
过高(如几十万)大概率异常,需排查多线程程序或系统瓶颈~
sudo vmstat 1
1 | procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- |









