问题场景:机器有些问题,业务访问正常,但cpu使用率这么低,负载这么高,我的乖乖几个亿的负载,跑到银河系了
不懂就百度:
https://blog.csdn.net/qq_32352565/article/details/92185912
执行脚本
#!/bin/bash
LANG=C
PATH=/sbin:/usr/sbin:/bin:/usr/bin
interval=10
length=86400
for i in $(seq 1 $(expr ${length} / ${interval}));do
date
LANG=C ps -eTo stat,pid,tid,ppid,comm --no-header | sed -e 's/^ \*//' | perl -nE 'chomp;say if (m!^\S*[RD]+\s*!)'
date
cat /proc/loadavg
echo -e "\n"
sleep ${interval}
done
执行结果来看没有D+睡眠进程
再次百度并请教专家核实:发现是老旧内核的一个BUG (开心)
# running 进程数量
#awk '/\.nr_running/ {c += $3} END{print c}' /proc/sched_debug
# uninterruptible 进程数量
#awk '/\.nr_uninterruptible/ {c += $3} END {print c}' /proc/sched_debug
解决办法
内核升级方法:
1. 对机器做好快照
2. uname -r查看当前内核版本,客户报障机器当前为3.10.0-327.el7.x86_64
uname -r
3.10.0-327.el7.x86_64
3. 升级内核
yum update kernel -y
4. 升级完需要reboot重启机器生效新的内核
5. 重启后执行uname -r查看新版本内核是否已经在机器上生效:
当前centos7最新内核版本为:
3.10.0-1160.31.1.el7
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。