优化CentOS的CPU性能需围绕CPU信息监控、频率调节、进程管理、内核参数、多核利用五大核心方向展开,以下是具体操作步骤及注意事项:
优化前需通过以下命令全面了解CPU硬件特性,为后续调整提供依据:
lscpu(结构化输出,包含核心数、线程数、缓存大小、架构等);grep 'physical id' /proc/cpuinfo | sort | uniq | wc -l(物理核心数)、grep 'cpu cores' /proc/cpuinfo | uniq(每个物理核心的线程数,判断是否支持超线程);grep 'model name' /proc/cpuinfo(型号)、grep 'cpu MHz' /proc/cpuinfo(当前运行频率);grep 'flags' /proc/cpuinfo(如SSE、AVX等指令集,部分应用需特定指令集加速);grep 'lm' /proc/cpuinfo(若包含“lm”,则支持64位架构,可运行大内存应用)。CPU频率动态调节(如ondemand、powersave)可能导致性能波动,性能模式(performance) 是多数服务器场景的最优选择:
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
cpupower工具(CentOS 7/8默认包含):sudo yum install kernel-tools;sudo cpupower frequency-set -g performance;sudo cpupower frequency-set -d 2.0GHz -u 3.5GHz # 设置最低/最高频率
cpupower frequency-info --policy(查看当前策略)、cpupower frequency-info --hwlimits(查看硬件支持的频率范围)。taskset将关键进程固定到特定CPU核心,降低缓存失效概率:taskset -cp 0,1 1234 # 将PID为1234的进程绑定到核心0和1
nice -n 10 command(nice值越高,优先级越低);renice -n 5 -p 1234(降低PID为1234的进程优先级)。内核参数的合理配置可显著提升CPU资源利用率:
vm.swappiness控制内核使用Swap的积极性(值越低,越倾向于使用物理内存),编辑/etc/sysctl.conf:vm.swappiness=10 # 默认60,生产环境建议10-30
生效命令:sudo sysctl -p。net.core.somaxconn(监听队列最大长度),避免网络请求堆积:sudo sysctl -w net.core.somaxconn=4096
echo "net.core.somaxconn=4096" >> /etc/sysctl.conf
numactl将进程与NUMA节点绑定,减少跨节点内存访问延迟:numactl --cpunodebind=0 --membind=0 ./application # 绑定到NUMA节点0
top/htop:实时查看CPU使用率(按1键查看每个核心的使用情况);perf:深入分析函数级性能瓶颈(如perf top查看热点函数、perf record记录性能数据);cpustat(属于sysstat包):监控CPU使用率、上下文切换等指标(watch -n 1 cpustat)。firewalld、selinux等非必需服务);注意事项:
top、vmstat等工具持续观察CPU使用率、负载等指标,确保优化达到预期目标。