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)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

同局域网共享虚拟机(VMware)

一、前言 首先我们先来了解下 VMware 的三种网络模式桥接模式、NAT模式、仅主机模式,网络类型介绍详情可以参考下我之前的文档 Linux系统虚拟机安装(上)第三章 - 第9步指定网络类型。了解三种网络模式的原理之后,再来剖析下需求&…

Python爬虫——Urllib库-上

这几天都在为了蓝桥杯做准备,一直在刷算法题,确实刷算法题的过程是及其的枯燥且枯燥的。于是我还是决定给自己找点成就感出来,那么Python的爬虫就这样开始学习了。 注:文章源于观看尚硅谷爬虫视频后笔记 目录 Urllib库 基本使…

自定义View中的ListView和ScrollView嵌套的问题

当我们在使用到ScrollView和ListView的时候可能会出现显示不全的问题。那我们可以进行以下分析 ScrollView在测量子布局的时候会用UNSPECIFIED。通过源码观察, 在ScrollView的onMeasure方法中 Overrideprotected void onMeasure(int widthMeasureSpec, int heightMe…

MySQL进阶:大厂高频面试——各类SQL语句性能调优经验

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:MySQL进阶:强推,冲大厂必精通!MySQL索引底层(BTree)、性能分析、使用…

HTTP笔记(五)

个人学习笔记(整理不易,有帮助点个赞) 笔记目录:学习笔记目录_pytest和unittest、airtest_weixin_42717928的博客-CSDN博客 目录 一:HTTP报文首部 (1)HTTP请求报文 (2&#xff09…

Kaggle 竞赛入门

打比赛不用写算法源码,应用的时候不用自己写。学习的时候可以自己写。 Kaggle 竞赛入门 认识 Kaggle 平台Kaggle竞赛知识前提结构化数据前提图像数据文本数据 Kaggle竞赛套路一个赛题的完整流程 认识 Kaggle 平台 Kaggle 官网 主页,比赛(数据…

复现nerfstudio并训练自己制作的数据集

网站:安装 - nerfstudio GitHub - nerfstudio-project/nerfstudio:NeRF 的协作友好工作室 安装之前要确保电脑上已经有CUDA11.8或以上版本(更高版本的可以安装11.8的toolkit) 创建环境 conda create --name nerfstudio -y pyt…

浅谈 Linux 网络编程 - Server 端模型、sockaddr、sockaddr_in 结构体

文章目录 前言前置知识Server 端核心模型 【重点】相关函数 【重点】socket 函数bind 函数listen 函数accept 函数close 函数 sockaddr 数据结构 【重点】 前言 本文主要是对 Linux 网络编程中,Server 端的模型、相关函数 以及 sockaddr、sockaddr_in 结构体做介绍…

黑马程序员——接口测试——day05——Request库、Cookie、Session、UnitTest框架

目录: Requests库 Requests库安装和简介设置http请求语法应用案例 案例1案例2案例3案例4Cookie Cookie简介CookieSession认证方式案例5-看演示,此代码不需实现Session Session简介Session自动管理Cookie案例6面试题Cookie和Session区别获取指定响应数据…

300分钟吃透分布式缓存(拉钩教育总结)

开篇寄语 开篇寄语:缓存,你真的用对了吗? 你好,我是你的缓存老师陈波,可能大家对我的网名 fishermen 会更熟悉。 我是资深老码农一枚,经历了新浪微博从起步到当前月活数亿用户的大型互联网系统的技术演进…

Linux|centos7|yum和编译安装ImageMagick记录

一, yum安装imagemagick imagemagick这个软件是图像文件的处理神器,可以文字转图像以及图像的剪辑等等工作,也是配合人工智能工程的不可或缺的工具,具体的用处和特点就不在这里废话了,有兴趣的百度就行了 本次是在…

SpringBoot底层原理

SpringBoot底层原理 一 配置优先级 1.配置方式 Springboot中支持三种配置方式,分别为: application.propertiesapplication.ymlapplication.yaml 2.配置优先级 当存在多份配置文件时,配置文件会按照它们的优先级生效。 优先级从高到底…

蓝桥杯-灌溉

参考了大佬的解题思路&#xff0c;先遍历一次花园&#xff0c;找到所有的水源坐标&#xff0c;把它们存入 “水源坐标清单” 数组内&#xff0c;再读取数组里的水源坐标进行扩散。 #include <iostream> using namespace std; int main() {int n,m,t,r,c,k,ans0,list_i0;…

(每日持续更新)jdk api之OutputStreamWriter基础、应用、实战

博主18年的互联网软件开发经验&#xff0c;从一名程序员小白逐步成为了一名架构师&#xff0c;我想通过平台将经验分享给大家&#xff0c;因此博主每天会在各个大牛网站点赞量超高的博客等寻找该技术栈的资料结合自己的经验&#xff0c;晚上进行用心精简、整理、总结、定稿&…

c++ for 循环语句

循环语句 在C中&#xff0c;有几种循环语句可用于重复执行一段代码&#xff0c;直到满足指定条件为止&#xff0c;主要有 for 循环、while 循环、do-while 循环三种循环语句。三者区别&#xff1a; 循环类型特点for 循环1. 适用于已知循环次数的情况&#xff0c;循环次数事先…

推荐系统经典模型YouTubeDNN代码

文章目录 前言数据预处理部分模型训练预测部分总结与问答 前言 上一篇讲到过YouTubeDNN论文部分内容&#xff0c;但是没有代码部分。最近网上教学视频里看到一段关于YouTubeDNN召回算法的代码&#xff0c;现在我分享一下给大家参考看一下&#xff0c;并附上一些我对代码的理解…

一张图读懂人工智能

一、生成人工智能的概念和应用&#xff0c;以及如何使用大型语言模型进行聊天和创造原创内容。这项技术将会对人类和企业产生深远影响。 计算机获得学习、思考和交流的能力&#xff0c;被称为生成人工智能。生成人工智能可以立即获得人类所有知识的总和&#xff0c;并回答任何…

综合实战(volume and Compose)

"让我&#xff0c;重获新生~" MySQL 灾难恢复 熟练掌握挂载卷的使用&#xff0c;将Mysql的业务数据存储在 外部。 实战思想: 使用 MySQL 5.7 的镜像创建容器并创建一个普通数据卷 "mysql-data"用来保存容器中产生的数据。我们需要容器连接到Mysql服务&a…

TeXiFy IDEA 编译后文献引用为 “[?]“

文章目录 1. 问题描述2. 原因分析3. 解决方案3.1 添加自动化脚本3.2 附录——配置一览表 1. 问题描述 在 IDEA 中使用 TeXiFy IDEA 编译后的文章文献引用是 [?] 2. 原因分析 根据网上教程所生成的目录结构如下&#xff1a; 报错日志&#xff1a; 根据 /out 目录结构&#x…

【vmware安装群晖】

vmware安装群晖 vmware安装群辉&#xff1a; vmware版本&#xff1a;17pro 下载链接&#xff0c; https://customerconnect.vmware.com/cn/downloads/details?downloadGroupWKST-1751-WIN&productId1376&rPId116859 激活码可自行搜索 教程&#xff1a; https://b…