大家好,又见面了,我是你们的朋友全栈君。
最近用华为鲲鹏跑了一段时间服务后,出现了系统负载40多居高不下的情况,一排查发现是kworker进程占用CPU很高,而且还杀不掉。
通过华为的监控发现是磁盘I/O很高,重启服务器后能短暂解决问题,但是过几天负载还是会很高,导致很多进程被系统杀死。
但是出现问题的就一台鲲鹏,其他的鲲鹏没有出现,通过比较发现内核版本不一样,执行uname -a
输出如下
Linux kpv7-pbx-0001 4.18.0-80.7.2.el7.aarch64 #1 SMP Thu Sep 12 16:13:20 UTC 2019 aarch64 aarch64 aarch64 GNU/Linux
Linux pbx-gch-t 4.18.0-193.28.1.el7.aarch64 #1 SMP Wed Oct 21 16:25:35 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux
这是因为我之前更新过内核
yum -y update
yum -y install kernel-devel
yum -y update kernel
reboot
#执行grub2-set-default0设置内核配置开机选单为第1项
grub2-set-default 1
#重启
reboot
使用dmesg查看回溯,你可以看到设备一直在打印近期繁忙的操作、调度。
下面是我这台设备的打印情况:
可以看到,virtio_gpu 这个驱动一直在报错误。怀疑是驱动不匹配。需要重新编译驱动或者根据自己的需要,是否保留这个驱动。我这边用不到,所以我就索性把这个驱动给卸载了。
步骤如下:
这样一来,再去看top。就发现,已经woker核占满的现象已经解决了。
分析内核的工具perf 相关文章:https://ubuntuqa.com/article/560.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/192652.html原文链接:https://javaforall.cn