centos cpuinfo日志分析技巧
导读:CentOS CPU 信息与日志分析实用技巧 一、快速定位与采集要点 采集当前快照:使用命令查看 CPU 型号、频率、缓存、核心/线程等关键字段,便于与历史或基线对比。示例:cat /proc/cpuinfo | egrep "model...
CentOS CPU 信息与日志分析实用技巧
一、快速定位与采集要点
- 采集当前快照:使用命令查看 CPU 型号、频率、缓存、核心/线程等关键字段,便于与历史或基线对比。示例:
cat /proc/cpuinfo | egrep "model name|cpu cores|siblings|physical id|processor|cpu MHz|cache size|flags"。这些字段能直接反映 CPU 代次、是否启用超线程、每颗物理 CPU 的核心数、逻辑处理器数量与微码版本等。对于虚拟化环境,还可结合lscpu获取更直观的拓扑信息。 - 采集历史趋势:开启并回看性能历史数据,便于定位“何时、何因”导致 CPU 异常。示例:
sar -u 1 60(1 秒采样、60 次),配合uptime、top观察平均负载与瞬时占用;mpstat -P ALL 1检查是否存在单核飙高;pidstat -u 1定位进程级占用;journalctl检索内核与系统日志中的异常事件(如降频、温度、调度异常等)。
二、/proc/cpuinfo 关键字段解读与计算
- 核心概念与字段映射
- 逻辑处理器数量:统计
processor条目数(等同于nproc/grep -c ^processor /proc/cpuinfo)。 - 物理 CPU 颗数:对
physical id去重计数(sort -u | wc -l)。 - 每颗物理 CPU 的核心数:查看
cpu cores(同一物理封装的核心总数)。 - 每颗物理 CPU 的线程数:查看
siblings(同一物理封装的逻辑处理器数)。 - 超线程判断:若
siblings > cpu cores,说明启用了超线程(HT/SMT)。 - 型号与微码:
model name、cpu MHz(当前频率)、cache size、microcode用于代次与微码版本核对。 - 指令集与特性:
flags含sse4_2、avx2、aes、vmx/svm等,便于判断应用指令集支持与虚拟化能力。
- 逻辑处理器数量:统计
- 常用计算与命令示例
- 逻辑处理器总数:
grep -c ^processor /proc/cpuinfo - 物理 CPU 颗数:
grep "physical id" /proc/cpuinfo | sort -u | wc -l - 每颗物理 CPU 核心数:
grep "cpu cores" /proc/cpuinfo | head -1 | cut -d: -f2 | tr -d ' ' - 每颗物理 CPU 线程数:
grep "siblings" /proc/cpuinfo | head -1 | cut -d: -f2 | tr -d ' ' - 是否启用超线程:
if [ $(grep "siblings" /proc/cpuinfo | head -1 | cut -d: -f2 | tr -d ' ') -gt $(grep "cpu cores" /proc/cpuinfo | head -1 | cut -d: -f2 | tr -d ' ') ]; then echo "HT/SMT: enabled"; else echo "HT/SMT: disabled"; fi - 型号与频率汇总:
grep -E "model name|cpu MHz" /proc/cpuinfo | paste - - | column -t。
- 逻辑处理器总数:
三、从 CPU 信息到性能瓶颈的联动分析
- 平均负载与 CPU 使用率的区别与联动
- 平均负载是“可运行 + 不可中断”进程的平均数量,不等同于 CPU 使用率;
uptime/top中的 load average: 1/5/15 分钟 需要与逻辑 CPU 数对比评估压力。 - 当负载升高时,结合
mpstat -P ALL检查是否单核打满;用pidstat -u定位进程;若iowait偏高,配合iostat -x 1与vmstat 1判断是否为 I/O 瓶颈;若软中断偏高,查看/proc/softirqs并结合sar -n DEV/tcpdump排查网络小包洪泛。
- 平均负载是“可运行 + 不可中断”进程的平均数量,不等同于 CPU 使用率;
- 快速判定清单
- 负载高 + 用户态占用高:应用计算密集;用
perf top/pidstat找热点函数/进程。 - 负载高 + iowait 高:存储/网络 I/O 慢;用
iostat -x/dstat与sar -d定位设备与队列。 - 负载高 + 软中断高:网络或驱动中断风暴;查
/proc/softirqs、sar -n DEV、ethtool -S。 - 负载高但 top 找不到高占用进程:可能存在大量短任务或 D 状态进程;用
execsnoop、perf record/report捕捉短时进程或内核路径。
- 负载高 + 用户态占用高:应用计算密集;用
四、日志与报表模板
- 基线快照脚本(建议纳入 CMDB/巡检)
- 采集命令:
cat /proc/cpuinfo | egrep "model name|cpu cores|siblings|physical id|processor|cpu MHz|cache size|microcode|flags" > cpuinfo_$(date +%F).log - 汇总命令:
lscpu > > cpuinfo_$(date +%F).log - 历史对比:定期执行并将输出加入版本化存储,便于回滚与变更审计。
- 采集命令:
- 历史趋势与告警示例
- CPU 利用率:
sar -u 1 360 > sar_cpu_1h.log(1 小时历史,便于出图与阈值告警) - 每核占用:
mpstat -P ALL 1 60 > mpstat_percpu_1m.log - 进程占用:
pidstat -u 1 60 > pidstat_1m.log - 中断与软中断:
cat /proc/interrupts > interrupts_$(date +%F).log、cat /proc/softirqs > softirqs_$(date +%F).log - 日志检索:
journalctl --since "2026-01-06 00:00:00" | egrep -i "cpu|thermal|throttle|frequency|msr|turboboost"(按时间窗口检索内核/系统事件)
- CPU 利用率:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos cpuinfo日志分析技巧
本文地址: https://pptw.com/jishu/787860.html
