Linux系统运维命令:查看系统的平均负载(查看CPU的负载)

目          录

一、要求

二、快速了解系统资源利用情况的Linux命令

(一)cat /proc/loadavg命令

1、命令介绍

2、命令输出

3、命令解释

(1)前三个数字:

(2)第四个值:

(3)最后一个数字:

(二)vmstat命令

1、命令介绍

2、命令选项option

(1)常用选项

(2)输出字段解释

3、使用场景

4、命令示例

(1) procs

(2) memory

(3) swap

(4) io

(5) system

(6) cpu

(7)总结


一、要求

       linux中,我们经常采用top来看系统和线程的占用资源的情况,但是我们很多时候需要总体了解系统的资源占用情况,有没有一些简单的命令,不需要安装,系统自带,可以快速了解系统总的资源占用情况?

二、快速了解系统资源利用情况的Linux命令

(一)cat /proc/loadavg命令

1、命令介绍

        cat /proc/loadavg 是一个在 CentOS(以及其他 Linux 发行版)中常用的命令,用于查看系统的平均负载。/proc/loadavg 是一个虚拟文件,它反映了当前操作系统在内存中的运行情况,而不占用实际的磁盘空间。

2、命令输出

        当你执行 cat /proc/loadavg 命令时,你会看到类似以下的输出:


[root@ecs-52a1 121yunwei]# cat /proc/loadavg
0.05 0.10 0.15 1/234 12345
[root@ecs-52a1 121yunwei]#

3、命令解释

上面命令输出的那些数字的含义如下:

(1)前三个数字:

        这三个数字分别表示系统在过去 1 分钟、5 分钟和 15 分钟内的平均负载。这个平均负载并不是 CPU 的使用率,而是可运行或等待运行(在运行队列中)的进程数的平均值。在单核 CPU 的系统上,如果这个数字大于 1,那么通常意味着系统有进程在等待 CPU 时间片。对于多核 CPU 的系统,这个数字可以超过 CPU 的核心数,但这并不一定表示系统过载,因为多个进程可以同时运行在不同的核心上。

(2)第四个值:

        这是一个分子和分母组成的分数。分子表示当前正在运行的进程数,分母表示系统总的进程数。例如,上面的输出中的 1/234 表示有 1 个进程正在运行,总共有 234 个进程。

(3)最后一个数字:

        这是最近一次运行的进程的 PID(进程 ID)。

        要正确理解这个命令的输出,你需要考虑你的系统的 CPU 核心数。例如,如果你有一个四核 CPU 的系统,并且 cat /proc/loadavg 的输出中第一个数字(1 分钟内的平均负载)为 4.00,那么这意味着系统在这段时间内平均有 4 个进程在等待或正在运行,这可以被认为是满负载运行。但如果这个数字超过 4,比如说是 5.00,那么意味着系统有过多的进程在等待 CPU 时间片,可能会导致性能下降。

        总的来说,cat /proc/loadavg 是一个快速查看系统负载状态的好方法,

(二)vmstat命令

1、命令介绍

        vmstat(Virtual Memory Statistics,虚拟内存统计)是Linux中用于报告关于系统虚拟内存、进程、磁盘IO、中断和CPU活动的重要统计信息的工具。通过vmstat命令,管理员和用户可以快速了解系统的整体性能状况和瓶颈所在。

        命令格式如下:

vmstat [options] [delay [count]]

2、命令选项option

        options 是可选的参数,用于指定vmstat命令的行为。

        delay 是两次报告之间的时间间隔,以秒为单位。

        count 是报告的次数。如果不指定,vmstat将持续运行直到被中断。

(1)常用选项

        -a:显示活跃和非活跃内存。

        -f:显示从系统启动至今的fork数量。

        -m:显示slabinfo信息。

        -n:在周期性循环输出时,输出的头部信息仅显示一次。

        -s:显示内存相关统计信息及多种系统活动数量。

        -d:显示磁盘相关统计信息。

        -p:显示指定磁盘分区统计信息。

        -S:使用指定单位显示。例如,k或K表示1000字节,m或M表示1000000字节。

        -V:显示vmstat的版本信息。

(2)输出字段解释

        vmstat命令的输出包含多个字段,每个字段都反映了系统某个方面的状态或活动情况。例如:

        Procs:进程状态相关字段,包括运行和等待CPU时间的进程数、不可中断状态的进程数等。

        Memory:内存使用相关字段,如总量、使用量、空闲量、缓存量等。

        Swap:交换空间使用相关字段。

        IO:磁盘IO相关字段,包括块读/写、中断次数等。

        CPU:CPU使用相关字段,如用户空间占用率、系统空间占用率、空闲率等。

        为了获取每个字段的具体解释,你可以查阅vmstat的手册页,通过运行man vmstat命令来访问。

3、使用场景

        vmstat命令通常用于以下场景:

  •         性能监控:定期运行vmstat以监控系统的资源使用情况,包括内存、CPU和磁盘IO。
  •         故障排查:当系统出现性能问题时,可以使用vmstat来识别可能的瓶颈或资源争用情况。
  •         系统调优:基于vmstat的输出,可以对系统进行调优,例如调整内存分配、优化磁盘IO等。

4、命令示例

        以下是一个简单的vmstat命令示例:

vmstat 1  # 每秒更新一次系统状态

        这个命令将每秒打印一次系统状态,包括内存、交换、IO、CPU等信息,直到你手动停止它(通常是通过按下Ctrl+C)。

5、Vmstat命令实例详解


[root@ecs-52a1 121yunwei]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 141140 225700 3840776    0    0    18    42    2    2  2  5 92  0  0
[root@ecs-52a1 121yunwei]# 

        当输入 `vmstat` 并得到以下输出:

        这些数据的解释如下:

(1) procs

        * **r**: 运行队列中的进程数,即等待CPU时间的进程数。在这个例子中,有1个进程在等待CPU时间。

        * **b**: 处于不可中断状态的进程数。在这个例子中,没有进程处于不可中断状态。

        * **swpd**: 使用的交换空间大小(KB)。在这个例子中,没有使用交换空间。

(2) memory

        * **free**: 空闲的物理内存大小(KB)。在这个例子中,有141140KB的空闲物理内存。

        * **buff**: 缓冲区内存大小(KB)。缓冲区用于存储块设备的读写数据,通常用于磁盘I/O。在这个例子中,有225700KB的缓冲区内存。

        * **cache**: 缓存内存大小(KB)。缓存用于存储文件系统的数据和目录项,以提高文件访问速度。在这个例子中,有3840776KB的缓存内存。

(3) swap

        * **si**: 每秒从交换空间换入到物理内存的数据量(KB/s)。

        * **so**: 每秒从物理内存换出到交换空间的数据量(KB/s)。

        在这个例子中,`si` 和 `so` 都是0,表示没有数据在物理内存和交换空间之间交换。

(4) io

        * **bi**: 块设备接收的块数(块/秒)。

        * **bo**: 发送到块设备的块数(块/秒)。

        在这个例子中,`bi` 是18块/秒,`bo` 是42块/秒,表示了系统的磁盘I/O活动。

(5) system

        * **in**: 每秒的中断数,包括时钟中断。

        * **cs**: 每秒上下文切换次数。

        在这个例子中,每秒有2个中断和2次上下文切换。

(6) cpu

        * **us**: 用户空间占用CPU的百分比。

        * **sy**: 内核空间占用CPU的百分比。

        * **id**: 空闲CPU的百分比。

        * **wa**: 等待I/O的CPU百分比。

        * **st**: 被虚拟机偷走的CPU时间百分比(如果有虚拟机的话)。

        在这个例子中:

        * 用户空间占用CPU的百分比是2%。

        * 内核空间占用CPU的百分比是5%。

        * 空闲CPU的百分比是92%。

        * 等待I/O的CPU百分比是0%。

        * 没有被虚拟机偷走的CPU时间。

(7)总结

        从这些数据中可以看出,系统当前的负载非常低,大部分CPU时间都是空闲的,只有很少的进程在等待CPU时间,磁盘I/O活动也很低。这是一个相当健康的系统状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/454983.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:TextClock)

TextClock组件通过文本将当前系统时间显示在设备上。支持不同时区的时间显示,最高精度到秒级。 说明: 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 无 接口 TextClock(options?…

c++进阶(c++里的继承)

文章目录 1.继承的概念及定义1.1继承的概念1.2继承的定义1.2.1定义格式1.2.2继承关系和访问限定符1.2.3继承类成员访问方式的变化 2.基类和派生类对象赋值转化3.继承中的作用域4.派生类的默认成员函数5.继承与友元6.继承域静态成员 1.继承的概念及定义 1.1继承的概念 继承机制…

23、设计模式之访问者模式(Visitor)

一、什么是访问者模式 访问者模式是一种行为型设计模式,它可以用于在不修改已有对象结构的情况下,定义新的操作方式。简单地说就是在不改变数据结构的前提下,通过在数据结构中加入一个新的角色——访问者,来达到执行不同操作的目的…

防御安全(IPSec实验)

目录 需求: pc1 ping通 pc2 ,使用IPSec VPN 拓扑图: ​编辑实验配置: 注意: 直接在路由器r1和r2分别配置即可,路由器r1和r2要写一条缺省指向ISP 实验配置截图如下: 2. r1​编辑 3. r3​编辑 3.r…

【C++】—— 代理模式

目录 (一)什么是代理模式 (二)为什么使用代理模式 (三)代理模式实现步奏 (四)代码示例 (五)代理模式优缺点 (一)什么是代理模式 …

车辆路径优化问题(VRP)变体及数学模型

车辆路径优化问题变体及数学模型 一、旅行商问题(Travelling salesman problem,TSP)TSP问题数学模型TSP问题求解 二、车辆路径问题(Vehicle Routing Problem,VRP)三、带容量约束的车辆路径优化问题&#xf…

【项目】C++ 基于多设计模式下的同步异步日志系统

前言 一般而言,业务的服务都是周而复始的运行,当程序出现某些问题时,程序员要能够进行快速的修复,而修复的前提是要能够先定位问题。 因此为了能够更快的定位问题,我们可以在程序运行过程中记录一些日志,通…

MySQL8.0 通过data文件恢复数据库

情景: mysql突然访问不了,也启动不了,需要保存之前的数据库文件,在卸载重装恢复数据 步骤: 1、Mysql里的数据一般会自动保存到C:\ProgramData\MySQL\MySQL Server 8.0\Data目录下,卸载前要将其备份。这是…

数据结构之树(Topk问题, 链式二叉树)

一.topk问题 取N个数中最大(小)的前k个值,N远大于k 这道题可以用堆的方法来解决,首先取这N个数的前k个值,用它们建堆 时间复杂度O(k) 之后将剩余的N-k个数据依次与堆顶数据进行比较,如果比堆顶数据大,则将堆顶数据覆盖后向下调整 时间复杂度(N-k)*log(N) 总共的时间复杂度…

【05】消失的数字

hellohello~这里是土土数据结构学习笔记🥳🥳 💥个人主页:大耳朵土土垚的博客 💥所属专栏:C语言函数实现 感谢大家的观看与支持🌹🌹🌹 有问题可以写在评论区或者私信我哦…

缓冲区与C库函数的实现

目录 一、缓冲区 二、C库函数的实现 一、缓冲区 缓冲区本质就是一块内存,而缓冲区存在的意义本质是提高使用者(用户)的效率【把缓冲区理解成寄送包裹的菜鸟驿站】 缓冲区的刷新策略 1. 无缓冲(立即刷新) 2. 行缓冲(行刷新) 3. 全缓冲(缓冲区满了,再刷…

春风吹又生的开源项目「GitHub 热点速览」

随着上周知名 Switch 开源模拟器 Yuzu(柚子)被任天堂起诉,该项目作者就删库了,但还是要赔偿任天堂数百万美元。此事还在 GitHub 上掀起了一波 Yuzu fork 项目的小浪潮,正所谓野火烧不尽,春风吹又生。 很多读…

Express学习(四)

使用Express写接口 创建基本的服务器 创建API路由模块 编写GET接口 编写POST接口 CORS跨域资源共享 什么是CORS CORS由一系列HTTP响应头组成,这些HTTP响应头决定浏览器是否阻止前端JS代码跨域获取资源。浏览器的同源安全策略默认会阻止网页“跨域”获取资源。但如…

十五、软考-系统架构设计师笔记-面向服务架构设计理论与实践

1、SOA相关概念 面向服务的架构(SOA)的定义 SOA 是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构…

狂揽Github—start19.7k☆开源OCR—Umi-OCR

文章目录 背景Umi-OCR—源码下载Umi-OCR—可执行程序下载页面介绍截图OCR识别批量OCR识别批量文档二维码全局设置 总结: 背景 大家都知道我是一个Python办公自动化的小小程序员,经常收集一些免费开源的OCR供大家使用,目前我已经写出来多家OCR…

(done) win11 如何安装 Anaconda3 ? 如何安装 jupyter notebook

首先是这个网站 https://www.anaconda.com/download/#windows 下载并安装 anaconda3 进入 anaconda3.navigator 后,会看到如下界面 点击下面这个 Launch 按钮,可以启动 jupyter notebook 如下图,jupyter 出来了

【数据结构七】堆与PriorityQueue详解

堆 在Java中有一种数据结构基于队列,并保证操作的数据带有优先级,该数据结构应该提供了两个最基本的操作,一个是返回最高优先级对象,一个是添加新的对象。这种数据结构就是优先级队列(Priority Queue)。它的底层使用了堆这种数据结…

离散化算法,以Acwing802.区间和为例子(C++实现)

目录 1.例题2.算法实现思路3.代码 1.例题 假定有一个无限长的数轴,数轴上每个坐标上的数都是 0现在,我们首先进行 n 次操作,每次操作将某一位置 x 上的数加 c接下来,进行 m 次询问,每个询问包含两个整数 l 和 r&#…

贪心算法(算法竞赛、蓝桥杯)--奶牛晒衣服

1、B站视频链接&#xff1a;A28 贪心算法 P1843 奶牛晒衣服_哔哩哔哩_bilibili 题目链接&#xff1a;奶牛晒衣服 - 洛谷 #include <bits/stdc.h> using namespace std; priority_queue<int> q;//用大根堆维护湿度的最大值 int n,a,b; int tim,maxn;int main(){s…

sqllab第十关通关笔记

知识点&#xff1a; 时间盲注适用于回显无变化的场景重点还是不断的构造payload进行尝试&#xff1b;判断绕过条件 这里就不演示判断注入类型&#xff1b;通过测试发现和第九关一样&#xff1b;回显无变化的&#xff1b; 构造第九关的payload:id1 and if(1,sleep(2),1) -- 发…