28

理解系统负载

 6 years ago
source link: https://lotabout.me/2018/how-system-load-is-calculated/?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

topuptime 等命令会输出系统的平均负载 (Load Average),一般会有三个值,分别代表 1 分钟,5 分钟和 15 分钟的平均负载。那“负载”又是什么含义呢?

一般搜索得到的结果都会有一个“桥”或是“公路”的类比,虽然形象但却不准确,其实直接阅读维基百科 Load (Computing) 就能知道差不多信息。这里在维基的基础上简单梳理。

负载记录的是 CPU 的负荷,能对 CPU 造成负荷的是进程(包括线程)的执行。负载的数值代表的是 CPU 还没处理完的进程的数目。

空闲的系统负载为 0。当一个进程正在被 CPU 执行或即将要被执行(即进入等待执行的队列)时,系统的负载加 1;执行完成时负载减 1。从这种角度看有点像是高速公路,进去时取卡,出来时还卡,然后计算高速上一共有多少车辆。当然还有一些特殊情况(如有些系统对线程的计算方式不同)这里就不展开了。

现在我们能计算某个时刻系统的负载。Linux 会每隔 5s 的时间检查一下当前系统负载,并求它们的平均数。因此要是仔细查看的话,负载的值是每 5s 变化一次。

炒股的朋友们应该知道 5 日均线,20 日均线什么的,系统的负载采用的也是类似的技术,具体用的是 指数移动平均 ,计算方法如下:

S(0) = 0
S(t) = a * X(t) + (1-a)*S(t-1)

其中, X(t) 为最近一次采样的值, a 为最近采样值占的比重, S(t) 则是系统最近一次采样的负载。

指数移动平均的计算方式会累计历史所有的采样值,但离现在越久,占的比重越小。更具体的,Linux 系统上对 1 分钟的平均负载取 a 的取值为 1 - e^(-5/60) ,5 分钟为 1 - e^(-5s/5min) ,以此类推。

以一分钟为例,上面的取值能达到的效果是,最近一分钟的采样占所有历史值的比重约为 63%(准确值为 1 - 1/e ),5 分钟和 15 分钟也一样。

系统负载与 CPU 占用率

两个相同的系统,一个负载是 3,一个负载是 6,如果只看 CPU 占用率,大家都是 100% ,能看出哪个系统当前的压力大吗?高负载时一般 CPU 都是 100%,要了解系统的压力,负载指标就比 CPU百分比更有意义。当然 CPU 占用率的细节(如 ussy 等指标)对于排查问题还是很有帮助的。

单核满载是 1 ,有 n 核满载是 n 。一般说线上运行的系统大于 0.7 的时候就要注意了,超过 1.5 应该就会有人打电话找你了。

总觉得这是一个好像很厉害但却没什么卵用的知识:

  • 系统负载统计的是运行和等待运行的进程/线程数
  • Linux 下是 5s 一采样并计算移动平均
  • 一分钟指数移动平均用到了不止近一分钟的采样数据
  • n 核,满载的负载就是 n

Recommend

  • 53
    • 掘金 juejin.im 6 years ago
    • Cache

    深入理解负载均衡

    前言 闲来无事写篇文章总结下负载均衡。 正文 负载均衡 负载均衡是高可用架构的一个关键组件,主要用来提高性能和可用性,通过负载均衡将流量分发到多个服务器,同时多服务器能够消除这部分的单点故障。 当然负载均衡器本身就是一个单点故障隐患,可以考虑文章后面...

  • 69

    一、背景 表格存储(原名OTS)是一款阿里自研的NoSQL多租户分布式数据库,本文主要会分享在表格存储中,负载均衡系统如何解决热点问题。 1、表格存储架构 下图是表格存储系统最基本的一个架构图: ...

  • 44

    概述 在分布式系统设计当中,一般会对服务进行集群部署,集群中的多个节点提供相同的服务,所以可以将对该服务的请求分发给集群的任意一个节点来处理。为了将请求合理分发给集群的节点进行处理,即既要保证集群的每个节点都能...

  • 33

    一、 什么是负载均衡? 什么是负载均衡? 记得第一次接触 Nginx 是在实验室,那时候在服务器部署网站需要用 Nginx 。Nginx 是一个服务组件,用来反向代理、负载平衡和 HTTP 缓存等。那么这里的 负载均衡 是什么?...

  • 24

    系统负载看不懂? 2020/1月/20 10:54:40 发布在 技术博文 1...

  • 12
    • www.ayqy.net 5 years ago
    • Cache

    负载均衡_系统设计笔记5

    零.从横向扩展说起 从单机扩展到多机,面临的第一个问题就是这些机器如何协同工作,即 如何调度请求 : load bal...

  • 31
    • 微信 mp.weixin.qq.com 4 years ago
    • Cache

    一文理解 Linux 平均负载,附排查工具

    什么是平均负载 平均负载可以对于我们来说及...

  • 14

    大型高并发高负载网站的系统架构分析 浏览:7074次  出处信息 扩展Web应用程序

  • 14
    • zhuanlan.zhihu.com 4 years ago
    • Cache

    多核系统的负载均衡

    多核系统的负载均衡兰新宇talk is cheap多核大致可分为同构(SMP)和异构(AMP)两种...

  • 6

    performance Linux 性能:理解平均负载和 CPU 百分比 平均负载是评估一段时间内在 Linux 内核运行队列中有多少任务正在等待运行,不只是 CP...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK