当主机平均负载很高时,通过 top命令查看有2个进程,每个进程cpu的使用率都是99%,这个时候要怎么办,进程不能终止的情况下,如何让CPU使用率降下来呢
1)使用renice改变进程的nice值,降低进程的优先级,设置到最大19,nice数值越大,越不争 CPU,CPU 占用可能会被压下去。
2)通过cgroup v2,限制 CPU 使用率,cgroup v2内核原生、精准、稳定,比cpulimit 最佳
# 创建控制组
mkdir -p /sys/fs/cgroup/limit30
# 设置 CPU 上限:30%(100000 微秒为一个周期)
echo "30000 100000" > /sys/fs/cgroup/limit30/cpu.max
把两个高 CPU 进程加入这个组
echo 955 > /sys/fs/cgroup/limit30/cgroup.procs
echo 971 > /sys/fs/cgroup/limit30/cgroup.procs
一段时间后,监控这2个进程的CPU占用率下降到30%以下

整个主机的平均负载也不高了,并趋于稳定
[student@serverb ~]$ uptime
10:59:44 up 47 min, 2 users, load average: 0.05, 0.28, 0.31
这也只是临时的解决方案,后续需要实时对系统资源进行监控起来了。