温馨提示×

centos cpuinfo性能优化方法

小樊
40
2025-12-03 18:55:16
栏目: 智能运维

基于 cpuinfo 的 CentOS CPU 性能优化方法

一、基线采集与特征识别

  • 采集硬件与拓扑信息:使用命令查看处理器型号、架构、频率、缓存、是否支持超线程与 NUMA 拓扑,为后续策略提供依据。
    • 命令示例:
      • cat /proc/cpuinfo(型号、频率、flags 等)
      • lscpu(结构化 CPU 拓扑)
      • grep ‘physical id’ /proc/cpuinfo | sort | uniq | wc -l(物理 CPU 数)
      • grep ‘cpu cores’ /proc/cpuinfo | uniq(每物理 CPU 核心数)
      • grep ‘model name’ /proc/cpuinfo;grep ‘cpu MHz’ /proc/cpuinfo;grep ‘cache size’ /proc/cpuinfo
      • grep ‘flags’ /proc/cpuinfo | grep ht(是否支持超线程)
      • numactl --hardware;grep -i numa /var/log/dmesg(NUMA 状态)
  • 识别要点:确认是否存在超线程物理/逻辑核心数各级缓存大小NUMA 节点数,据此决定绑核、调度与内存策略。

二、电源与频率策略优化

  • 选择性能模式:将 CPU 调频策略设置为 performance,避免降频带来的抖动与延迟。
    • 安装工具:yum install -y cpupowerutils
    • 查看与设置:
      • cpupower -c all frequency-info
      • cpupower -c all frequency-set -g performance
      • 或写入 sysfs:echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
  • 驱动与策略选择:
    • 查看驱动:cpupower frequency-info(常见为 acpi-cpufreq 或 intel_pstate)
    • 如需使用 acpi-cpufreq 的完整策略集,可在 GRUB 禁用 intel_pstate:
      • /etc/default/grub 增加:GRUB_CMDLINE_LINUX=“… intel_pstate=disable”
      • 生成配置:grub2-mkconfig -o /boot/grub2/grub.cfg(或 /boot/efi/EFI/centos/grub.cfg)
      • 重启后验证:cpupower frequency-info
  • 场景建议:批处理/低延迟/数据库等稳态负载优先使用performance;若需节能再评估 ondemand/conservative。

三、拓扑感知的亲和性与调度

  • 进程绑定与隔离:减少跨核迁移与缓存失效,提升局部性与可预测性。
    • 绑定进程到指定核心:taskset -pc 1-2
    • 使用 cgroups 限制/隔离 CPU 资源(适合多租户或关键业务独占核组)
  • NUMA 亲和与内存本地性:
    • 查看拓扑:numactl --hardware
    • 内存交错分配:numactl --interleave=all
    • 绑定进程到节点:numactl --cpunodebind=0 --membind=0
  • 优先级与调度控制:
    • 调整优先级:nice / renice
    • 实时需求:chrt 设置实时优先级(谨慎使用)
  • 超线程取舍:计算密集型且高度争用场景下,可评估关闭超线程;存储/吞吐型负载通常受益。BIOS 与内核启动参数层面可控制,变更需充分压测。

四、负载特征分析与瓶颈定位

  • 快速巡检:
    • top/htop(总体占用、僵尸、平均负载)
    • vmstat 2(r/b/si/so、cs、us/sy/id/wa)
    • pidstat -u 1(按进程看 usr/sys)
  • 软中断与网络:
    • cat /proc/softirqs(关注 NET_RX/NET_TX 增长)
    • 结合 sar/tcpdump 定位网络瓶颈
  • 性能剖析:
    • perf record -g;perf report(热点函数与调用栈)
  • 结论用法:
    • %us 高:应用计算密集,考虑绑核、并行度、编译器优化
    • %sy 高:内核/驱动/中断密集,检查软中断、驱动与系统调用
    • %wa 高:I/O 瓶颈,转向存储/文件系统/网络栈优化

五、系统化调优与持续验证

  • 使用 tuned 统一电源与调度策略:
    • 安装与启用:yum install -y tuned;systemctl enable --now tuned
    • 选择配置:tuned-adm profile throughput-performance 或 tuned-adm profile latency-performance
  • 应用与工作负载配置:
    • Web/DB:按 CPU 核数与负载类型调整工作进程/连接数/缓存;保持软件版本更新以获取性能修复
  • 变更流程与回滚:
    • 原则:先监控基线→小步变更→验证指标(吞吐、延迟、抖动、功耗)→记录与回滚
    • 风险提示:调频、绑核、实时优先级与 BIOS 参数变更可能影响稳定性与兼容性,务必在测试环境验证并备份。

0