cpustat 本身不直接优化 CPU 调度,但可通过监控数据辅助调整策略,具体方法如下:
监控 CPU 使用情况
用 cpustat
实时查看 %usr
(用户态)、%sys
(内核态)、iowait
(I/O 等待)等指标,识别高负载进程或资源瓶颈。
cpustat -u 1 # 每秒更新用户态和内核态占比
调整进程优先级
nice
/renice
设置普通进程优先级(-20 到 19,数值越小优先级越高)。chrt
设置实时调度策略(如 SCHED_FIFO
),适用于关键任务。nice -n -5 ./important_process # 提高普通进程优先级
chrt -f 99 ./realtime_process # 设置实时优先级
优化 CPU 亲和性
用 taskset
将进程绑定到特定 CPU 核心,减少上下文切换和缓存失效。
taskset -c 0,1 ./cpu_intensive_program # 绑定到 CPU 0 和 1
修改内核调度参数
sched_min_granularity_ns
)或启用自动组调度。echo 1000000 > /proc/sys/kernel/sched_min_granularity_ns
/etc/sysctl.conf
并添加对应参数。启用 NUMA 绑核(多核服务器)
在 BIOS 中开启 NUMA 支持,用 numactl
绑定进程到特定 NUMA 节点,提升内存访问效率。
numactl --cpunodebind=0 --membind=0 ./application
限制进程 CPU 占用
用 cpulimit
限制非关键进程的 CPU 使用率,避免资源争抢。
cpulimit -l 50 -p <PID> # 限制进程占用不超过 50% CPU
注意:优化前需在测试环境验证,避免影响系统稳定性。不同负载场景(如 CPU 密集型、I/O 密集型)需针对性调整策略。