理解 Linux 的平均负载和性能监控

栏目: Linux · 发布时间: 6年前

内容简介:本文解释 Linux 系统中最关键的管理任务之一,关于系统 / CPU 的负载和平均负载的性能监控。

在本文中,我们将解释 Linux 系统中最关键的管理任务之一——关于系统 / CPU 的负载和平均负载的性能监控。

首先来看所有的类 UNIX 系统中两个重要的表述:

  • 系统负载 / CPU 负载 – 衡量 Linux 系统的 CPU 过载或利用率低的指标,即处于运算状态或等待状态的 CPU 核心数。
  • 平均负载 – 通过固定的时间周期如 1、5、15 分钟计算出的平均的系统负载。

Linux 中,平均负载一般指在内核运行队列中被标记为运行或不可打断状态的进程的平均数。

注意:

  • 几乎没有 Linux 或类 Unix 系统不为用户展示平均负载的值。
  • 完全空闲的 Linux 系统平均负载为 0,不包括空闲进程。
  • 绝大多数类 Unix 系统只统计运行和等待状态的进程。但是在 Linux 中,平均负载也包括处于不可打断的睡眠状态的进程——它们是在等待其它系统资源如磁盘 I/O 等的进程。

如何监测 Linux 系统平均负载

有诸多方式监测系统平均负载,如 uptime,它会展示系统运行时间、用户数量及平均负载:

平均负载的数字从左到右的含义依次为:

  • 最近 1 分钟的平均负载为 1.98
  • 最近 5 分钟的平均负载为 2.15
  • 最近 15 分钟的平均负载为 2.21

高平均负载意味着系统是过载的:许多进程在等待 CPU 时间。

下一节将介绍平均负载和 CPU 核数的关系。此外,常用的工具 top 和 glances 可以实时显示 Linux 系统的运行状态:

Top命令

显示运行中的Linux进程:

Glances 工具

Glances – Linux系统监测工具:

这些 工具 中的平均负载是从 /proc/loadavg 文件中读取的,也可以直接使用 cat 命令查看:

在桌面计算机中,可以使用图形用户接口工具查看系统平均负载。

理解系统平均负载和 CPU 核心数的关系

考虑了 CPU 核心数的影响,才能解释系统负载。

多处理器 Vs 多核处理器

  • 多处理器 – 一个计算机系统中集成两个或多个物理 CPU
  • 多核处理器 – 单个物理 CPU 有两个或多个单独的核并行工作(也叫处理单元)。双核意味着有两个处理单元,4 核有 4 个处理单元,以此类推。

此外,Intel 引入了超线程技术用来提高并行计算能力。

通过超线程技术,在操作系统中,单个物理 CPU 表现的和两个逻辑 CPU 一样。(实际在硬件上只有一个 CPU)。

注意,单个 CPU 核同一时间只能执行一个任务,于是产生了多 CPU/处理器、多核 CPU,以及多线程技术。

多 CPU 时,多个程序可以同时执行。如今的 Intel CPU 使用了多核心和超线程技术。

可以使用 nproc 或 lscpu 命令查看系统中的处理器单元数量。

也可以使用 grep 命令

为了进一步理解系统负载,需要做一些假设。假设系统负载如下:

在单核系统中意味着:

  • CPU 被充分利用(100%);最近的 1 分钟有 1 个进程在运行。
  • CPU 有 60% 处于空闲状态;在最近的 5 分钟没有进程等待 CPU 时间。
  • CPU 平均过载了 235%;最近的 15 分钟平均有 2.35 个进程在等待 CPU 时间。

在双核系统中意味着:

  • 有一个 CPU 处于完全空闲状态,另一个 CPU 被使用;最近的 1 分钟没有进程等待 CPU 时间。
  • CPU 平均 160% 处于空闲状态;最近的 5 分钟没有进程等待 CPU 时间。
  • CPU 平均过载了 135%;最近的 15 分钟有 1.35 个进程等待 CPU 时间。

总而言之,如果你是系统管理员,你应该关注高的平均负载。平均负载高于 CPU 核心数意味着需要增加 CPU,反之则意味着 CPU 未被充分利用。

 


以上所述就是小编给大家介绍的《理解 Linux 的平均负载和性能监控》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C++程序设计原理与实践

C++程序设计原理与实践

(美)Bjarne Stroustrup / 王刚 等 / 机械工业出版社 / 2010.7 / 108.00元

本书是经典程序设计思想与C++开发实践的完美结合,是C++之父回归校园后对C++编程原理和技巧的全新阐述。书中全面地介绍了程序设计基本原理,包括基本概念、设计和编程技术、语言特性以及标准库等,教你学会如何编写具有输入、输出、计算以及简单图形显示等功能的程序。此外,本书通过对C++思想和历史的讨论、对经典实例(如矩阵运算、文本处理、测试以及嵌入式系统程序设计)的展示,以及对C语言的简单描述,为你呈现......一起来看看 《C++程序设计原理与实践》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

在线进制转换器
在线进制转换器

各进制数互转换器

MD5 加密
MD5 加密

MD5 加密工具