前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux Load Average详解

Linux Load Average详解

原创
作者头像
RogerPu-普文俊
修改2020-10-27 16:06:39
2K0
修改2020-10-27 16:06:39
举报
文章被收录于专栏:普文俊的专栏普文俊的专栏

Linux Load Average详解

引言

Linux系统中的load average是SRE工程师经常关注的指标,也是SRE工程师在面试时候经常会被问到的问题,大家用它来判断CPU的工作负载,一般这个值如果是CPU核心数的多倍时,我们就认为CPU负载很高,需要处理,这样的认识对吗?

结论:不完全对。load average不仅体现CPU负载,磁盘I/O,内存不足都会造成该值上升。

分析
  • load average的使用场景
  • 源码解读

该数据来源是计算CPU的内核态线程量(等价用户态进程量)(这里是我自己综合看各路资料总结,待确认)不仅包括了nr_running状态,还包括了nr_uninterruptible状态的线程,后者是会被I/O、内存资源关联影响的。

  • 什么是nr_running、nr_uninterruptible状态? 这是用户态进程状态,有7种状态。running的状态好理解,就是正常运行的进程;而uninterruptible是一种特殊状态,表示的是一个等待硬件资源睡眠且无法被中断的进程,出现该状态的进程一般是因为在等待IO,例如磁盘IO、网络IO等。也就是说,I/O和内存的不足,也会造成load average增加。
待办
  • nr_running、nr_uninterruptible的来源测试分析。
  • 内核态线程和用户态进程线程概念的理解。
  • 一套测试验证方法
参考材料

https://zhuanlan.zhihu.com/p/75975041 | Linux Load Averages:什么是平均负载?https://github.com/torvalds/linux/blob/master/kernel/sched/loadavg.c | Linux相关内核源码https://cloud.tencent.com/developer/article/1087424 | linuxload average详细分析

http://www.brendangregg.com/blog/2017-08-08/linux-load-averages.html | Linux Load Averages: Solving the Mystery

https://blog.csdn.net/dog250/article/details/107792805 | Linux系统load average异常值处理的trick

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Linux Load Average详解
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档