Linux 系统管理命令 - vmstat - 虚拟内存统计
命令详解
重要星级:
★★★★☆
功能说明:
vmstat 是 Virtual Memory Statistics ( 虚拟内存统计 ) 的缩写,利用 vmstat 命令可以对操作系统的内存信息、进程状态和 CPU 活动等进行监视。但是只能对系统的整体情况进行统计,无法对某个进程进行深入分析。
语法格式:
vmstat [option] [delay [count]]
vmstat [选项] [时间间隔 [次数]]
说明:
1. 在 iftop 命令后面的每一个选项里,每个元素之间都至少要有一个空格。
2. delay 表示两次输出之间的间隔时间。
3. count 表示按照 delay指定的时间间隔统计的次数。
选项说明:
-a :显示活跃和非活跃的内存 -f :显示从系统启动至今的 fork 进程数量 -m :显示 slab 信息 -n :只在开始时显示一次各字段名称 -s :显示内存相关统计信息及多种系统活动数量 ※ -d :显示磁盘相关统计信息 -p :显示指定磁盘分区统计信息 -S :使用指定单位显示。参数有 k、K、m、M,分别代表 、、 、 字节( byte )。默认单位为 K ( byte ) -t :统计信息带上时间戳
使用范例:
显示虚拟内存的使用情况 ( vmstat 5 6 ):
[root@localhost :~]# vmstat # 如果省略 "时间间隔" 和 "次数" 的参数,则仅显示一次报告后就退出
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st [root@localhost :~]# vmstat # 表示每5秒钟更新一次输出信息,循环输出,按 Ctrl+C 组合键停止输出
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st ^C [root@localhost :~]# vmstat # 表示每5秒钟更新一次输出信息,统计6次后停止输出
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st 0
[root@localhost :~]#
以下是命令结果的详细说明:
第一列:procs:
. r 列:the number of processes waiting for run time.
表示运行和等待 CPU 时间片的进程数。( 如果等待运行的进程数越多,意味着CPU非常繁忙。另外,如果该参数长期大于和等于逻辑cpu个数,则CPU资源可能存在较大的瓶颈。 )
. b 列:the number of processes in uninterruptible sleep.
表示处在非中断睡眠状态的进程数。( 意味着进程被阻塞。主要是指被资源阻塞的进程对列数(比如IO资源、页面调度等),当这个值较大时,需要根据应用程序来进行分析,比如数据库产品,中间件应用等。 )
第二列:memory:
. swpd 列:the amount of virtual memory used.
表示使用虚拟内存的大小。如果虚拟内存使用较多,可能系统的物理内存比较吃紧,需要采取合适的方式来减少物理内存的使用。swapd 不为0,并不意味物理内存吃紧,如果 swapd 没变化,si、so 的值长期为0,这也是没有问题的
. free 列:the amount of idle memory.
表示当前空闲的物理内存数量。
. buff 列:the amount of memory used as buffers.
表示 buffers 的内存数量 ( 主要用于块设备缓存,单位:KB )。
. cache 列:the amount of memory used as cache.
表示 cache 的内存数量 ( 主要用于缓存文件,单位:KB )。
. inact 列:the amount of inactive memory. (-a option)
表示非活跃的内存总量。
. active: the amount of active memory. (-a option)
表示活跃的内存总量。
第三列:swap:
. si( swap in )列:Amount of memory swapped in from disk (/s).
表示由磁盘交换到 swap 虚拟内存的交换页数量,单位:KB/秒。也就是内存进入内存交换区的数量。如果这个值大于0,表示物理内存不够用或者内存泄露了
. so( swap out )列:Amount of memory swapped to disk (/s).
表示由 swap 虚拟内存交换到磁盘的交换页数量,单位:KB/秒,如果这个值大于0,表示物理内存不够用或者内存泄露了
. 内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。
当看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,这个是不正确的。不能光看这一点,还要结合si和so,如果 free 很少,但是 si 和 so 也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。
当内存的需求大于RAM的数量,服务器启动了虚拟内存机制,通过虚拟内存,可以将 RAM 段移到 SWAP DISK 的特殊磁盘段上,
这样会出现虚拟内存的页导出和页导入现象,页导出并不能说明RAM瓶颈,虚拟内存系统经常会对内存段进行页导出,但页导入操作就表明了服务器需要更多的内存了, 页导入需要从SWAP DISK上将内存段复制回RAM,导致服务器速度变慢。
第四列:I/O项显示磁盘读写状况:
. bi 列:Blocks received from a block device (blocks/s).
表示从块设备读入的数据总量 ( 即读磁盘,单位:块/s )。
. bo 列:Blocks sent to a block device (blocks/s).
表示写入块设备的数据总量 ( 即写磁盘,单位:块/s )。
第五列:system 显示采集间隔内发生的中断数:
. in 列:the number of interrupts per second, including the clock.
表示在某一时间间隔中观测到的每秒设备中断数,包括时钟中断。
. cs 列:the number of context switches per second.
每秒产生的上下文 ( 环境 ) 切换次数。比如我们调用系统函数,就要进行上下文切换,而过多的上下文切换会浪费较多的 CPU 资源,这个数值应该越小越好。
第六列:CPU 项显示了 CPU 的使用状态:
. us 列:time spent running non-kernel code. (user time, including nice time)
表示用户消耗的 CPU 时间 ( 非内核进程占用时间 )(单位为百分比)。us 的值比较高时,说明用户进程消耗的 CPU 时间多
. sy 列:time spent running kernel code. (system time).
表示系统( 内核 )使用的 CPU 时间 ( 单位为百分比 )。sy 的值高时,说明系统内核消耗的 CPU 资源多,这并不是良性表现,我们应该检查原因。
. id 列:time spent idle. Prior to Linux 2.5., this includes IO-wait time.
空闲的 CPU 的时间( 百分比 ),在 Linux 2.5. 之前,这部分包含 IO 等待时间。
. wa 列:time spent waiting for IO. Prior to Linux 2.5., shown as zero.
表示等待 IO 的 CPU 时间,在 Linux 2.5. 之前,这个值为0 .这个指标意味着 CPU 在等待硬盘读写操作的时间,用百分比表示。wait 越大则机器 IO 性能就越差。说明 IO 等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈 ( 块操作 )。
. st 列:time stolen from a virtual machine. Prior to Linux 2.6., unknown.
表示虚拟机占用的 CPU 时间的百分比。
查看内存使用的详细信息 ( vmstat -s ):
[root@localhost :~]# vmstat -s
K total memory
K used memory
K active memory
K inactive memory
K free memory
K buffer memory
K swap cache
K total swap
K used swap
K free swap
non-nice user cpu ticks
nice user cpu ticks
system cpu ticks
idle cpu ticks
IO-wait cpu ticks
IRQ cpu ticks
softirq cpu ticks
stolen cpu ticks
pages paged in
pages paged out
pages swapped in
pages swapped out
interrupts
CPU context switches
boot time
forks
说明:这些信息分别来自于 /proc/meminfo、/proc/stat 和 /proc/vmstat 文件中
查看磁盘的读/写:
[root@localhost :~]# vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
total merged sectors ms total merged sectors ms cur sec
sda
sr0
dm-
dm-
[root@localhost :~]#
说明:这些信息主要来自于 /proc/diskstats。其中的 merged 表示一次来自于合并的写/读请求,系统一般会把多个连接/临近的读/写请求合并到一起来操作。
查看 /dev/sda1 磁盘的读写统计信息:
[root@localhost :~]# vmstat -p /dev/sda1
sda1 reads read sectors writes requested writes [root@localhost :~]#
说明:这些信息主要来自于 /proc/diskstats。各列的说明具体如下:
. reads :来自于该分区的读的次数。
. read sectors :来自于该分区的读扇区的次数。
. writes :来自于该分区的写的次数。
. requested writes :来自于该分区的写请求次数
Linux 系统管理命令 - vmstat - 虚拟内存统计的更多相关文章
- Linux系统管理命令
Linux系统管理命令 命令 说明 stat 显示指定文件的相关信息,比ls命令显示内容更多 who 显示在线登录用户 hostname 显示主机名称 uname 显示系统信息 top 显示当前系统中 ...
- S11 Linux系统管理命令
11.1 lsof:查看进程打开的文件 11.2 uptime:显示系统的运行时间及负载 11.3 free:查看系统内存信息 11.4 iftop:动态显示网络接口流量信息 11.5 vmstat: ...
- 尚学linux课程---7、linux系统管理命令
尚学linux课程---7.linux系统管理命令 一.总结 一句话总结: 查网络:netstat -ntpl 查进程:ps 1.需要下载163yum源(从外部源同步仓库)里面的所有rpm文件? re ...
- Linux系统管理命令(1)accton的使用
安装: apt install acct accton accton命令是Linux系统进程管理命令之一,它的作用是打开进程统计,如果不带任何参数,即关闭进程统计. 具体用法为:acc ...
- 11.5 vmstat:虚拟内存统计
vmstat vmstat是Virtual Memory Statistics(虚拟内存统计)的缩写,利用vmstat命令可以对操作系统的内存信息.进程状态和CPU活动等进行监视.但是只能对系统的整体 ...
- Linux 系统管理命令 - mpstat - CPU信息统计
命令详解 重要星级: ★★★★☆ 功能说明: mpstat 是 Multiprocessor Statistics 的缩写,是一种实时系统监控工具.mpstat 命令会输出 CPU 的一些统计信息,这 ...
- linux系统管理命令(五)
[教程主题]:1.系统管理命令 [1.1]用户和组管理 在Linux操作系统中,任何文件都归属于某一特定的用户,而任何用户都隶属于至少一个用户组.用户是否有权限对某文件进行访问.读写以及执行,受到系统 ...
- Linux基础命令---vmstat显示虚拟内存状态
vmstat vmstat指令用来显示虚拟内存使用状态,同时也可以显示进程.cpu活动情况.vmstat报告有关进程.内存.分页.块IO.陷阱和CPU活动的信息.生成的第一份报告给出了自上次重新启动以 ...
- Linux 系统管理命令 - iotop - 动态显示磁盘 I/O 统计信息
命令详解 重要星级: ★★★★☆ 功能说明: iotop 命令是一款实时监控磁盘 I/O 的工具, 但必须以 root 用户的身份运行.使用 iotop 命令可以很方便的查看每个进程使用磁盘 I/O ...
随机推荐
- Codeforces936C. Lock Puzzle
给个串,只能用操作shift x表示把后面x个字符翻转后放到串的前面.问s串怎么操作能变t串.n<=2000,操作次数<=6100. 打VP时这转来转去的有点晕... 可以想一种逐步构造的 ...
- make only output error/warning message( 编译时,只输出错误信息和警告信息)
make > /dev/null 这样,正常的信息被重定向输出到/dev/null,错误和警告信息会输出到标准错误设备(standard error,相对于标准输入/输出设备来说).
- 解决Flex4在Module里调用PopUpManager报错问题
项目大了 就需要用到Module, 发现在一个Module里边, 和普通应用里一样popup一个组件的时候, 总是会报错. 这个在Flex3的时候也会出现, 会报样式错误 所以就想到了addPopUp ...
- CodeForces 596B Wilbur and Array
简单题,一个一个操作,最后就是答案. #include<cstdio> #include<cstring> #include<cmath> #include< ...
- GO语言 --socket.io
socket.io是对websocket的封装以及扩展, 可以跨平台使用, 具体可看官网.. GO语言实现: package main import ( "github.com/googol ...
- hdu 3624 City Planning(暴力,也可扫描线)
City Planning Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ...
- 【Nginx】Nginx基础架构
调用HTTP模块的流程: Worker进程会在一个for循环语句中反复调用事件模块检测网络事件.当事件模块检测到某个客户端发起的TCP请求时(接收到SYN包),将会为它建立TCP连接,成功建立连接后根 ...
- Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的使用方法总结
具体解读Jquery各Ajax函数: $.get(),$.post(),$.ajax(),$.getJSON() 一 $.get(url,[data],[callback]) 说明:url为请求地 ...
- Windows环境下QWT安装及配置
** 1.QWT下载路径 **:https://sourceforge.net/projects/qwt/ 主要下载这三个文件:qwt-6.1.2.zip.qwt-6.1.2.pdf,qwt-6.1. ...
- RAM、ROM和磁盘
计算机存储数据的存储器主要分为RAM(随机訪问存储器).ROM.磁盘. RAM又分为SRAM和DRAM两种,SRAM用作快速缓存,DRAM用作主存. 1.SRAM SRAM又被称为静态RAM.利 ...