linux运维一天一个shell命令之vmstat详解
概念
vmstat 是 Linux 系统中一个非常有用的工具,主要用于报告系统的虚拟内存、进程、CPU 活动和 IO 性能等信息。以下是对 vmstat 工具的详细解释:
基本语法
vmstat [options] [delay [count]]delay:更新的时间间隔(以秒为单位)。
count:更新的次数。
- 例如,要每秒报告一次系统状态并报告 5 次,可以使用以下命令:
vmstat 1 5
输出字段
vmstat 的输出包含多个字段,每个字段代表不同的系统指标。以下是这些字段的详细解释:
Procs
r:运行队列中的进程数(运行或等待 CPU)
b:在不可中断睡眠中的进程数(一般等待 IO)
Memory
swpd:已交换到磁盘的内存总量(单位是 KB)
free:空闲内存总量(单位是 KB)
buff:用于缓冲的内存总量(单位是 KB)
cache:用于缓存的内存总量(单位是 KB)
Swap
si:从磁盘交换进内存的交换页数(单位是 KB/s)。
so:从内存交换到磁盘的交换页数(单位是 KB/s)。
IO
bi:从块设备(如磁盘)读取的数据块数(单位是块/s)。
bo:写到块设备(如磁盘)上的数据块数(单位是块/s)。
System
in:每秒中断数,包括时钟中断。
cs:每秒上下文切换数。
CPU
us:用户态 CPU 时间百分比。
sy:系统态 CPU 时间百分比。
id:空闲 CPU 时间百分比。
wa:等待 IO CPU 时间百分比。
st:被虚拟机窃取的 CPU 时间百分比。
选项
参数
vmstat 提供了一些可选参数,用于调整输出格式或显示特定的信息。常用的选项包括:
-a:显示活跃和非活跃内存。
-d:显示磁盘状态。
-s:显示内存相关的统计信息。
-t:显示时间戳。
-S:设置输出统计信息的单位(K = 1000,M = 1000000)。
示例
1. 每秒更新一次,持续 5 次
vmstat 1 52. 显示磁盘统计信息
vmstat -d3. 显示内存统计信息
vmstat -s4. 显示带时间戳的统计信息
vmstat -t
解析示例输出
以下是 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 79324 1136 104664 0 0 1 1 1 2 0 0 99 0 0
- procs:
r = 1:有一个进程正在运行或等待 CPU。
b = 0:没有进程在等待 IO。
- memory:
swpd = 0:没有交换内存。
free = 79324:有 79324 KB 的空闲内存。
buff = 1136:有 1136 KB 的内存用于缓冲。
cache = 104664:有 104664 KB 的内存用于缓存。
- swap:
si = 0:没有从磁盘交换进内存的数据。
so = 0:没有从内存交换到磁盘的数据。
- io:
bi = 1:每秒从块设备读取 1 个数据块。
bo = 1:每秒写到块设备 1 个数据块。
- system:
in = 1:每秒 1 个中断。
cs = 2:每秒 2 个上下文切换。
cpu:
us = 0:用户态 CPU 时间占 0%。
sy = 0:系统态 CPU 时间占 0%。
id = 99:空闲 CPU 时间占 99%。
wa = 0:等待 IO 的 CPU 时间占 0%。
st = 0:被虚拟机窃取的 CPU 时间占 0%。
如何使用vmstat排查系统问题
分析步骤
使用 vmstat 工具可以帮助你深入了解系统的性能问题,包括 CPU 使用率、内存利用率、IO 性能和进程活动等
- 高 CPU 使用率
如果系统的 CPU 使用率持续高于 80%,可能会导致性能问题。诊断步骤:
运行 vmstat,查看 us(用户态 CPU 使用率)和 sy(系统态 CPU 使用率)。
vmstat 1 5
- 如果 us 高,表示大部分 CPU 时间花在用户态应用程序上,可能需要优化应用程序的性能。
- 如果 sy 高,表示系统调用或内核活动占用了较多 CPU 资源,可能需要查看内核活动或驱动程序的性能。
- 如果 wa(IO 等待时间)高,表示 CPU 等待 IO 操作完成,可能是磁盘或网络 IO 成为瓶颈。
- 内存不足
内存不足会导致系统性能下降,甚至出现交换(swap)操作。诊断步骤:
运行 vmstat,查看 free(空闲内存)、buff(缓冲区内存)和 cache(缓存内存)。
vmstat 1 5
- 如果 free 内存比较低,但 buff 和 cache 较高,表示内存大部分用于缓冲和缓存,这是正常的。
- 查看 si(swap in)和 so(swap out)。如果这两个值较高,表示系统正在频繁使用交换空间,可能需要增加物理内存或优化应用程序的内存使用。
- IO 性能问题
高磁盘 IO 使用率会导致系统性能下降。诊断步骤:
运行 vmstat,查看 bi(块设备读取)和 bo(块设备写入)。
vmstat 1 5
- 如果 bi 和 bo 值较高,表示磁盘 IO 活动频繁,可能需要优化磁盘使用或考虑使用更快的存储设备。
- 高 wa(等待 IO CPU 时间)也表示系统可能存在 IO 瓶颈。
- 进程问题
系统中可能有过多的进程在运行,导致性能问题。诊断步骤:
运行 vmstat,查看 r(运行队列中的进程数)和 b(在不可中断睡眠中的进程数)。
vmstat 1 5
- 如果 r 值持续高于 CPU 核心数,表示系统中有许多进程在等待 CPU,可能需要优化应用程序或增加 CPU 核心数。
- 如果 b 值较高,表示有很多进程在等待 IO 操作完成,可能需要优化 IO 性能。
示例分析
假设 vmstat 输出如下:
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r b swpd free buff cache si so bi bo in cs us sy id wa st2 1 0 10000 2000 30000 0 0 50 50 100 200 60 30 5 5 0
分析
- CPU 使用率:
- us = 60:用户态 CPU 使用率较高,表示应用程序占用了大部分 CPU 资源。
- sy = 30:系统态 CPU 使用率也较高,可能是系统调用或内核活动频繁。
- id = 5:空闲 CPU 时间较少,CPU 处于高负载状态。
- wa = 5:有一些 IO 等待时间,但不是主要瓶颈。
- 内存:
- free = 10000:空闲内存较少。
- buff = 2000,cache = 30000:大部分内存用于缓冲和缓存,这是正常现象。
- swpd = 0:没有使用交换空间。
- IO:
- bi = 50,bo = 50:磁盘 IO 频繁,但 wa 值较低,表示 IO 不是主要瓶颈。
- 进程:
- r = 2:有两个进程在运行队列中,等待 CPU。
- b = 1:一个进程在等待 IO 操作。
结论
- CPU 负载较高,主要是因为用户态和系统态 CPU 使用率都很高。
- 内存基本充足,没有使用交换空间。
- IO 活动频繁,但不是主要瓶颈。
- 进程队列中有进程在等待 CPU。
解决措施
- 优化应用程序以减少 CPU 使用。
- 检查和优化系统调用或内核活动。
- 考虑增加 CPU 核心数,以处理更多的并发进程。
相关文章:
linux运维一天一个shell命令之vmstat详解
概念 vmstat 是 Linux 系统中一个非常有用的工具,主要用于报告系统的虚拟内存、进程、CPU 活动和 IO 性能等信息。以下是对 vmstat 工具的详细解释: 基本语法 vmstat [options] [delay [count]]delay:更新的时间间隔(以秒为单…...

前端开发调试工具推荐分类整理
具体前往:前端调试工具分类整理汇总...

http协议与nginx
动态页面与静态页面的差别: (1)URL不同 静态⻚⾯链接⾥没有“?” 动态⻚⾯链接⾥包含“?” (2)后缀不同 (开发语⾔不同) 静态⻚⾯⼀般以 .html .htm .xml 为后缀 动态⻚⾯⼀般以 .php .jsp .py等为后…...

一款国外开发的高质量WordPress下载站模板主题
5play下载站是由国外站长开发的一款WordPress主题,主题简约大方,为v1.8版本, 该主题模板中包含了上千个应用,登录后台以后只需要简单的三个步骤就可以轻松发布apk文章, 我们只需要在WordPress后台中导入该主题就可以…...
Laravel为什么会成为最优雅的PHP框架
Laravel之所以成为最优雅的PHP框架之一,是因为它提供了一系列的优点,包括简洁的语法、强大的功能集、高度模块化和可扩展性、优雅的ORM、内置认证系统、丰富的社区支持和测试友好等。这些优点使得Laravel在PHP框架中脱颖而出,成为了很多开发者的首选框架。 官网:https://l…...
孤儿进程的例子
先让父进程死亡,子进程的父进程会被操作系统管理 先使用gcc编译代码, 执行代码后用 ps -p <进程号> -f 查看进程 #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <unistd.h>int main() {pid_t pid;// 创建…...
CSS前端面试题——怎么用CSS实现一个宽高自适应的正方形?
方法一:使用 padding 方案 这种方法通过设置元素的 padding 属性来实现宽高比例相等的正方形。假设我们希望正方形的边长为相对于父容器的百分比值,比如50% .square {width: 50%; /* 可以是任意宽度,这里假设为父元素宽度的50% */padding-t…...

谷粒商城实战笔记-56~57-商品服务-API-三级分类-修改-拖拽功能完成
文章目录 一,56-商品服务-API-三级分类-修改-拖拽功能完成二,57-商品服务-API-三级分类-修改-批量拖拽效果1,增加按钮2,多次拖拽一次保存完整代码 在构建商品服务API中的三级分类修改功能时,拖拽排序是一个直观且高效的…...

Shader入门精要总结(二)矩阵
1. 矩阵乘法 一个rn的矩阵A和一个nc的矩阵B相乘,它们的结果AB将会是一个rc大小的矩阵,不满足此规则不能相乘 矩阵乘法满足一些性质 矩阵乘法不满足交换律 即AB≠BA矩阵乘法满足结合律 (AB)CA(BC) 2. 特殊矩阵 方块矩阵 指行和列数目相等的矩阵&#…...

基于CentOS Stream 9平台安装MySQL Community Server 9.0.1 Innovation
1. 安装之前 1.1 查看系统版本 cat /etc/redhat-releaseCentOS Stream release 9 1.2 查看cpu架构 lscpu架构: x86_64 CPU 运行模式: 32-bit, 64-bit 2. 官网下载 https://dev.mysql.com/downloads/mysql/ 要多看看 官方9.0文档:https://d…...

正则采集器之五——商品匹配规则
需求设计 实现分析 系统通过访问URL得到html代码,通过正则表达式匹配html,通过反向引用来得到商品的标题、图片、价格、原价、id,这部分逻辑在java中实现。 匹配商品的正则做成可视化编辑,因为不同网站的结构不同,同…...

一键切换阿里yum源(包括其他系统repo镜像查找方法)
一键切换阿里yum源 示例命令其他系统repo镜像GitHub文档 示例命令 # 备份旧源 mv CentOS-Base.repo CentOS-Base.repo.bak # 添加新源(阿里镜像源) wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo其他系统repo镜像 这里的示例是用…...

Fiddler学习笔记
目录 前言 简介 原理 界面 前言 测试可以使用fiddler工具,通过抓包的方式修改前端参数和模拟后端返回,快速定位缺陷。 简介 Fiddler是HTTP协议调试代理工具,可以记录并检查所有客户端和服务器之间的HTTP和HTTPS请求,允许监视…...

【Vue3】watch 监视多种类型数据
【Vue3】watch 监视多种类型数据 背景简介开发环境开发步骤及源码 背景 随着年龄的增长,很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来,技术出身的人总是很难放下一些执念,遂将这些知识整理成文,以纪念曾经努力学习奋斗…...
【C++入门】虚函数与多态
文章目录 前言虚函数是什么?如何使用虚函数? 纯虚函数是什么?虚函数与普通函数的区别虚表虚表是什么?含有虚表的类内存结构图如何找到虚表的地址?示例代码代码解释 多态是什么?如何使用多态?为什…...

wpf中轮询显示图片
本文的需求是,在一个文件夹中,放一堆图片的集合,然后在wpf程序中,按照定时的方式,循序显示照片。 全部代码 1.声明一个PictureInfo类 namespace WpfApp1 {public class PictureInfo{public string? FileName { get; …...

CSA笔记9-磁盘管理(2)
分区挂载 挂载:将该文件系统中的内容与指定的目录关联起来,使得你可以通过该目录来访问文件系统中的文件和目录。 mount 命令用来挂载文件系统 #挂载/dev/sda1和/dev/sda2 [rootlocalhost ~]# mkdir test{1..2} [rootlocalhost ~]# ll test1 te…...
Python入门第三课
# 入门第三课 # 关键字 if and or in not in ! car g print(car g) print(car dd) if car ! hh:print("wlcome to here ") age 33 print(age 33) print(age 44) age1 44 if age >0 and age1 > 0:print("nihao") if age >0 or age1 > …...

java计算器,输入公式和对应变量的值
目标:最近想写个东西,本质就是一个计算器,我们可以输入公式(例如:ab),然后把公式的值(a:10,b:20)也输入进去。最后得到结果。核心:这个想法核心部分就是给一个…...

加密货币赋能跨境电商:PayPal供应链金融服务如何引领行业新趋势
跨境电商行业近年来呈现出爆发式增长,随着全球化贸易壁垒的降低和数字经济的快速发展,越来越多的商家和消费者跨越国界进行交易。根据eMarketer的数据,全球跨境电商交易额在2023年已超过4万亿美元,并预计在未来几年内仍将保持两位…...

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...

【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...

面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用
文章目录 一、背景知识:什么是 B-Tree 和 BTree? B-Tree(平衡多路查找树) BTree(B-Tree 的变种) 二、结构对比:一张图看懂 三、为什么 MySQL InnoDB 选择 BTree? 1. 范围查询更快 2…...

毫米波雷达基础理论(3D+4D)
3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文: 一文入门汽车毫米波雷达基本原理 :https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...