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活动也很低。这是一个相当健康的系统状态。

  • 25
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Linux系统运维是一个广泛而庞大的领域,涉及到各种技术和工具。从入门到企业实战的过程需要掌握一系列的知识和技能。 首先,入门阶段需要了解Linux的基本概念和特点,学习常用的命令和操作技巧。可以通过阅读相关书籍或者在线教程来学习,也可以通过参加培训课程来系统性学习。 在掌握了基础知识之后,需要进一步学习Linux系统的安装、配置和管理。这包括对硬件环境的了解,系统安装过程的实践,以及对各种配置文件和系统组件的掌握。 接下来,需要学习Linux系统的网络配置和服务管理。这包括理解网络的概念和协议,掌握网络配置的方式和方法,以及学习如何安装和管理各种网络服务,如Web服务器、邮件服务器等。 同时,必须熟悉Linux系统的安全管理和备份恢复。这包括理解系统安全的基本原理和方法,学会进行用户权限管理、防火墙配置和漏洞扫描等操作;同时,还需要构建合理的备份策略,定期备份系统和数据,并掌握恢复操作。 最后,进入企业实战阶段,需要学习和掌握大规模Linux系统的集中管理和自动化运维技术。这包括理解企业级Linux系统的架构和配置管理工具,学习如何使用脚本和自动化工具来管理和维护系统。 总之,Linux系统运维是一个学习和实践相结合的过程,需要不断地积累和提升知识和技能。通过不断的学习和实践,不仅可以应对各种常见的运维问题,还可以提高系统的稳定性和可靠性,为企业的业务发展提供有力的支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值