[Translated] Linux vmstat Command C Tool to Report Virtual Memory Statistics

This commit is contained in:
geekpi 2013-12-27 03:35:45 +00:00
parent cc8a18f548
commit 279462fcb0
2 changed files with 106 additions and 109 deletions

View File

@ -1,109 +0,0 @@
Translating----------------geekpi
Linux vmstat Command Tool to Report Virtual Memory Statistics
================================================================================
As we already know that computer must have memory which called RAM to make the computer works. RAM is refer to a physical memory that planted into the computer mainboard. This RAM is used to load applications such as browser, word processor and so on. So actually, programs that you are using are running on the memory.
Let say you have 2 GB of memory. When you are running an operating system, it may that your available memory is only 1,5 GB. Then you actively using a lot of applications. When the usage of the memory is full, you can load more applications anymore. In plain English, the computer may say “Sorry, you can not run more applications, please close some programs if you would like to run more applications”
To solve this problem, operating system including Linux use a method named Virtual Memory. This method will search the area of memory which not used recently by any applications, then copy it into computer harddisk. This can give some free memory area and give you chance to run more applications.
To monitor this virtual memory activities, we can use **vmstat** tool.
### What is vmstat ###
Vmstat is a tool that provide reporting virtual memory statistics. It covers systems memory, swap and processors utilizations in real time.
### How to run vmstat ###
Same with [mpstat][1], vmstat is included inside sysstat package. If you dont have it, please install sysstat package.
To run vmstat, just type vmstat in your console. Running vmstat without parameter will show you a default result of vmstat.
![](http://linoxide.com/wp-content/uploads/2013/12/vmstat_default.png)
Lets see how to read the information provided by vmstat :
### Procs ###
Procs have **r** column and **b** column. **r** columns means the total number of processes that waiting access fot the processor. While b column means the total no processes in a sleep state. Below those columns, there are values. From the above screenshot, we have 2 processes that waiting access to the processor and 0 for sleep processes.
### Memory ###
Memory have **swpd, free, buff** and **cache** columns. This information is the same with **free -m** command. The **swpd column** show you about how much memory has been swapped to a swap file or disk. The **free column** show you the unallocated memory available. **Buff column** means how much in use memory. And **cache column** show you about how much memory that can be swapped into swap file or disk if there are some application is needed by them.
### Swap ###
Swap show us how much memory is sent or retrieved from the swap system. The **si** column tell us how much memory is moved **from swap to real memory** per second. The so column tell us how much memory that is moved **from real memory to swap**.
### I/O ###
The **io** show us the amount of input and output activity per second in terms of blocks read and blocks written. The **bi** column tell us about the number of blocks received and the **bo** tell us about the number of blocks sent.
### System ###
System show us the number of system operations per second. The **in** column tell us about the number system interrupts per second. The **cs** column tell us the number of context switches that the system makes in order to process all tasks.
### CPU ###
CPU show us the use of CPUs resources. The **us column** tell us how much time that processor spends on non-kernel processes. The **sy column** tell us about how much time that processor spends on kernel related tasks. The **id column** tell us about how long the processor are idle. The **wa column** tell us how much time that the processor has been waiting for I/O operations to complete before being able to continue processing tasks.
### Using vmstat with delay ###
As a tool for statistics, the best way of using vmstat is using a **delay**. So you can capture the activity periodically. Let say we want to run vmstat with 5 second delay. Just type **vmstat 5** on your console to do it.
![](http://linoxide.com/wp-content/uploads/2013/12/vmstat_delay_5.png)
The command will run every 5 seconds **until** you press Ctrl-C to stop it.
You can use **count** to limit how many times vmstat will running.
![](http://linoxide.com/wp-content/uploads/2013/12/vmstat_count_7.png)
The above command will run **vmstat with 5 seconds delay for 7 times**.
### Show active and inactive memory ###
To do it, you can add **-a** parameter to vmstat. Heres a sample.
![](http://linoxide.com/wp-content/uploads/2013/12/vmstat_a.png)
### Show summarize disk statistics ###
vmstat can print your system disk statistics if you want. Use **-D** parameter to print it.
![](http://linoxide.com/wp-content/uploads/2013/12/vmstat_disk_sum.png)
### Show display unit ###
You can choose what unit character you want to print. Use **-S followed by k (1000), K (1024), m (1000000), M (1048576)** bytes. If you dont choose the unit, vmstat will use K (1024).
![](http://linoxide.com/wp-content/uploads/2013/12/vmstat_define_unit.png)
### Print detail statistics for specific partition ###
To do it, you can use **-p parameter followed by device name**. Heres an example of it.
![](http://linoxide.com/wp-content/uploads/2013/12/vmstat_partition.png)
### Files ###
vmstat is using these files to works.
/proc/meminfo
/proc/stat
/proc/*/stat
### Conclusion ###
If you feel your system is running out memory, before you add some physical memory, this tool can help you to determine the root cause of the problem. As usual, you can explore more detail about vmstat command by typing **man vmstat** on your console. It will bring you to vmstat manual page.
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-command/linux-vmstat-command-tool-report-virtual-memory-statistics/
译者:[译者ID](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://linoxide.com/linux-command/linux-mpstat-command/

View File

@ -0,0 +1,106 @@
Linux vmstat 命令 - 报告虚拟内存统计的工具
================================================================================
众所周知计算机必须有称之为RAM(随机访问内存)的存储器使得计算机工作。RAM指的是插在计算机主板上的物理存储。这里的RAM被用于加载像浏览器、文字处理器这类的程序、实际上你使用的程序都运行在内存上。
让我们假设你有2GB的内存。当你在运行操作系统时你的可用内存可能只有1.5GB。接着你使用了大量的程序。当内存使用满之后,你可能再也无法加载更多的程序。浅显地说,计算机可能会说:"抱歉,你不能在运行更多的程序了,如果你还要运行其他的程序请先关闭一些程序。"
为了解决这个问题操作系统包括Linux使用了一个方法称之为虚拟内存。这个方法会搜索最近不在使用的程序的内存区域接着将它们拷贝到计算机硬盘上。这会腾出一些剩余内存空间给你有机会运行更多的程序。
为了监视虚拟内存的活动,我们使用**vmstat**工具。
### 什么事 vmstat ###
vmstat是一个提供报告虚拟内存统计的工具。他/她覆盖了系统内存、交换和实时处理器利用率。
### 如何运行 vmstat ###
和[mpstat][1]一样vmstat包含在sysstat包中。如果你还没有请安装sysstat包。
为了运行vmstat只需在控制台输入vmstat。不带参数运行vmstat会显示vmstat的默认结果。
![](http://linoxide.com/wp-content/uploads/2013/12/vmstat_default.png)
让我们看下如何读取vmstat提供的信息
### Procs ###
procs有 **r**列和**b**列。**r**列代表等待访问CPU进程的数量。而b列意味着睡眠进程的数量。在这些列的下面是它们的值。从上面的截图中我门有2个进程正在等待访问CPU0个睡眠进程。
### Memory ###
memory有**swpd、 free、 buff** 和 **cache** 这些列.这些信息和命令**free -m**相同。**swpd列**显示了有多少内存已经被交换到了交换文件或者磁盘。**free列**显示了未分配的可用内存。**buff列**显示了使用中的内存。**cache列**显示了有多少内存可以被交换到交换文件或者磁盘上如果一些应用需要他们。
### Swap ###
swap显示了从交换系统上发送或取回了多少内存。**si**列告诉我们每秒有多少内存被**从swap移到真实内存**中。**so**列告诉我们每秒有多少内存被**从真实内存移到swap**中。
### I/O ###
**io**依据块的读写显示了每秒输入输出的活动。**bi**列告诉我们块收到的数量,**bo**列告诉我们块发送的数量。
### System ###
system显示了每秒的系统操作数量。**in**列显示了系统每秒被中断的数量。**cs**列显示了系统为了处理所以任务而上下文切换的数量。
### CPU ###
CPU告诉了我们CPU资源的使用情况。**us列**显示了处理器在非内核程序消耗的时间。**sy列**显示了处理器在内核相关任务上消耗的时间。**id列**显示了处理器的空闲时间。**wa列**显示了处理器在等待IO操作完成以继续处理任务上的时间。
### 代延迟使用vmstat ###
作为一个统计工具使用vmstat最好的方法是使用**延迟**。你可以间断地捕捉活动。让我假设以5秒的延迟使用vmstat。只需要在你的控制台中输入**vmstat 5**就行。
![](http://linoxide.com/wp-content/uploads/2013/12/vmstat_delay_5.png)
命令将会每5秒运行一次**直到**你按下Ctrl-C来终止它。你可以使用**count**来显示vmstat运行的次数。
![](http://linoxide.com/wp-content/uploads/2013/12/vmstat_count_7.png)
上面的命令会**以5秒的间隔运行7次vmstat**。
### 显示活跃和非活跃内存 ###
要这么做你可以在vmstat后加入**-a**选项。这是个示例。
![](http://linoxide.com/wp-content/uploads/2013/12/vmstat_a.png)
### 显示磁盘统计数据总结 ###
如果你想vmstat可以打印系统磁盘统计。使用**-D**选项就行。
![](http://linoxide.com/wp-content/uploads/2013/12/vmstat_disk_sum.png)
### 显示单位 ###
你可以选择你想打印的显示单位字符。在**-S后跟上k (1000)、 K (1024)、 m (1000000)、 M (1048576)** 字节. 如果你不想选择单位默认使用的是K (1024)。
![](http://linoxide.com/wp-content/uploads/2013/12/vmstat_define_unit.png)
### 为特定分区打印详细统计数据 ###
要这么做,你可以使用**-p选项跟上设备名**。这里有个例子。
![](http://linoxide.com/wp-content/uploads/2013/12/vmstat_partition.png)
### 文件 ###
vmstat使用这些文件工作。
/proc/meminfo
/proc/stat
/proc/*/stat
### 总结 ###
vmstat** on your console. It will bring you to vmstat manual page.
如果你感觉系统运行超出内存了,在你增加物理内存前,这个工具可以帮助你确定问题的根本原因。通常上,你可以在控制台中输入**man vmstat**获取更多的关于vmstat的详细信息。这会带你进入vmstat的手册页。
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-command/linux-vmstat-command-tool-report-virtual-memory-statistics/
译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://linoxide.com/linux-command/linux-mpstat-command/