我想问关于vmstat的问题。
我在 linux 内核(RHEL 7.3)上运行 jvm 引擎,想知道进程可以使用的实际内存。
我使用 vmstat 查看可用内存的数量,但我不确定报告是否包括java heap commited bytes或java heap used bytes。
下面是我使用的 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 heap commited bytes还是java heap used bytes?
vmstat
free
列报告物理内存 (RAM) 的数量,其中不包含系统使用或可用的任何内容,因此可以立即分配。Java 堆提交字节表示JVM 已从操作系统请求的虚拟内存量。
Java heap used bytes 表示包含实际数据(对象)的虚拟内存量。
鉴于虚拟内存可能存在于 RAM、磁盘(文件或交换)或其他任何地方,您无法可靠地比较 RAM 和虚拟内存的使用情况。