温馨提示×

Linux CPUInfo 优化技巧

小樊
34
2025-12-01 06:42:07
栏目: 智能运维

Linux CPUInfo 优化技巧

一 从 CPUInfo 获取的关键信息

  • 使用以下命令快速梳理硬件与特性:
    • 基础信息:cat /proc/cpuinfo;结构化摘要:lscpu
    • 物理/逻辑核心与超线程:grep ‘physical id’ /proc/cpuinfo | sort | uniq | wc -l;grep ‘cpu cores’ /proc/cpuinfo | uniq;逻辑处理器数通常等于 grep ‘processor’ /proc/cpuinfo | wc -l
    • 型号与频率:grep ‘model name’ /proc/cpuinfo;grep ‘cpu MHz’ /proc/cpuinfo
    • 缓存层级:grep ‘cache size’ /proc/cpuinfo
    • 指令集特性:grep ‘flags’ /proc/cpuinfo(关注 SSE、AVX、AVX2、AVX-512 等)
    • 64 位支持:grep ‘lm’ /proc/cpuinfo(出现 lm 表示支持 x86_64
  • 解读要点:物理核心数决定并行度上限;逻辑处理器数反映超线程/SMT;更大的缓存有助于提升命中率;指令集决定可启用的编译器优化与向量化路径。

二 电源与频率策略优化

  • 查看与切换频率策略:
    • 查看:cpupower frequency-info;或查看 /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
    • 切换为性能模式:sudo cpupower frequency-set -g performance
  • 持久化设置(Debian 示例):
    • 安装工具:sudo apt install cpufrequtils
    • 写入配置:echo “GOVERNOR=performance” | sudo tee /etc/default/cpufrequtils
    • 生效:sudo systemctl restart cpufrequtils
  • 适用场景:低时延/批处理/高并发服务建议性能模式;笔记本或混合负载可保留 powersave/ondemand 以兼顾续航与噪声。

三 进程绑定与 NUMA 亲和

  • 将关键负载绑定到指定核心,减少迁移与缓存失效:
    • 按 CPU 列表绑定:taskset -c 0,2,4-7 your_app
    • 按 CPU 掩码绑定:taskset 0xFF your_app
  • NUMA 架构下优化内存局部性:
    • 查看拓扑:numactl -H
    • 绑定到节点并本地分配内存:numactl -N 0 -m 0 your_app
  • 适用场景:数据库、消息队列、低延迟网络服务、HPC 计算任务。

四 调度优先级与实时性配置

  • 提升关键进程的调度优先级(需谨慎):
    • 提高 nice 值(降低优先级):renice -10 -p
    • 提升实时优先级(需 root 且谨慎):chrt -r 99
  • 适用场景:实时音视频、交易撮合、工业控制等对延迟敏感的工作负载。

五 监控与瓶颈定位

  • 快速观测:
    • 全局与进程:top / htop;按 CPU 排序(top 中按 Shift+P
    • 系统维度:vmstat 1(关注 %us、%sy、%wa、%st
    • 内核与硬件事件:perf record -g && perf report
  • 内核与电源参数微调(示例):
    • 降低换页倾向:sudo sysctl -w vm.swappiness=10
    • 调整文件描述符上限:sudo sysctl -w fs.file-max=100000
  • 验证与回滚:
    • 每次变更前记录基线(吞吐、P95/P99 延迟、抖动),变更后在同等负载下复测;性能与稳定性优先,生产环境建议灰度与回滚预案。

0