vmstat命令:系统性能监控

news2024/12/27 11:42:23

一、命令简介

vmstat​ 是一种在类 Unix 系统上常用的性能监控工具,它可以报告虚拟内存统计信息,包括进程、内存、分页、块 IO、陷阱(中断)和 CPU 活动等。

二、命令参数

2.1 命令格式

vmstat [选项]  [ 延迟 [次数] ]

2.2 选项

  -a, --active           活跃/非活跃内存
  -f, --forks            自系统启动以来的进程派生数
  -m, --slabs            slab信息
  -n, --one-header       不重新显示标题
  -s, --stats            摘要
  -d, --disk             磁盘统计
  -D, --disk-sum         汇总磁盘统计
  -p, --partition <dev>  特定分区的统计
  -S, --unit <char>      定义显示单位
  -w, --wide             宽输出
  -t, --timestamp        显示时间戳

  -h, --help     显示此帮助然后退出
  -V, --version  显示程序版本然后退出

2.3 参数

  • 延迟​: 每次报告之间的延迟时间(以秒为单位)。
  • 次数​: 要报告的次数。

三、命令示例

3.1 显示摘要

小写 s​ 选项显示摘要,默认内存信息以 Byte 为显示单位。使用大写 S​ 选项指定单位为 MB(M)

vmstat -sS MB

输出

#内存信息  
       1963 M total memory
          228 M used memory
          785 M active memory
          605 M inactive memory
          310 M free memory
          104 M buffer memory
         1320 M swap cache
         3910 M total swap
           91 M used swap
         3819 M free swap
#其他信息
       220505 non-nice user cpu ticks
         5204 nice user cpu ticks
        83658 system cpu ticks
     95667133 idle cpu ticks
        24127 IO-wait cpu ticks
            0 IRQ cpu ticks
         1697 softirq cpu ticks
         3186 stolen cpu ticks
     16046170 pages paged in
     33059244 pages paged out
        50165 pages swapped in
       171026 pages swapped out
     71506693 interrupts
    183449791 CPU context switches
   1727201677 boot time
        40101 forks

3.2 输出整体信息

使用 vmstat ​命令输出:虚拟内存统计信息,包括进程、内存、分页、块 IO、陷阱(中断)和 CPU 活动等信息。

使用大写 -S​ 选项调整内存显示单位,更利于阅读。注意,这个选项只能改变内存信息的单位,对磁盘等信息等单位无效。

vmstat -S MB

英文环境:正常输出
Clip_2024-09-30_15-56-03

注意,中文环境:不对齐

Clip_2024-09-30_15-55-00​​​​​

3.3 动态输出

设置输出频率

格式:vimstat 更新频率(秒钟)

vmstat 1

输出:每秒输出一次。ctrl + c​ 停止。

recording

设置输出次数

格式:vmstat 更新频率 更新次数

#每秒更新一次,共更新10次
vmstat 1 10

完成 10 次输出后会自动退出 vmstat 命令。

3.4 宽输出格式

使用小写 -w ​参数设置 宽模式


vmstat -w 1

通过比较,使用-w 选项的输出更宽。

Clip_2024-09-30_16-14-33

​​

3.5 磁盘信息

1.显示磁盘 I/O 统计信息,每秒更新一次:

vmstat -d

-S 选项无法改变磁盘信息的显示单位

[root@sc ~]# vmstat -d -S M
disk- ------------reads------------ ------------writes----------- -----IO------
       total merged sectors      ms  total merged sectors      ms    cur    sec
sda     8645      4  558209    3373 136030  24041 4519632  321532      0    205
sr0       54      0    4192      13      0      0       0       0      0      0
dm-0    7775      0  441727    2865 159239      0 4515404  398469      0    205
dm-1      98      0    4440       3      0      0       0       0      0      0
[root@sc ~]# vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
       total merged sectors      ms  total merged sectors      ms    cur    sec
sda     8645      4  558209    3373 136030  24041 4519632  321532      0    205
sr0       54      0    4192      13      0      0       0       0      0      0
dm-0    7775      0  441727    2865 159239      0 4515404  398469      0    205
dm-1      98      0    4440       3      0      0       0       0      0      0

2.磁盘信息汇总

vmstat -D

输出,同样 -S 选项对它无用。

            4 disks 
            2 partitions 
        16576 total reads
            4 merged reads
      1008664 read sectors
         6321 milli reading
       295321 writes
        24043 merged writes
      9035604 written sectors
       720119 milli writing
            0 inprogress IO
          410 milli spent IO

3.6 显示时间戳

使用-t 选项,额外显示时间戳。

vmstat -t -S M
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- -----timestamp-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st                 CST
 0  0      0    819      2    756    0    0     0     1    1   10  0  0 100  0  0 2024-09-30 16:20:44

四、更多

4..1 vmstat 命令输出字段的含义

vmstat ​命令输出字段:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swap  free  buff  cache   si   so    bi    bo   in   cs us sy id wa st

字段含义:

  • procs

    • r​: 等待运行的进程数(正在等待 CPU 资源的进程数)
    • b​: 等待 I/O 的进程数(正在等待 I/O 操作的进程数)
  • memory

    • swap​: 使用的交换空间大小(以 KB 为单位,或者根据 -S ​选项指定的单位)
    • free​: 空闲的内存大小(未被使用的内存大小)
    • buff​: 用作缓冲区的内存大小(主要用于块设备 I/O)
    • cache​: 用作高速缓存的内存大小(主要用于文件系统)
  • swap

    • si​: 从交换区到内存的交换速率(每秒 KB)
    • so​: 从内存到交换区的交换速率(每秒 KB)
  • io

    • bi​: 从块设备接收的块数(每秒)
    • bo​: 发送到块设备的块数(每秒)
  • system

    • in​: 每秒中断数,包括时钟中断
    • cs​: 每秒上下文切换数
  • cpu(这些是 CPU 时间的百分比)

    • us​: 用户时间(非内核进程消耗的 CPU 时间)
    • sy​: 系统时间(内核进程消耗的 CPU 时间)
    • id​: 空闲时间(CPU 没有执行任何进程的时间)
    • wa​: 等待 I/O 的时间(CPU 等待 I/O 操作完成的时间)
    • st​: 被虚拟化偷走的时间(在虚拟机中运行时,宿主机消耗的时间)

请注意,vmstat ​的输出会根据你的系统和配置有所不同,特别是在不同版本的 Linux 发行版中。-S ​选项允许你指定输出单位,可以是 k​(千字节)、K​(千字节)、m​(兆字节)或 M​(兆字节)。例如,-S M ​将以兆字节为单位显示内存和交换空间的大小。

4.2 slab 信息

vmstat -m​ 命令在 Linux 系统中显示的是 slab 分配器的信息,slab 分配器是内核用来管理内存的一种机制,它主要用于分配和释放内核对象,如文件描述符、进程结构等。

vmstat -m​ 的输出通常包含以下几列内容:

  1. Slab 缓存名称:内核 slab 缓存区的名称,表明了该 slab 缓存是用来存储哪种类型的对象。
  2. 活动对象数目:当前正在使用的对象数量。
  3. 活动对象大小:当前正在使用的对象总大小。
  4. 对象数目:slab 缓存中对象的总数。
  5. 对象大小:slab 缓存中所有对象的总大小。
  6. 页面数目:slab 缓存占用的物理页面数。

以下是 vmstat -m ​命令输出的一个示例:

Cache                       Num  Total   Size  Pages
ext4_inode_cache             321    321   960   34
ext4_xattr                  8      8    192   21
buffer_head                 345    345   112   29
vm_area_struct              7954   7954   104   25
mm_struct                   164    164   768   21
...

这些信息可以帮助系统管理员或开发者了解内核中 slab 分配器的使用情况,比如哪些缓存正在使用,它们占用了多少内存,以及它们管理的对象数量等。这对于调试内存使用问题或优化系统性能非常有用。

总结:vmstat输出格式太差了,还是使用其他同类命令吧。

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

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

相关文章

18734 拓扑排序

### 思路 1. **建模问题**&#xff1a;将课程和依赖关系建模为有向图&#xff0c;其中课程是节点&#xff0c;依赖关系是有向边。 2. **选择算法**&#xff1a;使用拓扑排序算法来确定课程的学习顺序。由于需要确保输出唯一性&#xff0c;同等条件下编号小的课程排在前面&…

Koa学习

Koa 安装与配置 1. 初始化项目 在终端中执行以下命令&#xff1a; # 创建项目文件夹 mkdir koa cd koa# 初始化并安装依赖 npm init -y npm install koa npm install nodemon --save-dev2. 修改 package.json 在 package.json 文件中进行如下修改&#xff1a; {"type…

LeetCode讲解篇之1143. 最长公共子序列

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 这题我们可以采用动态规划求解&#xff0c;用一个二维数组记录text1的0 ~ i区间子串和text2的0 ~ j区间子串的最长公共子序列的长度&#xff0c;我们假设该二维数组是f 这个数组有一个特性&#xff0c;如果a <…

ssm服装店销售管理系统

系统包含&#xff1a;源码论文 所用技术&#xff1a;SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习&#xff0c;获取源码请私聊我 需要定制请私聊 目 录 摘 要 I Abstract II 第1章 绪论 1 1.1研究背景 1 1.2研究意义 1 1.3国内外研究现状 2 1.3.1国外研…

R语言中的plumber介绍

R语言中的plumber介绍 基本用法常用 API 方法1. GET 方法2. POST 方法3. 带路径参数的 GET 方法 使用 R 对数据进行操作处理 JSON 输入和输出运行 API 的其他选项其他功能 plumber 是个强大的 R 包&#xff0c;用于将 R 代码转换为 Web API&#xff0c;通过使用 plumber&#x…

启动hadoop后没有 NodeManager和 ResourceManager

跟着黑马网课学下去时发现我的hadoop启动后没有NodeManager和ResourceManager 找到日志的路径 我在/export/server/hadoop/etc/hadoop/hadoop-env.sh文件里配置了日志存放的路径 这里找到你的日志路径&#xff0c;每个人的习惯和看的教程不同&#xff0c;日志放的地方大概率也…

MATLAB中lsqminnorm函数用法

目录 语法 说明 示例 求解具有无限个解的线性系统 指定容差以减少含噪数据的影响 切换显示低秩矩阵警告 lsqminnorm函数的功能是线性方程的最小范数最小二乘解。 语法 X lsqminnorm(A,B) X lsqminnorm(A,B,tol) X lsqminnorm(___,rankWarn) 说明 X lsqminnorm(A,B…

【大语言模型-论文精读】用于医疗领域摘要任务的大型语言模型评估综述

【大语言模型-论文精读】用于医疗领域摘要任务的大型语言模型评估综述 论文信息&#xff1a; 用于医疗领域摘要任务的大型语言模型评估&#xff1a;一篇叙述性综述&#xff0c; 文章是由 Emma Croxford , Yanjun Gao 博士 , Nicholas Pellegrino , Karen K. Wong 等人近期合作…

【Arduino IDE安装】Arduino IDE的简介和安装详情

目录 &#x1f31e;1. Arduino IDE概述 &#x1f31e;2. Arduino IDE安装详情 &#x1f30d;2.1 获取安装包 &#x1f30d;2.2 安装详情 &#x1f30d;2.3 配置中文 &#x1f30d;2.4 其他配置 &#x1f31e;1. Arduino IDE概述 Arduino IDE&#xff08;Integrated Deve…

Spring Boot医院管理系统:提升患者体验

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式&#xff0c;是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示&#xff1a; 图4-1系统工作原理…

python pass的作用

class Phone: IMEI None # 序列号 producer “ITCAST” # 厂商 def call_by_4g(self):print("4g通话")class Phone2022(Phone): face_id “10001” # 面部识别ID def call_by_5g(self):print("2022年新功能&#xff1a;5g通话")class NFCReader: nfc_ty…

​​​​​​​如何使用Hugging Face上的FacePoke工具调整照片中人的头部位置

在照片处理中&#xff0c;调整人物的头部位置可以为你带来创意无限的效果。借助Hugging Face上的FacePoke工具&#xff0c;这一操作变得前所未有的简单和高效。以下是详细步骤&#xff0c;教你如何使用FacePoke来调整照片中人的头部位置。 第一步&#xff1a;访问FacePoke工具…

二、Python(项目创建、常见的设置、print函数)

一、项目创建 二、常见设置 1.字体大小 2.插件 3.主题设置 4.配置解释器 三、print函数 在 Python 中&#xff0c;print()函数是一个非常重要的用于输出内容的函数。 作用&#xff1a;print函数在控制台中输出(显示,打印)括号中的内容&#xff0c;可以用于验证代码的输出结果…

【Kubernetes】常见面试题汇总(五十八)

目录 127.创建 PV 失败&#xff1f; 128. pod 无法挂载 PVC&#xff1f; 特别说明&#xff1a; 题目 1-68 属于【Kubernetes】的常规概念题&#xff0c;即 “ 汇总&#xff08;一&#xff09;~&#xff08;二十二&#xff09;” 。 题目 69-113 属于【Kubernetes】…

SpringBoot开发——SpringSecurity安全框架17个业务场景案例(一)

文章目录 一、Spring Security 常用应用场景介绍二、Spring Security场景案例1、认证(Authentication)1.1. Spring Security 配置1.2 业务逻辑代码1.3 登录控制器1.4 登录页面 (login.html)2、授权(Authorization)2.1 Spring Security 配置2.2 业务逻辑代码2.3 控制器3、表…

如何判断静态代理IP地址是否被污染?

在网络使用中&#xff0c;静态IP代理是一种常见的工具&#xff0c;用于维持稳定的连接和保护个人隐私。然而&#xff0c;有时这些IP地址可能会被污染&#xff0c;导致用户遭受各种问题&#xff0c;如连接延迟、数据泄露等。因此&#xff0c;了解如何判断址是否被污染至关重要。…

EPC User Manual Introduction

Overview 您提供的链接是指向srsRAN 4G项目的官方文档&#xff0c;具体是关于srsEPC的介绍部分。以下是该页面的核心内容概要&#xff1a; ### 概述 srsEPC是一个轻量级的完整LTE核心网络&#xff08;EPC&#xff09;实现。srsEPC应用程序作为一个单一的二进制文件运行&#…

【高阶数据结构】二叉树进阶探秘:AVL树的平衡机制与实现详解

高阶数据结构相关知识点可以通过点击以下链接进行学习一起加油&#xff01;二叉搜索树 大家好&#xff0c;这里是店小二&#xff01;今天我们将深入探讨高阶数据结构中的AVL树。AVL树是一种自平衡的二叉搜索树&#xff0c;可以看作是对传统二叉搜索树的优化版本。如果你对数据结…

828华为云征文|华为云Flexus云服务器X实例部署 即时通讯IM聊天交友软件——高性能服务器实现120W并发连接

营运版的即时通讯IM聊天交友系统&#xff1a;特点可发红包&#xff0c;可添加多条链接到用户网站和应用&#xff0c;安卓苹果APPPC端H5四合一 后端开发语言&#xff1a;PHP&#xff0c; 前端开发语言&#xff1a;uniapp混合开发。 集安卓苹果APPPC端H5四合一APP源码&#xff0…

AI学习记录 - L2正则化详细解释(权重衰减)

大白话&#xff1a; 通过让反向传播的损失值变得比原来更大&#xff0c;并且加入的损失值和权重的大小有关&#xff0c;当出现权重的平方变大的时候&#xff0c;也就是权重往更加负或者更加正的方向走的时候&#xff0c;损失就越大&#xff0c;从而控制极大正或者极大负的情况…