vmstat

                             vmstat常用参数


命令:vmstat 2 1

其中2:代表每2秒刷新一次

    1:打印一次

--------------------------------------------------------------------------------

[[email protected] ~]# vmstat 2 1

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----

r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

0  0      0 934696 128988 590672    0    0    31     3   20   24  0  0 99  0  0

-----------------------------------------------------------------------

参数解析:

r 表示运行队列(就是说多少个进程真的分配到CPU)

b 表示阻塞的进程,这个不多说,进程阻塞

swap 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器

free 空闲的物理内存的大小

buffer   Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存

cache cache直接用来记忆我们打开的文件,给文件做缓冲,我本机大概占用300多M(这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。)

si  每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。我的机器内存充裕,一切正常。

so 每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。

bi  块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte,我本机上没什么IO操作,所以一直是0,但是我曾在处理拷贝大量数据(2-3T)的机器上看过可以达到140000/s,磁盘写入速度差不多140M每秒

bo 块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。

in 每秒CPU的中断次数,包括时间中断

cs 每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。

us 用户CPU时间,我曾经在一个做加密解密很频繁的服务器上,可以看到us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。

sy 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。

id  空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。

wt 等待IO CPU时间。



注意:

CPU:
1、如果(process
r)是连续的大于在系统中的CPU的个数表示系统现在运行比较慢,有多数的进程等待CPU.

2、如果r的输出数大于系统中可用CPU个数的4倍的话,则系统面临着CPU短缺的问题,或者是CPU的速率过低,系统中有多数的进程在等待CPU,造成系统中进程运行过慢.

3、如果空闲时间(cpu id)持续为0并且系统时间(cpu sy)是用户时间的两倍(cpu us) 系统则面临着CPU资源的短缺.



参数大小的具体影响表现:

CPU:

1、r 和 b 不高于5,如果r 经常大于4,且id 经常少于40,则表示CPU
负荷很重。
2、us+sy 不超过80%,如果大于80,进程就会在运行队列中花费等待时间,响应时间和吞吐量就会下降。
3、wa 不超过25, 如果说wa
>40表明磁盘io没有也许存在不合理的平衡,或者对磁盘操作比较频繁 。

一般情况下,导致CPU资源不足都是应用程序的问题.比如一些SQL语句不合理等等都会造成这样的现象。

内存:

si和so基本为零。 其中si表示当前每秒交换回内存(Swap in)的总量,单位为kbytes;so表示当前每秒交换出内存(Swap
out)的总量,单位为kbytes。如果si,so 长期不等于0,表示系统使用swap 频繁,即内存不足。

一般情况下,如果内存的占用率比较高,但是,CPU的占用很低的时候,可以考虑是有很多的应用程序占用了内存没有释放.

要注意的是,Linux 内存在使用后不会释放,所以一般会看到内存使用率很高,要判断linux 内存是否正常,需要通过对swap
交换区的交换频率来看。

时间: 2024-10-18 00:39:24

vmstat的相关文章

查看系统资源(iostat,top,vmstat,mpstat)

维护服务器的时候,要经常查看系统资源的,可以了解一下服务器的运行情况.系统优化时,比如使用memcache时,我要决定分配多少内存给他合适呢,mysql的innodb的参数优化也要考虑到内存使用率,i/o的频繁程度啊,如果使用apache的话,要启动多少个httpd比较合适呢,如果数据库的数据太大,我要看看是不是增加磁盘呢等等,这个时候,我们要知道,有多少资源可用,才能更好的优化我们的系统. 1.top命令查看cpu,mem的使用情况 top - 13:54:34 up  4:29,  1 us

Reading vmstat in linux – Part 1

Linux comes with many tools to enable administrators to evaluate the performance of a system. One of these very useful tools is vmstat. Vmstat is available on most unix distributions and is included by default on many modern Linux distributions. As w

0.1 使用w查看系统负载 - 10.2 vmstat命令 - 10.3 top命令 - 10.4 sar命令 - 10.5 nload命令

- 10.1 使用w查看系统负载 - 10.2 vmstat命令 - 10.3 top命令 - 10.4 sar命令 - 10.5 nload命令 # 10.1 使用w查看系统负载 ![mark](http://oqxf7c508.bkt.clouddn.com/blog/20170829/230935727.png?imageslim) - w命令 ``` [[email protected] ~]# w  23:10:04 up  2:17,  2 users,  load average:

vmstat和iostat命令进行Linux性能监控

这是我们正在进行的Linux命令和性能监控系列的一部分.vmstat和iostat两个命令都适用于所有主要的类unix系统(Linux/unix/FreeBSD/Solaris). 如果vmstat和iostat命令在你的系统中不可用,请安装sysstat软件包.vmstat,sar和iostat命令都包含在sysstat(系统监控工具)软件包中.iostat命令生成CPU和所有设备的统计信息.你可以从这个连接中下载源代码包编译安装sysstat,但是我们建议通过YUM命令进行安装. 在Linu

linux-常用命令-iostat&vmstat

1,硬盘读写性能, -d:显示某块具体硬盘,这里没有给出硬盘路径就是默认全部了-k:以KB为单位显示1:统计间隔为1秒10:共统计10次的tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)."一次传输"意思是"一次I/O请求".多个逻辑请求可能会被合并为"一次I/O请求"."一次传输"请求的大小是

vmstat详解

1.vmstat详解 查看cpu负载 2.使用方法 vmstat 显示内容详解 procsr 列表示运行和等待cpu时间片的进程数,如果长期大于1,说明cpu不足,需要增加cpu.b 列表示在等待资源的进程数,比如正在等待I/O.或者内存交换等.cpu 表示cpu的使用状态us 列显示了用户方式下所花费 CPU 时间的百分比.us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序.sy 列显示了内核进程所花费的cpu时间的百分比.这里us + sy的参考

每天一个linux命令(36)--vmstat命令

vmstat 是 Virtual Memory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存.进程.CPU活动进行监控.他是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析.vmstat 工具提供了一种低开销的系统性能观察方式.因为 vmstat 本身就是低开销工具,在非常高负荷的服务器上,你需要查看并监控系统的健康情况,在控制窗口还是能够用vmstat 输出结果.在学习 vmstat 命令前,我们先了解一下Linux 系统中关于物理内存和虚拟内存相关信息.

vmstat 命令详解 转载

vmstat 命令详解   procs:r-->在运行队列中等待的进程数b-->在等待io的进程数w-->可以进入运行队列但被替换的进程 memoyswap-->现时可用的交换内存(k表示)free-->空闲的内存(k表示) pagesre-->回收的页面mf-->非严重错误的页面pi-->进入页面数(k表示)po-->出页面数(k表示)fr-->空余的页面数(k表示)de-->提前读入的页面中的未命中数sr-->通过时钟算法扫描的页

LINUX之ps,pstree,top,vmstat简单介绍

ps,pstree,top,vmstat用来查看进程或系统负载.下面介绍经常使用的命令组合,或显示内容解释. 程序,进程,线程的关系 程序:拥有某此功能(能被cpu运行的指令),可以被cpu调用运行的文件,通常都放在外部存储设备上. 进程:程序文件被调用运行时,一般都在内存中或cpu正在执行的程序. 线程:把进程中的执行任务的指令分成多个片,而每片可以单独做为一个执行流运行和调用,并且每个片可以分配到不同的cpu核心上运行.可以被单独调用的片称为线程.线程是比进程更小的调度单位.比进程更轻量级.