linux top load average过高_load指令是什么意思

2022-09-28 10:39:34 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

Linux操作系统load average过高,kworker占用较多cpu

今天巡检发现,mc1的K8S服务器集群有些异常,负载不太均衡。其中10.2.75.32-34,49的load average值都在40以上,虽然机器的cpu核数都是40或48核不算严重,但也值得重视。

登陆机器查看,执行top发现,cpu的使用率接近40%,sys有20-30,user有10-20。也发现有大量的内核线程[kworker]占用比较多的使用率。如下是在下午7点多的截图,如果是高峰期9点,kworker的数字多数是在20-30之间,说明占用了比较多的cpu资源。

顺着这个方向排查。[kworker]这种内核线程使用的是内核工作队列模式,1个cpu就产生对应的1个内核线程。

里面有说到kworker的排查方面,即用ftrace命令,排查workqueue_queue_work中什么函数调用最多。

在机器上安装ftrace,参考文章:https://linux.cn/article-9273-1.html

apt-get install trace-cmd

装上后运行一段时间查看

trace-cmd record -e workqueue:workqueue_queue_work

trace-cmd report > result

把结果保存到result后,进行分析结果得出:

这个dbs_timer的function运行数量极大。关键字搜索一下,感觉有点是这个引起的问题,因为这个函数是跟cpu动态调整频率有关系,而cpu调频是用来省电用的

具体通过学习了cpufreq的知识:

http://abcdxyzk.github.io/blog/2015/08/12/kernel-cpufreq/

里面提到一点:

Cpufreq 作为一个子系统最早被加入到 Linux 内核中时只配备了 governors ,分别是performance、powersave 和 userspace,ondemand。当用户选择使用 performance governor 时,CPU会固定工作在其支持的最高运行频率上;当用户选择使用 powersave governor 时,CPU会固定工作在其支持的最低运行频率上。因此这两种 governors 都属于静态 governor ,即在使用它们时CPU 的运行频率不会根据系统运行时负载的变化动态作出调整。这两种governors 对应的是两种极端的应用场景,使用 performance governor 体现的是对系统高性能的最大追求,而使用 powersave governor 则是对系统低功耗的最大追求。

安装下面的软件查看配置:

apt-get install cpufrequtils

但是我们的cpu配置是这样的:

初步怀疑:cpu的动态调频策略,导致每隔一段时间就要执行od_dbs_timers函数(调用dbs_timers的调用者),来判断cpu是否要进行降频或者升频,因为我们的进程数量特别多,所以也可能会加快这个策略的运行频率。最后就导致kworker占用比较高的资源。

为了确认是否这个引起的,下午7点多的时候在3台机器上进行了验证,把cpufreq的策略改为performance,这个策略上面说过cpu将不会进行调频,这3台机器都是kworker还处于比较高使用率情况的

for i in (ls /sys/devices/system/cpu/*/cpufreq/scaling_governor);do echo performance >

查看实际的模式是否修改完成

等待片刻后,load average 下降很多, kworker也从top命令的首页中消失,cpu的sys和user使用率也降低,说明这个改动是有效的。

在类似K8S这种负载比较高,进程数量多的服务器上,应该要关闭这个调频功能,虽然不省电,但至少可以避免在负载出现一定程度的情况下内核线程反而会加大cpu资源消耗的情况。

转载于:https://www.cnblogs.com/williamjie/p/10836799.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/193103.html原文链接:https://javaforall.cn

0 人点赞