From 73b8e5d3a1bcc4bd9445bd4606829383e94690e0 Mon Sep 17 00:00:00 2001 From: wxy Date: Mon, 30 Jan 2017 11:17:58 +0800 Subject: [PATCH] =?UTF-8?q?PRF:20170120=20vmstat=20=E2=80=93=20A=20Standar?= =?UTF-8?q?d=20Nifty=20Tool=20to=20Report=20Virtual=20Memory=20Statistics?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @geekpi --- ... Tool to Report Virtual Memory Statistics.md | 108 +++++++++--------- 1 file changed, 53 insertions(+), 55 deletions(-) diff --git a/translated/tech/20170120 vmstat – A Standard Nifty Tool to Report Virtual Memory Statistics.md b/translated/tech/20170120 vmstat – A Standard Nifty Tool to Report Virtual Memory Statistics.md index 6363604083..2eabbface1 100644 --- a/translated/tech/20170120 vmstat – A Standard Nifty Tool to Report Virtual Memory Statistics.md +++ b/translated/tech/20170120 vmstat – A Standard Nifty Tool to Report Virtual Memory Statistics.md @@ -1,29 +1,27 @@ -vmstat - 一个标准的报告虚拟内存统计工具 +vmstat:一个标准的报告虚拟内存统计工具 ============================================================ -#### 什么是 RAM? +### 什么是 RAM? -因为我们在智能手机世界,所以我们都知道 RAM。因此,我不想深入,即使这样我会简要概括下。RAM 代表`随机访问内存`(Random Access Memory,是一种计算机存储,它会存储经常使用的程序来提升系统性能。 +在智能手机世界,我们每一个人都知道 RAM。因此,我不想深入介绍,这样我就简要概括下。RAM 代表“随机访问内存”(Random Access Memory),是一种计算机数据存储,它会存储经常使用的程序来提升系统性能。 -#### 什么是虚拟内存? +### 什么是虚拟内存? -虚拟内存是一种通过临时将最近未使用的程序数据从 RAM 转移到硬盘,允许计算机平衡/管理内存短缺的内存管理方式。 +虚拟内存是一种内存管理方式,计算机通过临时将最近未使用的程序数据从 RAM 转移到硬盘,以平衡或管理内存的短缺。 -#### 什么是 vmstat? +### 什么是 vmstat? -vmstat 是一个标准的工具,它会报告 Linux 系统的虚拟内存统计。vmstat 报告有关进程、内存、分页、块IO、陷阱和 cpu 活动的信息。它帮助 Linux 管理员在解决问题时识别系统瓶颈。 +vmstat 是一个标准的工具,它会报告 Linux 系统的虚拟内存统计。vmstat 会报告有关进程、内存、分页、块 IO、陷阱(中断)和 cpu 活动的信息。它可以帮助 Linux 管理员在解决问题时识别系统瓶颈。 -#### 在 Linux 中安装 Sysstat +### 在 Linux 中安装 Sysstat Linux 中没有独立的 `vmstat` 包。它与 `sysstat` 绑定在一起,并在大多数发行版的默认仓库上都有。如果还没有安装,只要基于你的发行版输入下面的命令。 -[SAR 命令用法][5] - ``` [在 CentOS/RHEL 中安装 vmstat] $ sudo yum install sysstat -[Install vmstat on Fedora] +[在 Fedora 中安装 vmstat] $ sudo dnf install sysstat [在 Debian/Ubuntu 中安装 vmstat] @@ -39,9 +37,9 @@ $ sudo urpmi sysstat $ sudo zypper install sysstat ``` -#### 不带参数运行 vmstat +### 不带参数运行 vmstat -假设你已经成功安装 vmstat,接着在终端中不带参数运行 `vmstat`,它会想你展示 vmstat 的默认结果。 +假设你已经成功安装 vmstat,在终端中不带参数运行 `vmstat`,它会向你展示 vmstat 的默认结果。 ``` # vmstat @@ -50,48 +48,48 @@ procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- 2 0 79496 1614120 139240 787928 0 0 23 10 0 0 11 1 88 0 ``` -当你看到上面的输出,你可能已经知道一些意思和目的。不要担心,我们将深入解释每个参数,以便你可以了解 vmstat 的用途和目的。 +当你看到上面的输出,你可能已经大致了解了它是什么以及它的目的。不要担心,我们将深入解释每个参数,以便你可以了解 vmstat 的用途和目的。 -procs:procs 中有 `r 和 b` 列,它报告进程统计信息。在上面的输出中,在运行队列中有两个进程在等待CPU并有零个休眠进程。通常,它不应该超过处理器(或核心)的数量,如果你发现异常,最好使用[top命令][1]进一步地排除故障。 +`procs`:procs 中有 `r` 和 `b` 列,它报告进程统计信息。在上面的输出中,在运行队列(`r`)中有两个进程在等待 CPU 并有零个休眠进程(`b`)。通常,它不应该超过处理器(或核心)的数量,如果你发现异常,最好使用 [top 命令][1]进一步地排除故障。 -* r:等待运行时的进程数。 -* b:休眠状态下的进程数。 +* `r`:等待运行的进程数。 +* `b`:休眠状态下的进程数。 -memory: memory 下有 `swpd`、`free`、`buff` 和 `cache` 列内存报告统计。你可以用 free -m 命令获取相同的功能。在上面的内存统计中,统计数据以千字节表示,这有点难以理解,最好添加 `M` 参数来获得以兆字节为单位的统计数据。 +`memory`: memory 下有报告内存统计的 `swpd`、`free`、`buff` 和 `cache` 列。你可以用 `free -m` 命令看到同样的信息。在上面的内存统计中,统计数据以千字节表示,这有点难以理解,最好添加 `M` 参数来看到以兆字节为单位的统计数据。 -* swpd:使用的虚拟内存量。 -* free:空闲内存量。 -* buff:用作缓冲区的内存量。 -* cache:用作缓存的内存量。 -* inact:非活动内存的数量。 -* active:活动内存量。 +* `swpd`:使用的虚拟内存量。 +* `free`:空闲内存量。 +* `buff`:用作缓冲区的内存量。 +* `cache`:用作高速缓存的内存量。 +* `inact`:非活动内存的数量。 +* `active`:活动内存量。 -swap:swap 有 `si` 和 `so` 列,报告交换内存统计信息。你可以看到用 free -m 命令看到相同的信息。 +`swap`:swap 有 `si` 和 `so` 列,用于报告交换内存统计信息。你可以用 `free -m` 命令看到相同的信息。 -* si:从磁盘交换的内存量(从 swap 移到实际内存的内存)。 -* so:交换到磁盘的内存量(从实际内存移动到 swap 的内存)。 +* `si`:从磁盘交换的内存量(换入,从 swap 移到实际内存的内存)。 +* `so`:交换到磁盘的内存量(换出,从实际内存移动到 swap 的内存)。 -I/O:I/O 有 `bi` 和 `bo` 列,它以块读取和块写入报告每秒磁盘读取和写入的统计信息。如果你发现有巨大的 I/O读写,最好使用 [iotop][2] 和 [iostat][3] 命令来查看。 +`I/O`:I/O 有 `bi` 和 `bo` 列,它以“块读取”和“块写入”的单位来报告每秒磁盘读取和写入的块的统计信息。如果你发现有巨大的 I/O 读写,最好使用 [iotop][2] 和 [iostat][3] 命令来查看。 -* bi:从块设备接收的块数。 -* bo:发送到块设备的块数。 +* `bi`:从块设备接收的块数。 +* `bo`:发送到块设备的块数。 -system:system 有 `in` 和 `cs` 列,它报告每秒的系统操作。如果你发现巨大的 I/O 读写,最好使用 iotop 和 iostat 命令。 +`system`:system 有 `in` 和 `cs` 列,它报告每秒的系统操作。 -* in:每秒的系统中断数,包括时钟。 -* cs:发送到块设备的块数。 +* `in`:每秒的系统中断数,包括时钟中断。 +* `cs`:发送到块设备的块数。 -CPU:CPU 有 `cs`、`us`、`sy`、`id` 和 `wa` 列,报告 CPU 资源占总 CPU 时间的百分比。如果你发现异常,最好使用 top 和 free 命令。 +`CPU`:CPU 有 `cs`、`us`、`sy`、`id` 和 `wa` 列,报告(所用的) CPU 资源占总 CPU 时间的百分比。如果你发现异常,最好使用 `top` 和 `free` 命令。 -* cs:每秒的系统中断数,包括时钟。 -* us:发送到块设备的块数。 -* sy:用作高速缓存的内存量。 -* id:非活动内存量。 -* wa:活动内存量。 +* `cs`:每秒的系统中断数,包括时钟。 +* `us`:发送到块设备的块数。 +* `sy`:用作高速缓存的内存量。 +* `id`:非活动内存量。 +* `wa`:活动内存量。 -#### 以 MB 方式输出 +### 以 MB 方式输出 -默认情况下,vmstat 以千字节为单位显示内存统计,这是非常难以理解的,最好添加 `-S 和 `m` 参数以获取以兆字节为单位的统计。 +默认情况下,vmstat 以千字节为单位显示内存统计,这是非常难以理解的,最好添加 `-S m` 参数以获取以兆字节为单位的统计。 ``` # vmstat -S m @@ -100,9 +98,9 @@ procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- 1 0 103 371 406 2116 0 0 40 15 0 0 11 1 87 0 ``` -#### 延迟运行 vmstat 获取更好的统计信息 +### 以延迟方式运行 vmstat 获取更好的统计信息 -默认情况下,vmstat 的单次统计信息不足以进一步进行故障排除,因此,添加延迟(延迟是更新之间的延迟(以秒为单位))以定期捕获活动。如果你想以 2 秒延迟运行 vmstat ,只需使用下面的命令(如果你想要更多的延迟,你可以根据你的愿望改变)。 +默认情况下,vmstat 的单次统计信息不足以进一步进行故障排除,因此,添加更新延迟(延迟是更新之间的延迟,以秒为单位)以定期捕获活动。如果你想以 2 秒延迟运行 vmstat ,只需使用下面的命令(如果你想要更长的延迟,你可以根据你的愿望改变)。 以下命令将每 2 秒运行一次,直到退出。 @@ -121,7 +119,7 @@ procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- 0 0 105500 365224 416060 2166996 0 0 1 19 984 1097 11 1 88 0 ``` -#### 带延迟和计数运行 vmstat +### 带延迟和计数运行 vmstat 或者,你可以带延迟和特定计数运行 vmstat,一旦达到给定的计数,然后自动退出。 @@ -143,9 +141,9 @@ procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- 1 0 79496 1583612 157400 810444 0 0 7 39 2001 2530 20 2 77 0 ``` -#### 显示活动和非活动内存 +### 显示活动和非活动内存 -默认情况下,vmstat 显示除活动和非活动内存之外的内存统计信息。如果要查看活动和非活动内存统计信息,请在 vmstat 后添加 `-a` 参数。 +默认情况下,vmstat 会显示除活动和非活动内存之外的内存统计信息。如果要查看活动和非活动内存统计信息,请在 vmstat 后添加 `-a` 参数。 ``` # vmstat -a @@ -154,9 +152,9 @@ procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- 1 0 105500 2387592 415148 584112 0 0 40 15 0 1 11 1 87 0 ``` -#### 打印磁盘统计 +### 打印磁盘统计 -在 vmstat 后面添加 `-d` 参数会以独立的行显示磁盘统计(包含读、写和 IO)。 +在 vmstat 后面添加 `-d` 参数会以每个磁盘一行的方式显示统计(包含读、写和 IO)。 ``` # vmstat -d @@ -191,7 +189,7 @@ sda 16604050 904497 2594882190 57455732 30037054 28093770 2160032056 118189160 sdb 257357577 479985 3124712204 577235320 8502519 1283237 36645890 11250948 0 182336 ``` -#### 总结磁盘统计 +### 总结磁盘统计 在 vmstat 后面添加 `-D` 会显示全局统计(包括全部的磁盘、分区、全部读、合并的读、读取的扇区、写、合并的写、写入的扇区和 IO)。 @@ -211,7 +209,7 @@ sdb 257357577 479985 3124712204 577235320 8502519 1283237 36645890 11250948 224704 milli spent IO ``` -#### 打印特定分区统计 +### 打印指定分区统计 vmstat 添加 `-p` 参数后面跟上设备名会显示指定分区统计(包括读、读取的扇区、写以及请求的写)。 @@ -221,7 +219,7 @@ sdb1 reads read sectors writes requested writes 3115 27890 839453 206728016 ``` -#### vmstat 统计信息带上时间戳 +### vmstat 统计信息带上时间戳 当你想在特定时间区间内找到内存尖峰时,用 vmstat 命令添加 `-t` 参数,后跟延迟和计数。 @@ -238,7 +236,7 @@ procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- 0 0 0 6982280 181324 24588604 0 0 0 0 113 185 0 0 100 0 0 2017-01-11 15:42:19 MST ``` -#### 打印更多统计 +### 打印更多统计 vmstat 后面跟上 `-s` 参数会显示不同统计的总结。 @@ -272,7 +270,7 @@ vmstat 后面跟上 `-s` 参数会显示不同统计的总结。 2196121 forks ``` -#### 打印 slab 统计 +### 打印 slab 统计 vmstat 后面跟上 `-m` 参数会显示 slab 信息。 @@ -301,7 +299,7 @@ ext4_xattr 0 0 88 44 . ``` -#### 阅读更多关于 vmstat +### 阅读更多关于 vmstat 如果你想了解关于 vmstat 的更多选项,请阅读手册。 @@ -325,7 +323,7 @@ via: http://www.2daygeek.com/linux-vmstat-command-examples-tool-report-virtual-m 作者:[Magesh Maruthamuthu][a] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出