![无需重新启动即可重置 vmstat 统计信息](https://linux22.com/image/101256/%E6%97%A0%E9%9C%80%E9%87%8D%E6%96%B0%E5%90%AF%E5%8A%A8%E5%8D%B3%E5%8F%AF%E9%87%8D%E7%BD%AE%20vmstat%20%E7%BB%9F%E8%AE%A1%E4%BF%A1%E6%81%AF.png)
运行vmstat
将为您提供自上次重新启动以来的平均虚拟内存使用情况。和si
值so
给出平均虚拟内存 I/O。例如:
root@mymachine# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 304 300236 244940 967828 0 0 0 1 2 1 0 0 100 0 0
正如 Ijaz Khan 回答的那样,我可以知道我想跑多少次vmstat
,以及之间的增量。这在某些情况下很有用(+1),但我不想继续vmstat
运行。
我希望能够收集数据,然后重置计数器,以便我可以将其保留一段时间,然后回来获取从重置计数器到下次检查时的平均值 - 而不是自上次启动以来。那可能吗?
答案1
内存信息没有被平均;vmstat
显示瞬时内存信息,如 中提供的/proc/meminfo
。因此,您可以使用内存信息,而vmstat
不必担心自上次启动以来的变化。
自启动以来累积的值涉及CPU使用率、中断和上下文切换、换入/换出和页面换入/换出;这些永远不会重置。如果您希望能够计算自己的增量,您可以/proc/stat
从中读取原始值。/proc/vmstat
例如,si
来自、来自。pswpin
/proc/vmstat
bi
pgpgin
/proc/vmstat
答案2
考虑以下输出:
$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 3532 148760 50700 1397880 0 0 1 2 6 6 3 1 97 0
此数据提供自上次重新引导以来虚拟内存和系统使用情况的平均视图。通常,使用以下形式的命令:
vmstat [interval] [count]
在此示例中,第一行数据将提供自上次启动时间以来的平均值(您可以将其丢弃)。
后续报道, 直到[数数]达到(将停止 vmstat),每隔一段时间报告系统当前状态的数据[间隔]秒。