vmstat如何考虑java堆?

vmstat如何考虑java堆?

我想问关于虚拟机状态

我在 Linux 内核(RHEL 7.3)之上运行 jvm 引擎,并且想知道哪个进程可以使用的实际内存。

我使用 vmstat 查看可用内存量,但我不确定报告是否包括java 堆提交字节数或者java 堆已使用字节数

下面是我使用的 vmstat 的示例。我的环境是

OS mem   : 4GB
JVM Heap : 2GB


[ywatanabe@localhost tmp]$ vmstat 1 3
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 771932   2108 546772    0    0    34    81  189  161  5  1 95  0  0
 0  0      0 771932   2108 546776    0    0     0     0   82  115  0  1 99  0  0
 0  0      0 771932   2108 546776    0    0     0     0   74  111  0  0 100  0  0

这是哪个自由的列排除?java 堆提交字节数或者java 堆已使用字节数

答案1

vmstatfree列报告的数量身体的内存(RAM),不包含系统使用或可用的任何内容,因此可以立即分配。

Java 堆已提交bytes 表示的数量虚拟的JVM 向操作系统请求的内存。

使用的 Java 堆bytes 表示的数量虚拟的包含实际数据(对象)的内存。

鉴于虚拟内存可能存在于 RAM、磁盘(文件或交换)或任何地方,您无法可靠地比较 RAM 和虚拟内存的使用情况。

相关内容