Linux性能检测命令 - vmstat
一、vmstat命令描述
最常见的Linux/Unix监控工具想必是vmstat了,vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况,进程活动进行监控。vmstat是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析(结合top命令使用)。
vmstat 工具提供了一种低开销的系统性能观察方式。因为 vmstat 本身就是低开销工具,在非常高负荷的服务器上,你需要查看并监控系统的健康情况,在控制窗口还是能够使用vmstat 输出结果。
二、vmstat命令
- 命令格式
vmstat [-a] [-n] [-S unit] [delay [ count]]
vmstat [-s] [-n] [-S unit]
vmstat [-m] [-n] [delay [ count]]
vmstat [-d] [-n] [delay [ count]]
vmstat [-p disk partition] [-n] [delay [ count]]
vmstat [-f]
vmstat [-V]
- 命令功能
用来显示虚拟内存的信息
- 命令参数
-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版本信息。
三、vmstat命令使用
1、虚拟内存使用情况
命令:vmstat 5 10,5表示每5秒采集一次服务器状态,10表示 采集10次

输出项说明
| 类别 | 子项 | 说明 | 备注 |
| procs | r | 运行队列中等待cpu时间片的进程数量 | 如果长期大于1,说明cpu不足。 |
| b | 在等待资源的进程数(阻塞的进程) | 比如正在等待I/O、或者内存交换等。 | |
| memory | swpd | 虚拟内存已使用的大小即切换到内存交换区的内存数量(k表示) |
如果swpd的值不为0(表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉),或者比较大,比如超过了100m,只要si、so的值长期为0,系统性能还是正常 。 |
| free | 当前的空闲页面列表中内存数量(k表示) | ||
| buff | 用作缓冲的内存大小 | 一般对块设备的读写才需要缓冲。 | |
| cache | 作为page cache的内存数量,一般作为文件系统的cache | 用来记忆我们打开的文件,给文件做缓冲。如果cache较大,说明用到cache的文件较多,如果此时IO中bi比较小,说明文件系统效率比较好。 | |
| swap | si | 每秒从交换区读入虚拟内存的大小 | |
| so | 每秒虚拟内存写入交换区的大小 | ||
| io | bi | 每秒从块设备接收到的块数,即读块设备。(每秒kb) | |
| bo | 每秒发送到块设备的块数,即写块设备。(每秒kb) | ||
| system | in | 每秒中断数,包括时钟中断 | |
| cs | 每秒上下文切换数 | 如当调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目。 | |
| cpu | us | 用户进程所花费 CPU 时间的百分比 | us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序。 |
| sy | 内核进程所花费的cpu时间的百分比 | us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。 | |
| id | cpu处在空闲状态的时间百分比 | ||
| wa | IO等待消耗的CPU时间百分比 | wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。 |
2、显示活跃和非活跃内存
命令:vmstat -a 5 10

说明:
使用-a选项显示活跃和非活跃内存时,所显示的内容除增加inact和active外,其他显示内容与例子1相同。
字段说明:
Memory(内存):
inact: 非活跃内存大小(当使用-a选项时显示)
active: 活跃的内存大小(当使用-a选项时显示)
3、查看内存使用的详细信息
命令:vmstat -s

说明:
这些信息的分别来自于/proc/meminfo,/proc/stat和/proc/vmstat。
4、查看磁盘的读/写信息
命令:vmsat -d

说明:
这些信息主要来自于/proc/diskstats.
merged:表示一次来自于合并的写/读请求,一般系统会把多个连接/邻近的读/写请求合并到一起来操作。
5、查看某块磁盘分区的读/写信息
命令:df,vmstat -p xxx

说明:
这些信息主要来自于/proc/diskstats。
reads:来自于这个分区的读的次数。
read sectors:来自于这个分区的读扇区的次数。
writes:来自于这个分区的写的次数。
requested writes:来自于这个分区的写请求次数。
四、NetWork IO
1、UDP
对于UDP服务,查看所有监听的UDP端口的网络情况, 接收、发送缓冲区没有长时间等待处理的网络包;RecvQ、SendQ为0,或者没有长时间大于0的数值是比较正常的。
命令:watch netstat -lunp

对于UDP服务,查看丢包情况网卡收到了,但是应用层没有处理过来造成的丢包
命令:watch netstat -su

2、TCP
不会出现因为缓存不足而存在丢包的事,因为网络等其他原因,导致丢了包,协议层也会通过重传机制来保证丢的包到达对方。所以,tcp而言更多的专注重传率。
cat /proc/net/snmp | grep Tcp

由于本人经验有限,文章中难免会有错误,请浏览文章的您指正或有不同的观点共同探讨!
Linux性能检测命令 - vmstat的更多相关文章
- [Linux 性能检测工具]VMSTAT
VMSTAT NAME: Vmstat: 报告虚拟内存统计 语法 : vmstat [-a] [-n] [-t] [-S unit] [delay [ count]] ...
- Centos硬盘IO性能检测命令iostat[转]
Centos硬盘IO性能检测命令iostat[转] 在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching.这个问题,貌似有不少人在问,不过都 ...
- 20个常用Linux性能监控工具/命令
20个常用Linux性能监控工具/命令 对于 Linux/Unix 系统管理员非常有用的并且最常用的20个命令行系统监视工具.这些命令可以在所有版本的 Linux 下使用去监控和查找系统性能的实际原因 ...
- Linux性能检查命令总结[转]
一些常用的网络.IO.内存监控指令,Linux性能检查命令总结
- Linux性能相关命令
Linux性能相关命令 目录 Linux性能相关命令 1. 查看硬盘相关信息 2. 查看CPU相关信息 3. 查看内存相关信息 4. 查看进程运行的信息 1. 查看硬盘相关信息 cat /proc/s ...
- Linux性能评估命令
Linux性能评估工具 https://www.cnblogs.com/dianel/p/10085454.html Linux性能评估工具 目录 介绍 负载:uptime 查看内核的信息: dmes ...
- Linux性能分析命令工具汇总
转自:http://rdc.hundsun.com/portal/article/731.html?ref=myread 出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章. ...
- linux性能调试之vmstat
linux性能监控调优工具vmstat: vmstat:用于监控.显示系统运行过程中的虚拟内存/CPU/磁盘状态. 简单示例(时间间隔2s,监控2次): 重要字段解释: r 表示运行队列(等待运行的进 ...
- Linux 性能检测 - CentOS 安装 paramon
简介 paramon是一款性能检测工具. 数据发送:cnt 数据接收:svr Continue...
随机推荐
- Python pexpect出现错误‘module have no attribute "spawn" 解决办法
今天我遇到了这个错误,现在将错误总结如下: 1.首先查询一下自己的操作系统,pexpect中的spawn()和run()仅仅运行在POSIX系统上,在WINDOWS下是没有这两个东西的,在官网http ...
- Knockout : 实现复杂的web聊天窗体
公司以前一个同事写的这个聊天的窗体,由于是采用了html拼接的方式,外加处理的时候没有合理的划分职责,导致页面js代码量非常庞大(1500行左右).现在这哥们离职了,苦的是我们剩下的人,不多说,我先去 ...
- python小算法(二)
有两个序列a,b,大小都为n,序列元素的值任意整形数,无序: 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小.(华为面试) def diff(sorted_list ...
- 一:java概述:
1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒.PDA等的微处理器: 1994年将Oak语言更名为Java: Java的三种技术 ...
- 思维认知-读mindhacks杂记
1. 导语 无意中浏览知乎,搜索到了mindhacks.cn这个个人geek的网址.mindhacks博主本人是牛人程序员一枚,但他的博客主题涵盖的主要内容确是思维改变生活. 博客链接地址:http: ...
- 集成Spring后HibernateTemplate实现分页
spring 整合 hibernate 时候用的 HibernateTemplate 不支持分页,因此需要自己包装一个类进行分页,具体实现如下...使用spring的hibernateTemplate ...
- Careercup - Google面试题 - 5727310284062720
2014-05-06 14:04 题目链接 原题: given an 2D matrix M, is filled either using X or O, you need to find the ...
- android下的数据存储
android下数据存储的几种方式:(简单讨论) 1.文件 举例:登陆时“记住密码” 因为是基于Linux系统,直接建文件,文件会出现在项目工程:而手机登陆时,应该把文件放在手机里,通常数据放在dat ...
- 文件和文件夹同步工具AFiles 1.0 发布
文件和文件夹同步工具AFiles 1.0 正式发布了! 本软件支持按文件日期或长度的各种比较方式来同步文件或者文件夹. 支持双向同步功能. 支持深层文件夹功能. 可以自动产生比较和同步的记录情况. ...
- [转载]Sublime Text 3 搭建 React.js 开发环境
[转载]Sublime Text 3 搭建 React.js 开发环境 Sublime有很强的自定义功能,插件库很庞大,针对新语言插件更新很快,配合使用可以快速搭建适配语言的开发环境. 1. babe ...