首页 > 系统相关 >Linux命令之vmstat

Linux命令之vmstat

时间:2022-12-10 17:35:44浏览次数:49  
标签:表示 wa 命令 vmstat 内存 Linux 进程 磁盘 CPU

一、使用说明

vmstat 可以对操作系统的内存信息、进程状态、CPU 活动、磁盘等信息进行监控,不足之处是无法对某个进程进行深入分析。

二、用法及参数说明

  • -a:显示活跃和非活跃内存
  • -f:显示从系统启动至今的fork数量
  • -m:显示slabinfo
  • -n:只在开始时显示一次各字段名称
  • -s:显示内存相关统计信息及多种系统活动数量
  • delay:刷新时间间隔。如果不指定,只显示一条结果
  • count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷
  • -d:显示磁盘相关统计信息
  • -p:显示指定磁盘分区统计信息
  • -S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)
  • -V:显示vmstat版本信息
  • -p:显示指定磁盘分区统计信息
  • -D:显示磁盘总体信息

三、结果说明

2表示两秒采集一次服务器状态,5表示采集5次。在实际运用过程中,一般会在一段时间内一直监控,不想监控直接结束就行了,如下:

  • r 列表示运行和等待CPU时间片的进程数,这个值如果长期大于系统CPU个数,说明CPU不足,需要增加CPU。
  • b 列表示在等待资源的进程数,比如正在等待I/O或者内存交换等。
  • swpd 列表示虚拟内存已使用的大小,如果swap值不为0或者比较大,只要si、so的值长期为0,一般属于正常情况。
  • free 列表示空闲的物理内存的大小,单位为KB。
  • buff 列表示baffers cached内存大小,也就是缓冲大小,一般对块设备的读写才需要缓冲。
  • cache 列表示page cached的内存大小,也就是缓存大小,一般作为文件系统进行缓冲,频繁访问的文件都会被缓存,如果cache 值非常大说明缓存文件比较多,如果此时io中的bi 比较小,说明文件系统效率比较好。
  • si 列表示每秒从磁盘读入虚拟内存的大小,如果这个值长期大于0,表示物理内存不够用,需要增加系统内存。
  • so 列表示每秒虚拟内存写入磁盘的大小,如果这个值长期大于0,也是表示物理内存不够用,需要增加系统内存。
  • bi 列表示由块设备读入数据的总量,即读磁盘,单位kb/s。
  • bo 列表示写到块设备数据的总量,即写磁盘,单位kb/s。如果bi+bo值过大,且wa值较大,则表示系统磁盘IO瓶颈。
  • in 列表示每秒CPU的中断次数,包括时间中断。
  • cs 列表示每秒产生的上下文切换次数,这两个值越大,则由内核消耗的CPU就越多。这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。
  • us 列表示用户进程消耗的CPU时间百分比,us值越高,说明用户进程消耗CPU时间越多,如果长期大于50%,则需要考虑优化程序或者算法。
  • sy 列表示系统内核进程消耗的CPU时间百分比,一般来说us+sy应小于80%,如果80%,则说明可能存在CPU瓶颈。
  • id 列表示CPU处在空闲状态的时间百分比。
  • wa 列表示I/O等待所占的CPU时间百分比,wa值越高,说明I/O等待越严重,根据经验wa的参考值为20%,超过20%说明I/O等待严重,引起I/O等待的原因可能是磁盘大量随机读写造成的,也可能是磁盘出现瓶颈(主要是块操作)造成的。

重点参数:r,b,swpd,free,buff,cache,si,so,bi,bo

四、性能分析信息

1、IO/CPU/men连锁反应

  • free急剧下降
  • buff和cache被回收下降,但也无济于事
  • 依旧需要使用大量swap交换分区swpd
  • 等待进程数,b增多
  • 读写IO,bi bo增多
  • si so大于0开始从硬盘中读取
  • cpu等待时间用于 IO等待,wa增加

2、内存不足

  • 开始使用swpd,swpd不为0
  • si so大于0开始从硬盘中读取

3、io瓶颈

  • 读写IO,bi bo增多超过2000
  • cpu等待时间用于 IO等待,wa增加 超过20
  • sy 系统调用时间长,IO操作频繁会导致增加 >30%
  • wa io等待时间长
  •         iowait% <20%            良好
  •         iowait% <35%            一般
  •         iowait% >50%
  • 进一步使用iostat观察

4、CPU瓶颈:load,vmstat中r列

  • 反应为CPU队列长度
  • 一段时间内,CPU正在处理和等待CPU处理的进程数之和,直接反应了CPU的使用和申请情况。
  • 理想的load average:核数*CPU数*0.7
  •         CPU个数:grep 'physical id' /proc/cpuinfo | sort -u
  •         核数:grep 'core id' /proc/cpuinfo | sort -u | wc -l
  • 超过这个值就说明已经是CPU瓶颈了

标签:表示,wa,命令,vmstat,内存,Linux,进程,磁盘,CPU
From: https://www.cnblogs.com/wfw001-2018/p/12679668.html

相关文章

  • Linux监控命令之top
    一、命令说明top命令能够实时监控系统的运行状态,并且可以按照CPU、内存和执行时间进行排序,同时top命令还可以通过交互式命令进行设定显示,通过top命令可以查看即时活跃......
  • Linux监控命令之iostat
    一、使用说明iostat是对系统的磁盘I/O操作进行监控,它的输出主要显示磁盘读写操作的统计信息,同时给出CPU的使用情况。同vmstat一样,iostat不能对某个进程进行深入分析,......
  • Linux监控命令之sar
    一、使用说明sar是目前Linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使......
  • Linux监控命令之lsof
    一、命令说明lsof命令的原始功能是列出打开的文件的进程,但LINUX下,所有的设备都是以文件的行式存在的,所以,lsof的功能很强大。二、参数说明-a:列出打开文件存在的进......
  • [ Linux ] 进程信号递达,阻塞,捕捉
    1.coredump字段coredump在进程控制中进程等待部分,我们遗留了一个coredump字段,在waitpid中有一个status参数,该参数是一个输出型参数,其中status不能简单的当做整形来看待,我......
  • Linux零基础入门篇
    1.1为什么要学习Linux我们为什么要学习Linux?我们现在的处境是什么?我们想达到什么样的目标?在谈到这三个问题,相信我们每个人都有自己的答案,我们来自不同的家庭,各种经历都不......
  • ifdown和ifup命令
    ifdown命令ifdown命令用于禁用指定的网络接口。该命令会去读取/etc/sysconfig/network-scripts/目录下的相关网络接口的配置文件,并根据配置文件的内容来关闭该网络接口。......
  • nohup 命令解读
    前言nohup是linux系统中自带的一个命令行工具,英文全称nohangup(不挂起)。功能是在系统后台不挂断地运行命令,退出终端不会影响程序的运行。nohup需要配合&一起使用。......
  • clion c linux远程开发与多进程调试
    本来vs是没有意见的,实在是vs2017太大了,又不做windows下开发。从2020.2开始,clion原生支持makefile、cmake则很早就支持,这样对于makefile工程如pg就不再需要通过cmakefil......
  • linux(centos 6/7/8,kylin)下记录所有用户的操作以及ip、时间
    [root@sdw~]#mkdir/var/log/history[root@sdw~]#chmod777/var/log/history编辑/etc/profile文件,在文件末尾加入下面代码:[root@iZ23nn1p4mjZroot]#vi/etc/profileh......