프로덕션 환경에 배포 된 애플리케이션을 일부 메모리 누수로 인해 OutOfMemory
예외가 발생하는 경우가 있습니다. 그것은 우분투 상자에서 visualvm, jconsole 등을 원격으로 연결하지 않는 것을 선호하는 상자에서 실행됩니다. jvm
을 gc로 만들 수있는 방법이 있나요? (예를 들어 버튼을 클릭하기 만하면되는 visualvm에서와 같이).가비지 수집을 외부에서 수행하는 방법
나는 jmap -histo:live <pid>
을 실행하고이 gc 명령을 실행하여 gc에서 살아남은 개체를 찾습니다. 어느 개체 번호가 커지고 있는지 등. 예기치 않은 개체 수를 볼 수는 있지만 많은 도메인 개체에 걸쳐 일어나고 있으므로 지연된 gc인지 메모리 누수인지 확실하지 않습니다.
간단히 말해서, 나는 linux 명령이 jvm
pid에 대해 실행되어 gc를 수행하도록합니다. system.gc가 아닙니다.
[가능한 방법은 셸에서 가비지 수집을 강제로 수행 하시겠습니까?] (http://stackoverflow.com/questions/3523837/how-do-you-force-garbage-collection-from-the-shell) – NPE
메모리 누수로 메모리가 부족하면 gc를 실행해도 도움이되지 않습니다. gc가 "죽은"객체를 숨길 수 없기 때문에 메모리 누수가 발생합니다. 숨겨진 참조가 있기 때문입니다. – Jochen
예는 중복 된 것처럼 보입니다. 링크를 가져 주셔서 감사합니다. q를 검색/입력 할 때 나타나지 않습니다. – Abe