Linux 基础之 vmstat 命令详解

文章目录

    • 一、前言
    • 二、使用说明
      • 2.1 vmstat [delay/count/d/D/t/w]
      • 2.2.vm模式的字段

一、前言

vmstat(VirtualMeomoryStatistics,虚拟内存统计)是一个不错的 Linux/Unix 监控工具,在性能测试中除了top外也是比较常用的工具之一,它可以监控操作系统的 CPU 使用率,内存使用情况,虚拟内存交换情况,以及IO读写情况。与 top 相比各有千秋吧。

二、使用说明

也是根据 vmstat 自带的说明进行整理说明,那就是 ”man vmstat“ 我们会看到下面图上的信息
在这里插入图片描述
为了方便理解与查看,在此整理成了一个导图结构。
在这里插入图片描述
我们一层一层来解读吧。在解读之前先看一下,下面的图,更容易理解每个选项的意思及字段的含义
在这里插入图片描述

2.1 vmstat [delay/count/d/D/t/w]

选项:

  • delay: 刷新时间间隔,单位是秒。如果没有指定,只显示一条结果。例如实例图上的2,即时间间隔2秒刷新一次。

  • count: 刷新次数。例如图上的3,即输入刷新打印3次结果,如果没有指定刷新次数,但指定了刷新时间间隔,这时刷新次数就是不限制一直刷新直到手动停止。

  • -d:磁盘
    在这里插入图片描述

  • reads【 or writes】

    • total:成功完成的总读取数
      • merged:分组读取【或写入】(产生一个 I/O)
      • sectors:扇区读取【或写入】成功
      • ms:阅读【或写入】花费的毫秒数
  • IO

    • cur:正在进行的 I/O
    • sec:I/O 花费的秒数
  • -D:–磁盘总和
    在这里插入图片描述

  • -t :–时间戳,将时间戳附加到每一行
    在这里插入图片描述

  • -w :–宽

    • 宽输出模式,输出宽度大于80每行字符。
    • 使用这个输出的结果比较列效果好看一些,要不数据多的时候,眼睛都要看花了,很容易看错。
    • 两个可以对比一下,没有使用前的输出效果。
  • -S: 显示单位。默认值是K(1024bytes),参数有k,K,m,M分别代表1000,1024,1000000,1048576字节(byte)

  • -V:版本信息

2.2.vm模式的字段

  • procs(过程):

    • r: 可运行进程数(正在运行或等待运行时), 也就是说有真正分配给cpu的进程,如果r值大于cpu核数,出现cpu负载,就会有可能出现cpu瓶颈。
    • b:阻塞等待I/O完成的进程数,当b大于0时,出现阻塞,一旦出现阻塞的话tps就不会很大,这个可以使用工具sar来查看tps实时值。sar具体使用说明参看”linux基础知识-sar详解“。
  • memory(内存,默认单位: kb):

    • swpd: 使用的交换内存量,当swpd值大于0时,说明服务器的物理内存不足,需要查看程序是否存在内存泄漏,如果确定不是的话需要增加服务器的物理内存。
    • free: 空闲内存量
    • buff: 用作缓冲区的内存量
    • cache: 活动内存的数量
  • swap(交换,单位:kb/秒):

    • si(kb/秒): 从磁盘交换到内存的交换页数量(kb/秒),如果si值大于0,则表示物理内存不足或是内存泄漏。
    • so(kb/秒): 从内存交换到磁盘的交换页数据(kb/秒),与si值一样,如果so值大于0,则表示物理内存不足或是内存泄漏。
  • io(输入输出,单位:块/秒):

    • bi(块/秒): 从块设备接收到的Kib byte(KiB/s)
    • bo(块/秒): 发送到块设备的Kib byte(KiB/s)
  • system(系统):

    • in: 每秒的中断次数,包括时钟
    • cs: 每秒上下文切换的次数,如调用系统函数,或是线程切换等都会引起上下文切换。所以这个值越小越好,如果过大,则表示cpu大部分时间都在做上下文切换调度上,从而就没有多少时间去处理其他事件,浪费cpu资源,所以当cs过大时,需要进行注意,尽量要考虑到调低线程或进程的数目。

注解:

上下文切换:通过CPU时间轮询的方法,Linux能够支持多任务同时运行。对于普通的CPU,内核会调试和执行这些进程,每个进程都会被分配CPU时间片并运行。当一个进程用完时间片或者被更高优先级进程抢占时间块后,它会被转到CPU的等待运行队列中,同时让其他进程在CPU上运行。这个进程切换的过程被称为上下文切换。过多的上下文切换会造成系统的很大的开销。

  • cpu(中央处理器,单位:%):
    • us(%): 运行非内核代码所使用的cpu(用户时间,包括nice time)
    • sy(%): 运行内核代码所使用的cpu(系统时间),sy值大时需要确认IO的频繁操作是否属于正常现象。
    • id(%): 空闲使用的cpu
    • wa(%): 等待IO所使用的cpu,如果wa值过高,则说明io等待比较严重,这可能是由于磁盘大量随机访问造成的,可有可能是磁盘的带宽出现了瓶颈。需要使用sar工具进一步确认。
    • st(%): 从虚拟机窃取所使用的cpu
    • gu: 运行KVM guest代码所使用的cpu(guest time ,包括guest nice)

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

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

相关文章

算法 -【螺旋矩阵】

螺旋矩阵 题目示例1示例2 分析代码 题目 一个 m 行 n 列的矩阵 matrix ,请按照顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例1 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 示例2 输入:matrix…

JWT基于Cookie的会话保持,并解决CSRF问题的方案

使用JWT进行浏览器接口请求,在使用Cookie进行会话保持传递Token时,可能会存在 CSRF 漏洞问题,同时也要避免在产生XSS漏洞时泄漏Token问题,如下图在尽可能避免CSRF和保护Token方面设计了方案。 要点解释如下: 将JWT存入…

DAY12_VUE基本用法详细版

目录 0 HBuilderX酷黑主题修改注释颜色1 VUE1.1 VUE介绍1.2 Vue优点1.3 VUE入门案例1.3.1 导入JS文件1.3.2 VUE入门案例 1.4 VUE基本用法1.4.1 v-cloak属性1.4.2 v-text指令1.4.3 v-html指令1.4.4 v-pre指令1.4.5 v-once指令1.4.6 v-model指令1.4.7 MVVM思想 1.5 事件绑定1.5.1…

Centos6安装PyTorch要求的更高版本gcc

文章目录 CentOS自带版本安装gcc 4的版本1. 获取devtoolset-8的yum源2. 安装gcc3. 版本检查和切换版本 常见问题1. 找不到包audit*.rpm包2. 找不到libcgroup-0.40.rc1-27.el6_10.x86_64.rpm 的包4. cc: fatal error: Killed signal terminated program cc1plus5. pybind11/pybi…

如何使用Fastapi上传文件?先从请求体数据讲起

文章目录 1、请求体数据2、form表单数据3、小文件上传1.单文件上传2.多文件上传 4、大文件上传1.单文件上传2.多文件上传 1、请求体数据 前面我们讲到,get请求中,我们将请求数据放在url中,其实是非常不安全的,我们更愿意将请求数…

【C语言】linux内核ipoib模块 - ipoib_ib_handle_tx_wc

一、中文注释 这个函数是用来处理 Infiniband 设备在传输完成时的回调。该回调负责释放发送队列中的缓冲区并更新网络设备统计信息。 static void ipoib_ib_handle_tx_wc(struct net_device *dev, struct ib_wc *wc) {// 通过net_device结构体获取私有数据结构struct ipoib_d…

网络安全之内容安全

内容安全 攻击可能只是一个点,防御需要全方面进行 IAE引擎 DFI和DPI技术--- 深度检测技术 DPI --- 深度包检测技术--- 主要针对完整的数据包(数据包分片,分段需要重组),之后对 数据包的内容进行识别。(应用…

S32 Design Studio PE工具配置TMR

配置步骤 配置内容 生成的配置结构体如下,在Generated_Code路径下的lpTmr.c文件和lpTmr.h文件。 /*! lpTmr1 configuration structure */ const lptmr_config_t lpTmr1_config0 {.workMode LPTMR_WORKMODE_PULSECOUNTER,.dmaRequest false,.interruptEnable tr…

数据抽取平台pydatax介绍--实现和项目使用

数据抽取平台pydatax实现过程中,有2个关键点: 1、是否能在python3中调用执行datax任务,自己测试了一下可以,代码如下: 这个str1就是配置的shell文件 try:result os.popen(str1).read() except Exception as …

git忽略某些文件(夹)更改方法

概述 在项目中,常有需要忽略的文件、文件夹提交到代码仓库中,在此做个笔录。 一、在项目根目录内新建文本文件,并重命名为.gitignore,该文件语法如下 # 以#开始的行,被视为注释. # 忽略掉所有文件名是 a.txt的文件. a.txt # 忽略所有生成的 java文件, *.java # a.j…

数据结构:栈和队列与栈实现队列(C语言版)

目录 前言 1.栈 1.1 栈的概念及结构 1.2 栈的底层数据结构选择 1.2 数据结构设计代码(栈的实现) 1.3 接口函数实现代码 (1)初始化栈 (2)销毁栈 (3)压栈 (4&…

【MQ05】异常消息处理

异常消息处理 上节课我们已经学习到了消息的持久化和确认相关的内容。但是,光有这些还不行,如果我们的消费者出现问题了,无法确认,或者直接报错产生异常了,这些消息要怎么处理呢?直接丢弃?这就是…

ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the ‘ssl‘报错解决

安装labelme出错了 根据爆栈的提示信息,我在cmd运行以下命令之后一切正常了,解决了问题! pip install urllib31.26.6参考网址:ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1, currently the ‘ssl’ module is compile…

常见的socket函数封装和多进程和多线程实现服务器并发

常见的socket函数封装和多进程和多线程实现服务器并发 1.常见的socket函数封装2.多进程和多线程实现服务器的并发2.1多进程服务器2.2多线程服务器2.3运行效果 1.常见的socket函数封装 accept函数或者read函数是阻塞函数,会被信号打断,我们不能让它停止&a…

docker容器技术(3)

Docker技术编排 概述: docker建议我们每一个容器中只运行一个服务,因为docker容器本身占用资源极少,所以最好是将每个服务单独的分割开来但是这样我们又面临了一个问题? 如果我需要同时部署好多个服务,难道要每个服务单独写Dockerfile然后在构建镜像,…

【XR806开发板试用】socket客户端与虚拟机服务器通信交互测试以及终端交互

XR806 客户端准备工作。 1、连接wifi 2、创建socket连接服务器。 3、创建终端接收数据线程。 wifi_connect.c #include <stdio.h> #include <string.h> #include "wifi_device.h" #include "wifi_hotspot.h" #include "kernel/os/os.h…

桥接模式(Bridge Pattern) C++

上一节&#xff1a;适配器模式&#xff08;Adapter Pattern&#xff09; C 文章目录 0.理论1.组件2.使用场景 1.实践 0.理论 桥接模式&#xff08;Bridge Pattern&#xff09;是一种结构型设计模式&#xff0c;它的核心思想是将抽象部分与其实现部分分离&#xff0c;使它们可…

区块链智能合约开发

一.区块链的回顾 1.区块链 区块链实质上是一个去中心化、分布式的可进行交易的数据库或账本 特征: 去中心化&#xff1a;简单来说&#xff0c;在网络上一个或多个服务器瘫痪的情况下&#xff0c;应用或服务仍然能够持续地运行&#xff0c;这就是去中心化。服务和应用部署在…

死区过滤器Deadband和DeadZone区别(应用介绍)

死区过滤器的算法和详细介绍专栏也有介绍,这里我们主要对这两个模块的区别和应用场景进行详细介绍 1、死区过滤器 https://rxxw-control.blog.csdn.net/article/details/128521007https://rxxw-control.blog.csdn.net/article/details/128521007 1、Deadband和DeadZone区别…

kafka学习笔记三

目录 第二篇 外部系统集成 第三篇 生产调优手册 第1章 kafka硬件配置选择 第2章 生产者调优 2.1 生产者核心参数配置 2.2 生产者如何提高吞吐量 2.3 数据可靠性 2.4 数据去重 2.5 数据有序 2.6 数据乱序 第3章 Kafka Broker调优 3.1 Broker核心参数配置 3.2 其他 …