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

linux top load average过高_load指令是什么意思Linux操作系统loadaverage过高,kworker占用较多cpu今天巡检发现,mc1的K8S服务器集群有些异常,负载不太均衡。其中10.2.75.32-34,49的loadaverage值都在40以上,虽然机器的cpu核数都是40或48核不算严重,但也值得重视。登陆机器查看,执行top发现,cpu的使用率接近40%,sys有20-30,user有10-20。也发现有大量…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

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

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

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

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

顺着这个方向排查。[kworker]这种内核线程使用的是内核工作队列模式,1个cpu就产生对应的1个内核线程。参考了这个文章:https://yq.aliyun.com/articles/504369

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

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

在机器上安装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后,进行分析结果得出:

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

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

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

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

https://www.ibm.com/developerworks/cn/linux/l-cn-cpufreq/index.html

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配置是这样的:

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

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

初步怀疑: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 > $i;done

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

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

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

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

 

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 在pycharm中使用tensorflow_使用中是什么意思

    在pycharm中使用tensorflow_使用中是什么意思QtDesigner的介绍在PyQt中编写UI界面可以直接通过代码来实现,也可以通过QtDesigner来完成。QtDesigner的设计符合MVC的架构,其实现了视图和逻辑的分离,从而实现了开发的便捷。QtDesigner中的操作方式十分灵活,其通过拖拽的方式放置控件可以随时查看控件效果。QtDesigner生成的.ui文件(实质上是XML格式的文件)也可以通过pyuic5工具转换成…

    2022年8月28日
    0
  • cgal使用_cgal库

    cgal使用_cgal库CGAL5.3-手动:在Windows上使用CGAL(使用VisualC++)

    2022年10月23日
    0
  • java pojo 是什么_什么是POJO「建议收藏」

    java pojo 是什么_什么是POJO「建议收藏」POJO(PlainOldJavaObjects)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。在Java应用程序中的角色使用POJO名称是为了避免和EJB混淆起来,而且简称比较直接.其中有一些属性及其gettersetter方法的类,没有业务逻辑,有时可以作为VO(value-object)或dto(DataTransformObject)…

    2022年5月28日
    41
  • 计算机按位取反[通俗易懂]

    计算机按位取反[通俗易懂]取反过程1.转成二进制2.取补码3.补码的反码(符号位不变)4.反码加+1可以通过原码、反码和补码三者的含义及关系来介绍三者之间的换算关系:1、原码原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。比如如果是8位二进制:[+1]原=00000001[-1]原=10000001第一位是符号位。2、反码

    2022年8月14日
    0
  • 给RadioGroup动态添加RadioButton时,设置layout_weight

    给RadioGroup动态添加RadioButton时,设置layout_weight

    2021年9月12日
    74
  • php curl用法_php项目实战

    php curl用法_php项目实战例1,curl扩展开启的步骤:1、将PHP文件夹下的三个文件php_curl.dll,libeay32.dll,ssleay32.dll复制到system32下;2、将php.ini(c:WINDOWS目录下)中的;extension=php_curl.dll中的分号去掉;3、重启apache或者IIS。例2,PHP开启curl_init在测试模拟登录时,出现“Calltoundefined…

    2022年8月30日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号