我需要从 vmstat 中获取内存使用率,但我不太明白 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 139728 45396 199128 1236360 1 2 4 622 3 1 51 4 43 2 0
Run Code Online (Sandbox Code Playgroud)
系统的总内存量是多少?是'swpd' + 'free' + 'buff' + 'cache',总共是1620612吗?
系统的可用内存量是多少?是否为 45396,如“免费”列中所示?
问题是它们不加起来,甚至看起来与“顶级”报告的内容不符。我与上面的 'vmstat's 几乎同时使用的 'top' 的输出是:
[...]
Mem: 4059616k total, 3965504k used, 94112k free, 200020k buffers
[...]
Run Code Online (Sandbox Code Playgroud)
所以......我假设'vmstat'中一定有我不知道的隐藏数字/选项?
为此,我需要使用 'vmstat' 而不是其他命令,因为这是要求的内容。
所以理想情况下,我想从 'vmstat' 实现的是内存使用百分比,如下所示:
<used_memory>/<total_memory> * …
Run Code Online (Sandbox Code Playgroud) 这些几乎都是新手提出的问题。(我已经查看了其他相关的问题和答案,但似乎没有一个完全回答我自己的原始问题。)
我需要在 Java 程序中远程检索、解析和报告 Linux 机器的 CPU 和内存使用情况。这些应该在两个单独的命令中完成,而不是一个,以将它们解耦,以便将来需要更改一个命令时更容易。
所以我的问题是:
最好,我的意思是命令的输出是:
谢谢!