CentOS CPUInfo 配置技巧
导读:CentOS CPUInfo 配置与调优技巧 一、快速准确读取 CPU 信息 使用 lscpu 获取整体拓扑:关注 Architecture、CPU(s 、Thread(s per core、Core(s per socket、Soc...
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 -a、cat /etc/redhat-release、getconf 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-info或cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor - 设置全核性能模式:
cpupower -c all frequency-set -g performance(默认为 powersave)
- 安装:
- 超线程开关(需重启,谨慎):
- 检查:
grep -i ht /proc/cpuinfo或dmidecode -t processor | grep HTT - 关闭:在 /etc/default/grub 的
GRUB_CMDLINE_LINUX末尾添加 noht,然后grub2-mkconfig -o /etc/grub2.cfg & & reboot
- 检查:
- NUMA 策略:
- 查看:
numactl --hardware、grep -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/enabled、cat /sys/kernel/mm/transparent_hugepage/defrag - 建议对数据库/低延迟场景设为 madvise 或 never,减少抖动。
- 查看:
四、进程与中断的 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>
- 容器/虚拟化:在 Kubelet 或 QEMU 启动参数中设置 CPU 亲和/拓扑,减少跨 NUMA 访问。
五、一键巡检与排错命令清单
- 基础信息:
lscpu、cat /proc/cpuinfo | egrep 'processor|model name|cpu cores|siblings|physical id' | head -20、dmidecode -t processor - 虚拟化与位数:
uname -a、cat /etc/redhat-release、getconf LONG_BIT - 负载与频率:
top/htop(top 按 1 看每核,按 P/M 排序) - 电源与调度:
cpupower -c all frequency-info、cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor - NUMA 与拓扑:
numactl --hardware、grep -i numa /var/log/dmesg - THP 状态:
cat /sys/kernel/mm/transparent_hugepage/enabled、cat /sys/kernel/mm/transparent_hugepage/defrag - 提示:修改 grub 后务必执行
grub2-mkconfig -o /boot/grub2/grub.cfg(或/etc/grub2.cfg,视发行版而定)并重启;变更电源/亲和策略前在测试环境验证,避免生产抖动。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS CPUInfo 配置技巧
本文地址: https://pptw.com/jishu/772296.html
