发布于2026-04-21 阅读(0)
扫一扫,手机访问
想让你的 Linux 系统跑得更快、更稳?很多时候,答案就藏在 CPU 的细节里。今天,咱们不聊虚的,直接上手,从读懂 CPU 信息开始,一步步制定出专属的性能优化方案。
优化之前,先得摸清家底。了解你的 CPU 到底有多大能耐,是后续所有操作的基础。
cat /proc/cpuinfo。如果想获得更结构化的视图,lscpu 命令会是更好的选择。你需要重点关注这几项:型号名、架构、核心/线程数、缓存大小、运行频率、NUMA 节点数以及虚拟化支持。| 指标 | 命令示例 | 用途 |
|---|---|---|
| 逻辑处理器数 | grep ‘processor’ /proc/cpuinfo | wc -l |
查看系统识别的总线程数 |
| 物理 CPU 数 | grep ‘physical id’ /proc/cpuinfo | sort | uniq | wc -l |
确认有几颗物理 CPU |
| 每颗物理 CPU 的核心数 | grep ‘cpu cores’ /proc/cpuinfo | uniq |
了解每颗 CPU 的物理核心数量 |
| 超线程是否开启 | 比较 siblings 与 cpu cores 的值(或检查相同 physical id 下 core id 是否重复) |
决定后续的绑核策略 |
| 缓存大小 | grep ‘cache size’ /proc/cpuinfo |
评估数据局部性,对数据库等应用很重要 |
| 指令集特性 | grep ‘flags’ /proc/cpuinfo |
判断是否支持 SSE/A VX/A VX2/A VX-512 等加速指令集 |
| 64 位支持 | grep ‘lm’ /proc/cpuinfo |
确认 CPU 能否运行大内存应用 |
提示:lscpu 命令的输出更直观,能直接显示 Thread(s) per core、Core(s) per socket、NUMA node(s) 等拓扑信息,这对于后续的亲和性与 NUMA 优化来说,简直是“导航图”。
摸清底细后,就可以“对症下药”了。不同的场景,优化策略也大不相同。
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor。想临时切换到高性能模式?cpupower frequency-set -g performance。还可以限制频率范围:cpupower frequency-set -d 2.0GHz -u 3.0GHz。performance 模式;交互式或批处理任务可选 ondemand 或 conservative;移动或节能场景则用 powersa ve。taskset -c 0,1,2 ./app。对已运行的进程,taskset -cp 0,1 1234。numactl -C 0-7 ./mongod 绑定 CPU;numactl --cpunodebind=0 --membind=0 ./app 则将进程绑定到特定节点并使用本地内存,减少远程内存访问延迟。nice -n -5 ./critical 启动高优先级进程;renice 10 -p 1234 调整已有进程。cpulimit -p 1234 -l 50 限制某个进程最多使用单核 50% 的算力。docker run --cpus="1.5";在 K8s Pod 定义中设置 resources.limits.cpu 和 requests.cpu。sysctl -w vm.swappiness=10。提升高并发连接队列:sysctl -w net.core.somaxconn=4096。别忘了,永久生效需写入 /etc/sysctl.conf 并执行 sysctl -p。worker_processes 通常设为 CPU 物理核心数,worker_connections 则根据并发目标调整。innodb_buffer_pool_size 常设为物理内存的 50%–70%,并合理设置 max_connections。-Xms/-Xmx 可设为物理内存的 70%–80%,并根据负载选择合适的 GC 算法(如 G1GC)以减少停顿。优化不是一劳永逸,动态监控才能发现真问题。
top 或 htop 快速找出高 CPU 占用的进程;vmstat 1 关注 us(用户态)、sy(系统态)、id(空闲)、cs(上下文切换)、wa(I/O 等待)等列;iostat -c 1 判断 I/O 操作是否在拖累 CPU。pidstat -p PID 1 精细观察单个进程的 CPU 使用情况;perf top 或 perf record -g && perf report 可以定位到具体的热点函数和调用栈,是性能调优的“显微镜”。cpupower frequency-info 查看当前频率策略和范围,确认你的策略是否生效,CPU 是否在频繁升降频。理论说得再多,不如看一个完整的实战推演。
lscpu 显示:Thread(s) per core: 2, Core(s) per socket: 8, Socket(s): 1。同时,/proc/cpuinfo 的 flags 显示支持 A VX2(但不支持 A VX-512)。当前 scaling_governor 为 powersa ve。performance;2. 将关键进程绑定到 0–15 号逻辑 CPU(避免跨 NUMA 节点访问);3. 数据库缓冲池按总内存的 60% 配置;4. Web 服务器的 worker_processes 设为 8(物理核心数)。cpupower frequency-set -g performancetaskset -c 0-15 ./servicesysctl -w vm.swappiness=10 && sysctl -ptop/htop 观察 CPU 占用是否更集中于目标进程;用 perf record -g 确认热点函数是否减少或变化;通过 vmstat 和 iostat 检查是否消除了因 I/O 等待导致的 CPU 空转。最后,几个关键的提醒,能帮你避开不少坑。
ondemand 或 conservative 模式。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8