linux-tutorial/docs/linux/cli/vmstat.md
Zhang Peng 18d2a58725 update
2020-03-10 22:54:15 +08:00

96 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# vmstat
显示虚拟内存状态
## 补充说明
**vmstat 命令** 的含义为显示虚拟内存状态“Viryual Memor Statics”但是它可以报告关于进程、内存、I/O 等系统整体运行状态。
### 语法
```shell
vmstat(选项)(参数)
```
### 选项
```shell
-a显示活动内页
-f显示启动后创建的进程总数
-m显示slab信息
-n头信息仅显示一次
-s以表格方式显示事件计数器和内存状态
-d报告磁盘状态
-p显示指定的硬盘分区状态
-S输出信息的单位。
```
### 参数
- 事件间隔:状态信息刷新的时间间隔;
- 次数:显示报告的次数。
### 实例
```shell
vmstat 3
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 320 42188 167332 1534368 0 0 4 7 1 0 0 0 99 0 0
0 0 320 42188 167332 1534392 0 0 0 0 1002 39 0 0 100 0 0
0 0 320 42188 167336 1534392 0 0 0 19 1002 44 0 0 100 0 0
0 0 320 42188 167336 1534392 0 0 0 0 1002 41 0 0 100 0 0
0 0 320 42188 167336 1534392 0 0 0 0 1002 41 0 0 100 0 0
```
**字段说明:**
Procs进程
- r: 运行队列中进程数量,这个值也可以判断是否需要增加 CPU。长期大于 1
- b: 等待 IO 的进程数量。
Memory内存
- swpd: 使用虚拟内存大小,如果 swpd 的值不为 0但是 SISO 的值长期为 0这种情况不会影响系统性能。
- free: 空闲物理内存大小。
- buff: 用作缓冲的内存大小。
- cache: 用作缓存的内存大小,如果 cache 的值大的时候,说明 cache 处的文件数多,如果频繁访问到的文件都能被 cache 处,那么磁盘的读 IO bi 会非常小。
Swap
- si: 每秒从交换区写到内存的大小,由磁盘调入内存。
- so: 每秒写入交换区的内存大小,由内存调入磁盘。
注意:内存够用的时候,这 2 个值都是 0如果这 2 个值长期大于 0 时,系统性能会受到影响,磁盘 IO 和 CPU 资源都会被消耗。有些朋友看到空闲内存free很少的或接近于 0 时,就认为内存不够用了,不能光看这一点,还要结合 si 和 so如果 free 很少,但是 si 和 so 也很少(大多时候是 0那么不用担心系统性能这时不会受到影响的。
IO现在的 Linux 版本块的大小为 1kb
- bi: 每秒读取的块数
- bo: 每秒写入的块数
注意:随机磁盘读写的时候,这 2 个值越大(如超出 1024k),能看到 CPU 在 IO 等待的值也会越大。
system系统
- in: 每秒中断数,包括时钟中断。
- cs: 每秒上下文切换数。
注意:上面 2 个值越大,会看到由内核消耗的 CPU 时间会越大。
CPU以百分比表示
- us: 用户进程执行时间百分比(user time)
us 的值比较高时,说明用户进程消耗的 CPU 时间多,但是如果长期超 50%的使用,那么我们就该考虑优化程序算法或者进行加速。
- sy: 内核系统进程执行时间百分比(system time)
sy 的值高时,说明系统内核消耗的 CPU 资源多,这并不是良性表现,我们应该检查原因。
- wa: IO 等待时间百分比
wa 的值高时,说明 IO 等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。
- id: 空闲时间百分比