温馨提示×

CentOS CPUInfo 配置技巧

小樊
31
2025-12-15 14:47:01
栏目: 智能运维

CentOS CPUInfo 配置与调优技巧

一、快速准确读取 CPU 信息

  • 使用 lscpu 获取整体拓扑:关注 Architecture、CPU(s)、Thread(s) per core、Core(s) per socket、Socket(s)、NUMA node(s)、Model name、CPU MHz、L1/L2/L3 cache。示例:lscpu
  • 读取 /proc/cpuinfo 的 6 个关键字段:processor、physical id、core id、siblings、cpu cores、flags,据此判断物理 CPU 数、每颗 CPU 的核心数、是否启用超线程(HT)等。
  • dmidecode -t processor 查看物理插槽与型号(需 root):如 Socket Designation、Version、Max/Current Speed
  • 实时观察负载与频率:top/htop(top 中按 1 展开各核,按 P/M 排序)。
  • 辅助判断虚拟化与架构:uname -acat /etc/redhat-releasegetconf LONG_BIT

二、读懂 CPU 拓扑与 HT 判断

  • 关键关系:CPU(s) = Socket(s) × Core(s) per socket × Thread(s) per core
  • 判断是否启用超线程:同一物理封装(相同 physical id)中,若 siblings > cpu cores,说明启用了 HT/SMT
  • 示例解读:若 lscpu 显示 CPU(s)=16、Thread(s) per core=2、Core(s) per socket=8、Socket(s)=1,则为 1 路 8 核 16 线程/proc/cpuinfo 中同一 physical id 的条目出现 siblings=16、cpu cores=8 亦可印证。
  • 多路 CPU:不同 physical id 的个数即为物理插槽数;dmidecode 可进一步核对插槽与型号。

三、CPU 相关内核与电源策略配置

  • 性能模式(cpupowerutils):
    • 安装:yum install -y cpupowerutils
    • 查看:cpupower -c all frequency-infocat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    • 设置全核性能模式:cpupower -c all frequency-set -g performance(默认为 powersave
  • 超线程开关(需重启,谨慎):
    • 检查:grep -i ht /proc/cpuinfodmidecode -t processor | grep HTT
    • 关闭:在 /etc/default/grubGRUB_CMDLINE_LINUX 末尾添加 noht,然后 grub2-mkconfig -o /etc/grub2.cfg && reboot
  • NUMA 策略:
    • 查看:numactl --hardwaregrep -i numa /var/log/dmesg
    • 临时均衡内存:numactl --interleave=all <cmd>
    • 关闭 OS 层 NUMA:在 /etc/default/grub 添加 numa=off,执行 grub2-mkconfig -o /etc/grub2.cfg && reboot
  • 透明大页(THP):
    • 查看:cat /sys/kernel/mm/transparent_hugepage/enabledcat /sys/kernel/mm/transparent_hugepage/defrag
    • 建议对数据库/低延迟场景设为 madvisenever,减少抖动。

四、进程与中断的 CPU 亲和与绑定

  • 查看与临时绑定:
    • 查看进程亲和:taskset -pc <pid>
    • 绑定进程到指定核:taskset -pc 0-3,8-11 <pid>(示例为绑定到两个 NUMA 节点的前 4 核)
  • systemd 服务级亲和:在 /usr/lib/systemd/system/.service[Service] 增加
    • CPUAffinity=0 1 2 3 8 9 10 11
    • 执行:systemctl daemon-reload && systemctl restart <service>
  • 容器/虚拟化:在 KubeletQEMU 启动参数中设置 CPU 亲和/拓扑,减少跨 NUMA 访问。

五、一键巡检与排错命令清单

  • 基础信息:lscpucat /proc/cpuinfo | egrep 'processor|model name|cpu cores|siblings|physical id' | head -20dmidecode -t processor
  • 虚拟化与位数:uname -acat /etc/redhat-releasegetconf LONG_BIT
  • 负载与频率:top/htop(top 按 1 看每核,按 P/M 排序)
  • 电源与调度:cpupower -c all frequency-infocat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  • NUMA 与拓扑:numactl --hardwaregrep -i numa /var/log/dmesg
  • THP 状态:cat /sys/kernel/mm/transparent_hugepage/enabledcat /sys/kernel/mm/transparent_hugepage/defrag
  • 提示:修改 grub 后务必执行 grub2-mkconfig -o /boot/grub2/grub.cfg(或 /etc/grub2.cfg,视发行版而定)并重启;变更电源/亲和策略前在测试环境验证,避免生产抖动。

0