今天就跟大家聊聊有关如何使用vmstat命令确定内存使用情况,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
vmstat 命令总结了系统中所有进程使用的总活动虚拟内存,以及空闲列表上实内存页帧的数量。
活动的虚拟内存定义为虚拟内存中实际可以得到的工作段页面的数量。这个数字可能大于机器中的实际页帧数,因为一些活动的虚拟内存页可能已写出到调页空间中。
当确定系统内存是否短缺或者是否需要进行某种内存调整时,在设定的时间间隔内运行 vmstat 命令,并检查结果报告中的 pi 和 po 列。这两列表明了每秒调页空间页面调入的数量和每秒调页空间页面调出的数量。如果这些值经常为非零值,说明可能存在内存瓶颈。偶尔出现的非零值不用在意,因为页面调度是虚拟内存的主要原理。
# vmstat 2 10
kthr memory page faults cpu
----- ----------- ------------------------ ------------ -----------
r b avm fre re pi po fr sr cy in sy cs us sy id wa
1 3 113726 124 0 14 6 151 600 0 521 5533 816 23 13 7 57
0 3 113643 346 0 2 14 208 690 0 585 2201 866 16 9 2 73
0 3 113659 135 0 2 2 108 323 0 516 1563 797 25 7 2 66
0 2 113661 122 0 3 2 120 375 0 527 1622 871 13 7 2 79
0 3 113662 128 0 10 3 134 432 0 644 1434 948 22 7 4 67
1 5 113858 238 0 35 1 146 422 0 599 5103 903 40 16 0 44
0 3 113969 127 0 5 10 153 529 0 565 2006 823 19 8 3 70
0 3 113983 125 0 33 5 153 424 0 559 2165 921 25 8 4 63
0 3 113682 121 0 20 9 154 470 0 608 1569 1007 15 8 0 77
0 4 113701 124 0 3 29 228 635 0 674 1730 1086 18 9 0 73
在上述示例输出中,请注意输出中的较高的 I/O 等待率以及阻塞队列中的线程数。其他 I/O 活动可能会造成 I/O 等待,但是在这种特殊情况下,I/O 等待最大可能是由于与页面空间之间的页面调进调出造成的。
要察看系统的 VMM 是否有性能问题,请检查 memory 和 page 下的列:
确定系统的适当 RAM 数量的一种方法是查看 vmstat 命令报告的 avm 的最大值。将该数字乘以 4K 得到字节数,然后将其与系统的 RAM 字节数比较。理想情况下,avm 应该小于总 RAM。如果不是,可能会出现一些虚拟内存页面调度量。有多少页面调度发生取决于两个值之间的差值。记住,虚拟内存的概念是提供给我们寻址大于实内存容量的能力(一些在 RAM 内存中,而另一些在调页空间中)。但是如果虚拟内存远大于实内存,可能造成过度的页面调度,从而导致延时。如果 avm 小于 RAM,那么当 RAM 中填满文件页时就会引起调页空间的页面调度。这种情况下,调整 minperm、maxperm 和 maxclient 的值可以减少调页空间的页面调度量。
看完上述内容,你们对如何使用vmstat命令确定内存使用情况有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注天达云行业资讯频道,感谢大家的支持。