在本指南中,我们将演示在Linux中使用“vmstat”命令的各种方法。
先决条件:
要执行本指南中演示的步骤,您需要以下组件:
- 配置正确的Linux系统。出于测试目的,请考虑使用Linux VM。
- 访问具有sudo权限的非根用户
- 对命令行界面的基本理解
Linux中的虚拟内存
RAM,或称物理内存,是一种有限的资源,由操作系统分配给正在运行的程序。所有的程序,包括操作系统本身,都需要占用这一空间。
当内存需求超过可用内存时,系统可能会崩溃或程序可能会请求更多内存空间。大多数情况下,这种情况是不受欢迎的。虚拟内存的概念因此应运而生,它允许系统将部分数据存储在硬盘上,以便在需要时交换到RAM。这样,系统可以更有效地管理内存资源,确保程序正常运行,而不会因内存不足而导致崩溃。虚拟内存的使用使得系统在面对内存需求
虚拟内存是计算机系统中的一种技术,它利用硬盘或固态硬盘上的空间来扩展内存的容量,以便在需要时充当额外的内存。虚拟内存实际上是一种将部分硬盘空间用作临时存储的方式,以便在处理器需要更多内存时进行补充。在UNIX和Linux操作系统中,这种技术被称为交换空间,用于管理内存资源的分配和交换。虽然虚拟内存并非真正的物理内存,但它可以提高系统的性能和稳定性,确保系统能够处理更大的工作负荷。
Linux内核将内存块移动到交换空间,并在必要时将其检索回RAM。
虚拟内存的速度通常比物理内存慢,取决于存储设备的性能。但在某些特定硬件设置下(如采用NVMe SSD),虚拟内存的性能可能与RAM相媲美。
vmstat命令
"vmstat"命令是一个用于监视虚拟内存相关信息的实用工具。它可以在所有Linux系统上作为"sysstat"软件包的一部分使用。
“vmstat”的命令结构如下:
$vmstat
基本用法
如果运行时没有任何参数,”vmstat”会打印自上次启动以来的系统信息:
$vmstat
产出分为六个部分:
- procs:当前正在运行的进程的统计信息
- r:活动进程数
- b:睡眠过程的数量
- memory:内存使用统计
- Swpd:虚拟内存总量(交换空间)
- 空闲:可用交换空间
- buff:用作临时缓冲存储器的交换空间量
- 缓存:总缓存内存
- swap:关于交换空间的统计信息
- si:交换速率
- 所以:换出的比率
- io:I/O统计
- bi:从块设备接收的块数
- bo:发送到块设备的块数
- 系统:日程安排统计
- in:系统中断计数
- cs:上下文切换速率
- CPU:各种CPU统计数据
- 美国:CPU花费在非内核进程上的时间
- sy:CPU花费在内核进程上的时间
- id:CPU花费时间空闲
- wa:CPU花费时间等待I/O操作完成
- st:虚拟机使用的CPU时间
更改显示单元
默认情况下,”vmstat”以字节为单位报告内存值。要更改单位,请使用”—S”标志:
$vmstat-S
在这里,“vmstat”以MB为单位打印值。
有几个可用的内存单元:
- M:1048576字节(2^20字节)
- M:1000000字节(1000千字节)
- K:1024字节(1兆字节)
- k:1000字节(1字节)
持续统计数据更新
默认情况下,”vmstat”打印一次报告。但是,我们可以指示”vmstat”以指定的时间间隔(以秒为单位)提供连续的报告。
命令结构如下:
$vmstat
例如,要每隔2秒获取更新的统计信息,命令如下:
$vmstat 2
输出不会停止,除非使用“Ctrl + C”手动终止。
或者,我们可以指定”vmstat”来提供特定次数的统计数据:
$vmstat
例如,要获取每2秒更新一次的统计数据,命令如下所示:
$vmstat 2 5
主动和非主动记忆
活动内存指的是进程当前使用的内存空间。另一方面,非活动内存指的是分配给不再运行的进程的内存空间。
使用”vmstat”,我们可以检查正在使用的活动和非活动内存的数量:
$vmstat—a
这里,”buff”和”cache”列分别被”inact”和”active”列替换。
内存和调度
要获取有关内存和调度的更详细报告,请使用以下命令:
$vmstat—s
这里:
- 第1节:这一节介绍基本系统信息,如总物理内存、活动/非活动内存、空闲/缓冲区/缓存内存等。
- 第2节:各种CPU统计数据
- 非良好CPU节拍:高优先级进程使用CPU的次数。
- NICE CPU TICK:低优先级进程使用CPU的次数。
- 系统CPU计数:内核进程使用CPU的次数。
- Idle CPU ticks:CPU处于空闲状态的次数。
- IO—wait CPU ticks:CPU等待I/O管理的次数。
- IRQ:CPU接收中断请求的次数。
- softirq:CPU接收软件中断请求的次数。
- 被盗CPU时间:VM窃取CPU时间的次数。
- 第3节:内存分页状态
- 第4节:事件计数器
引导后的叉子
Forks指的是由现有进程产生的进程。要获取fork计数的统计信息,请运行以下命令:
$vmstat-f
磁盘和分区统计
“vmstat”命令还可以提供有关磁盘活动的信息。要获取磁盘活动的快速摘要,请运行以下命令:
$vmstat—D
要获取更详细的磁盘活动报告(包括读/写统计),请改用以下命令:
$vmstat—d
这里:
- 读数
- total:磁盘读取总数
- 已合并:组读取总数
- sectors:读取的sectors总数
- ms:从磁盘读取数据的总时间(毫秒)
- 写道
- total:磁盘写入计数
- 已合并:组写入总数
- sectors:写入的sectors总数
- ms:写入磁盘的总时间(毫秒)
- io
- cur:当前磁盘读/写总数
- 秒:正在进行的读/写操作所花费的时间量(秒)
“vmstat”命令还可以生成特定磁盘分区的报告。要获取分区报告,请使用以下命令结构:
$vmstat-p
板材统计
板分配是一种有效的对象内存分配机制。与以前的机制相比,slab分配提供了减少内存碎片(由内存分配和解除分配引起的)。
要检查系统的slab统计信息,请使用以下”vmstat”命令:
$sudo vmstat—m
请注意,它需要root权限才能查看统计数据。
这里:
- 缓存:缓存数据的名称
- Num:Num缓存中处于活动状态的对象的数量
- Total:特定缓存中对象的总数
- Size:缓存对象的大小
- Pages:包含缓存对象的内存分页计数
结论
在本指南中,我们展示了使用”vmstat”命令的各种方法。除了虚拟内存外,”vmstat”还可以报告磁盘统计数据、分叉、片等。
有兴趣了解其他系统监控工具吗?了解有关HTOP、KILL、PS等的更多信息。
计算快乐!
以上是Linux Vmstat命令的详细内容。更多信息请关注PHP中文网其他相关文章!

您是否想知道如何找到《生化危机4储蓄》?如何备份《生化危机4节》? PHP.CN的这篇文章为您提供了3种备份《生化危机4节》的方法。现在,继续阅读。

如果有人试图通过输入大量关键组合来访问计算机,则您的计算机的打开风险更高。因此,很需要限制登录尝试的数量。怎么做?阅读此php.cn帖子。

cfgmgr32.dll丢失的错误通常会惹恼人们很多,并且在窗户中留下了更严重的问题。那么,当您遇到CFGMGR32.DLL时,您该怎么办? PHP.CN网站上的这篇文章将告诉您一些方法。

您是否曾经遇到过Windows锁定屏幕超时的问题?幸运的是,该帖子可从PHP.CN.提供几种可行的解决方案。应用这些修复程序,您可以有效地解决这个烦人的问题。

微软已经发布了Windows 11 23H2(Windows 11 2023更新)。您要在设备上安装此更新吗?其中有什么新功能?如何立即获取此更新?现在,您可以从此php.cn获取信息

Windows Defender可以保护您的计算机和设备上的文件免受恶意软件和病毒的攻击或感染。但是,有时,由于某种原因,您需要绕过Windows Defender。在PHP.CN网站上的这篇文章中,我们将介绍3 W

在尝试将文件从移动电话复制或将文件传输到计算机时,您可能会得到错误的类型错误消息。如果您不知道如何解决它,则PHP.CN网站上的这篇文章可以为您提供帮助。

是否要恢复您对Microsoft Excel的更改?在这里,有关PHP.CN软件的本文旨在向您展示如何以最有效的方式将Excel重置为Windows 10中的默认设置。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

Atom编辑器mac版下载
最流行的的开源编辑器

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)