CentOS CPU 信息与日志分析实用技巧
一、快速定位与采集要点
cat /proc/cpuinfo | egrep "model name|cpu cores|siblings|physical id|processor|cpu MHz|cache size|flags"。这些字段能直接反映 CPU 代次、是否启用超线程、每颗物理 CPU 的核心数、逻辑处理器数量与微码版本等。对于虚拟化环境,还可结合 lscpu 获取更直观的拓扑信息。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)。physical id 去重计数(sort -u | wc -l)。cpu cores(同一物理封装的核心总数)。siblings(同一物理封装的逻辑处理器数)。siblings > cpu cores,说明启用了超线程(HT/SMT)。model name、cpu MHz(当前频率)、cache size、microcode 用于代次与微码版本核对。flags 含 sse4_2、avx2、aes、vmx/svm 等,便于判断应用指令集支持与虚拟化能力。grep -c ^processor /proc/cpuinfogrep "physical id" /proc/cpuinfo | sort -u | wc -lgrep "cpu cores" /proc/cpuinfo | head -1 | cut -d: -f2 | tr -d ' '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"; figrep -E "model name|cpu MHz" /proc/cpuinfo | paste - - | column -t。三、从 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 排查网络小包洪泛。perf top/pidstat 找热点函数/进程。iostat -x/dstat 与 sar -d 定位设备与队列。/proc/softirqs、sar -n DEV、ethtool -S。execsnoop、perf record/report 捕捉短时进程或内核路径。四、日志与报表模板
cat /proc/cpuinfo | egrep "model name|cpu cores|siblings|physical id|processor|cpu MHz|cache size|microcode|flags" > cpuinfo_$(date +%F).loglscpu >> cpuinfo_$(date +%F).logsar -u 1 360 > sar_cpu_1h.log(1 小时历史,便于出图与阈值告警)mpstat -P ALL 1 60 > mpstat_percpu_1m.logpidstat -u 1 60 > pidstat_1m.logcat /proc/interrupts > interrupts_$(date +%F).log、cat /proc/softirqs > softirqs_$(date +%F).logjournalctl --since "2026-01-06 00:00:00" | egrep -i "cpu|thermal|throttle|frequency|msr|turboboost"(按时间窗口检索内核/系统事件)