나는에 대해 물어보고 싶다가상 머신 상태.
저는 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
vmstat 열 free
에서 보고된 숫자물리적메모리(RAM)는 시스템에서 사용되거나 사용 가능한 어떤 것도 포함하지 않으므로 즉시 할당할 수 있습니다.
Java 힙 커밋됨바이트로 표시되는 수량가상운영 체제에서 JVM이 요청한 메모리입니다.
사용된 Java 힙바이트로 표시되는 수량가상실제 데이터(객체)를 포함하는 메모리입니다.
가상 메모리가 RAM, 디스크(파일 또는 스왑) 또는 어디에나 존재할 수 있다는 점을 고려하면 RAM과 가상 메모리 사용량을 안정적으로 비교할 수 없습니다.