Ubuntu 利用 cpuinfo 进行性能优化的实操指南
一 快速盘点 CPU 关键特征
lscpu | egrep '^(CPU\(s\)|Thread|Core|Socket|Model|NUMA)'。grep 'physical id' /proc/cpuinfo | sort -u | wc -lgrep 'cpu cores' /proc/cpuinfo | uniqgrep -c '^processor' /proc/cpuinfo 或 nprocgrep -q 'lm' /proc/cpuinfo && echo "64-bit"(lm 即 long mode)grep 'flags' /proc/cpuinfo | tr ' ' '\n' | grep -E 'avx|avx2|sse|sse2|sse4_2|bmi1|bmi2'grep -E 'model name|cpu MHz' /proc/cpuinfo二 依据 CPU 特征选择调优动作
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governorsudo cpufreq-set -g performance(或 powersave/ondemand/conservative)。计算密集型任务优先用 performance,移动/低负载用 powersave,通用平衡用 ondemand/conservative。GOVERNOR="performance",重启服务或系统后生效。taskset -cp 0,1 1234(将 PID 1234 绑定到 CPU 0–1);启动即绑定:taskset -c 0,1 ./my_app。numactl --cpunodebind=0 --membind=0 ./my_app(绑定到节点 0 的 CPU 与内存)。nice -n -5 ./critical_app(启动即高优先级,范围 -20…19);运行中调整:renice 10 -p 1234。cpulimit -p 1234 -l 50(限制为 50% 的单核占用,注意可能导致吞吐下降)。三 监控与瓶颈定位
top/htop(htop 更直观,支持按核心查看);vmstat 1(关注 us、sy、id、wa,判断 CPU 是否瓶颈)。pidstat -p <PID> 1(逐进程 CPU 使用)。sudo perf record -g ./app 与 sudo perf report,定位 CPU 消耗最高的函数/模块,针对性优化算法与数据访问路径。cat /proc/cpuinfo | grep 'cpu MHz'(瞬时频率),cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor(当前策略)。四 安全与可回退建议
lscpu、关键 cpufreq 与 numactl 配置,变更后逐项比对吞吐、延迟与温度。ondemand/powersave;亲和性与容器限制可通过重启进程/容器恢复默认。