温馨提示×

Linux CPUInfo怎样进行监控

小樊
45
2025-12-28 18:58:12
栏目: 智能运维

Linux CPUInfo 监控指南

一 静态信息查看与关键指标

  • 使用 lscpu 获取整体拓扑与频率:关注 Architecture、CPU(s)、Thread(s) per core、Core(s) per socket、Socket(s)、Model name、CPU MHz、CPU max MHz/CPU min MHz、NUMA node(s)、L1/L2/L3 cache。示例:lscpu。
  • 读取 /proc/cpuinfo 获取每个逻辑核细节:关注 processor、vendor_id、model name、cpu MHz、cache size、physical id、core id、siblings、flags。常用过滤:
    • 逻辑核心数:grep -c ^processor /proc/cpuinfo 或 grep ‘processor’ /proc/cpuinfo | wc -l
    • 物理CPU数:grep ‘physical id’ /proc/cpuinfo | sort -u | wc -l
    • 每物理CPU核心数:grep ‘cpu cores’ /proc/cpuinfo | head -1
    • 型号:grep ‘model name’ /proc/cpuinfo | uniq
  • 使用 dmidecode -t processor 查看硬件规格(需 root):关注 Manufacturer、Socket Designation、Version、Max Speed、Current Speed、Core Count、Thread Count、Characteristics(如虚拟化支持)。
  • 快速脚本取值:nproc(可用逻辑核心数);inxi -C(简洁CPU规格);hwinfo --cpu(更详细的硬件描述)。

二 实时监控与性能观测

  • 整体与逐核使用率:top/htop。top 按 1 展开每个核心;htop 以条形图显示,更直观。
  • 多核利用率与调度统计:mpstat -P ALL(需安装 sysstat)。关注 %usr、%sys、%idle、%iowait、%irq、%soft、%steal,定位CPU瓶颈与中断风暴。
  • 频率与调频策略:cpufreq-info(需安装 cpufrequtils)。关注 current policy(min/max)current CPU frequencyavailable frequency steps,验证 Turbo/节能 是否生效。
  • 启动阶段CPU初始化信息:dmesg | grep -i cpu,辅助排查硬件识别与兼容性问题。

三 一键巡检脚本示例

#!/usr/bin/env bash
echo "=== CPU 静态信息 ==="
lscpu | egrep '^(Architecture|CPU\(s\)|Thread\(s\) per core|Core\(s\) per socket|Socket\(s\)|Model name|CPU MHz|CPU max MHz|CPU min MHz|NUMA node\(s\)|L[1-3] cache)'

echo -e "\n=== CPU 拓扑与计数 ==="
echo "逻辑CPU数: $(nproc)"
echo "物理CPU数: $(grep 'physical id' /proc/cpuinfo | sort -u | wc -l)"
echo "每物理CPU核心数: $(grep 'cpu cores' /proc/cpuinfo | head -1)"
echo "型号: $(grep 'model name' /proc/cpuinfo | uniq)"

echo -e "\n=== 频率与调频策略 ==="
if command -v cpufreq-info >/dev/null 2>&1; then
  cpufreq-info | egrep 'current policy|current CPU frequency|available frequency steps'
else
  echo "提示: 未安装 cpufrequtils(cpufreq-info)"
fi

echo -e "\n=== 实时使用率(5秒采样)==="
if command -v mpstat >/dev/null 2>&1; then
  mpstat -P ALL 1 5
else
  echo "提示: 未安装 sysstat(mpstat)"
fi
  • 建议以普通用户运行;若需查看完整硬件标识(如序列号),可在相关命令前加 sudo

四 常见排错与优化建议

  • 逻辑核心与物理核心易混:用 CPU(s) = Socket(s) × Core(s) per socket × Thread(s) per core 校验;若 Thread(s) per core > 1 表示启用超线程。
  • 频率不按预期:用 cpufreq-info 检查 policy/min/maxcurrent frequency;确认节能/性能模式与 BIOS 设置。
  • 虚拟机环境:部分信息(如型号、频率步长)可能由宿主机/虚拟化平台抽象,需结合 lscpuHypervisor vendor/type 与平台监控一起判断。
  • 容器/受限环境:nproc 可能受 cgroup 限制,小于物理机可用核心数;以实际运行环境为准。

0