Linux系统vmstat命令怎么用
Linux系统中,当我们需要对系统内存,cpu等进程进行监控时候,我们可以利用vmstat命令实现,具体怎么操作呢。下面由学习啦小编为大家整理了linux系统中vmstat命令使用详解,希望对大家有帮助!
Linux系统中vmstat命令使用详解
学习啦在线学习网 vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控。
它能够对系统的整体情况进行统计,无法对某个进程进行深入分析。vmstat 工具提供了一种低开销的系统性能观察方式。
(1)用法
用法: vmstat [选项参数]
或 vmstat [选项参数] [数字] [数字]
(2)功能:
功能: 报告虚拟内存的统计信息,关于进程、内存、I/O等系统整体运行状态。
(3)选项参数:
学习啦在线学习网 1) -d: 显示磁盘相关统计信息。
2) -a: 显示活跃和非活跃内存
3) -f: 显示从系统启动至今的fork数量。
4) -p: 显示指定磁盘分区统计信息
学习啦在线学习网 5) -s: 显示内存相关统计信息及多种系统活动数量。
6) -m: 显示slabinfo
学习啦在线学习网 Linux系统中vmstat命令详解实例
学习啦在线学习网 1)[sunjimeng@localhost ~]$ vmstat 显示虚拟内存使用情况
学习啦在线学习网 [sunjimeng@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
5 0 0 858580 752 506988 0 0 7 1 81 120 2 1 97 0 0
[sunjimeng@localhost ~]$
字段说明:
1.Procs(进程)
r: 运行队列中进程数量,这个值也可以判断是否需要增加CPU。(长期大于1)
b: 等待IO的进程数量。
2.Memory(内存)
swpd: 使用虚拟内存大小,如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能。
学习啦在线学习网 free: 空闲物理内存大小。
学习啦在线学习网 buff: 用作缓冲的内存大小。
cache: 用作缓存的内存大小,如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小。
3.Swap
学习啦在线学习网 si: 每秒从交换区写到内存的大小,由磁盘调入内存。
so: 每秒写入交换区的内存大小,由内存调入磁盘。
注意:
内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有些朋友看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。
学习啦在线学习网 4.IO(现在的Linux版本块的大小为1kb)
bi: 每秒读取的块数
bo: 每秒写入的块数
注意:
随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。
5.system(系统)
in: 每秒中断数,包括时钟中断。
学习啦在线学习网 cs: 每秒上下文切换数。
注意:
学习啦在线学习网 上面2个值越大,会看到由内核消耗的CPU时间会越大。
6.CPU(以百分比表示)
学习啦在线学习网 us: 用户进程执行时间百分比(user time) us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速。
学习啦在线学习网 sy: 内核系统进程执行时间百分比(system time) sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。
wa: IO等待时间百分比 wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。
id: 空闲时间百分比
2)[sunjimeng@localhost ~]$ vmstat 2 每二秒显示一次系统内存的统计信息
[sunjimeng@localhost ~]$ vmstat 2
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 853508 752 507144 0 0 7 1 80 119 2 1 97 0 0
0 0 0 853508 752 507144 0 0 0 0 376 466 3 2 96 0 0......
学习啦在线学习网 3)[sunjimeng@localhost ~]$ vmstat 2 5 每二秒显示一次系统内存的统计信息,总共5次
[sunjimeng@localhost ~]$ vmstat 2 5
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 853888 752 507152 0 0 7 1 81 119 2 1 97 0 0
学习啦在线学习网 0 0 0 853888 752 507152 0 0 0 0 609 763 5 2 92 0 0
1 0 0 853888 752 507152 0 0 0 0 582 626 5 2 93 0 0
学习啦在线学习网 0 0 0 853888 752 507152 0 0 0 0 399 464 3 2 95 0 0
学习啦在线学习网 0 0 0 853888 752 507152 0 0 0 0 263 365 3 1 96 0 0
学习啦在线学习网 [sunjimeng@localhost ~]$
常见问题处理
学习啦在线学习网 如果r经常大于4,且id经常少于40,表示cpu的负荷很重。
如果pi,po长期不等于0,表示内存不足。
如果disk经常不等于0,且在b中的队列大于3,表示io性能不好。
学习啦在线学习网 1.)如果在processes中运行的序列(process r)是连续的大于在系统中的CPU的个数表示系统现在运行比较慢,有多数的进程等待CPU。
学习啦在线学习网 2.)如果r的输出数大于系统中可用CPU个数的4倍的话,则系统面临着CPU短缺的问题,或者是CPU的速率过低,系统中有多数的进程在等待CPU,造成系统中进程运行过慢。
学习啦在线学习网 3.)如果空闲时间(cpu id)持续为0并且系统时间(cpu sy)是用户时间的两倍(cpu us)系统则面临着CPU资源的短缺。
解决办法:
学习啦在线学习网 当发生以上问题的时候请先调整应用程序对CPU的占用情况.使得应用程序能够更有效的使用CPU.同时可以考虑增加更多的CPU. 关于CPU的使用情况还可以结合mpstat, ps aux top prstat –a等等一些相应的命令来综合考虑关于具体的CPU的使用情况,和那些进程在占用大量的CPU时间.一般情况下,应用程序的问题会比较大一些.比如一些sql语句不合理等等都会造成这样的现象.
内存问题现象:
学习啦在线学习网 内存的瓶颈是由scan rate (sr)来决定的.scan rate是通过每秒的始终算法来进行页扫描的.如果scan rate(sr)连续的大于每秒200页则表示可能存在内存缺陷.同样的如果page项中的pi和po这两栏表示每秒页面的调入的页数和每秒调出的页数.如果该值经常为非零值,也有可能存在内存的瓶颈,当然,如果个别的时候不为0的话,属于正常的页面调度这个是虚拟内存的主要原理.