Java 응용 프로그램을 실행중인 Linux 컴퓨터가 있습니다. 나는 이러한 매개 변수를 사용하여 jvm을 실행 중입니다. -Xmx27231m -Xms27231mJVM maxHeapSize 및 InitialHeapSize가 htop에 반영되지 않습니다.
그러나 htop/top을 볼 때. 전반적인 시스템 및 프로세스에서 구체적으로 볼 수있는 것은 jvm이 실제로 27GB의 힙을 예약하지 않는다는 것입니다. 내가 대신 참조입니다 VIRT : 32.8G RES : 15.3G SHR : 16,536 내 모든 다른 자극/품질 보증/dev에 기계에서
는 RES가 힙로 정확한 금액 (어쩌면 조금 더) 반영 size JVM에 나를 예약 해달라고 요청하고 있습니다. 그러나 한 특정 시스템의 경우에는 그렇지 않습니다. 왜 이런 일이 일어나고 있는지 알 수 없습니다.
Java Mission Control을 해당 프로세스에 연결했는데 InitialHeapSize 및 MaxHeapSize가 실제로 올바른 값을 갖지만 유형은 CommandLine이 아니라 인체 공학적으로 표시됩니다. 그게 무슨 뜻인지 정말 모르겠다.
누구나? 감사합니다.
메모리를 할당했지만 사용하지 않는 경우, 특히 메모리 경합이있는 경우 해당 메모리가 모두 상주 할 필요는 없습니다. 'Virt : 32.8G'는 메모리가 모두 있다는 것을 나타냅니다. 모든 메모리가 스왑되지는 않습니다. –
스왑 된 것을 의미합니까? 내가 가지고있는 모든 머신에서, 내가 힙에 대해 설정 한 메모리의 양은 RES가 얼마나 많이 나타나는지입니다. 나는이 기계를 사용하고 있습니다. 많은 할당이 있습니다. –
RES는 "거주자"입니다. 메모리 경합이 있으면 현재 액세스하지 않는 메모리 중 일부를 디스크로 스왑 할 수 있습니다. 이것은 스왑 공간의 전체 지점입니다. 그 시스템에서 다른 무엇이 실행되고 있습니까? 그 외에는 메모리 집약적 인 것이 있습니까? –