일부 결정 모듈을 통해 파일 배치를 처리해야하는 Java 응용 프로그램을 실행 중입니다. 약 50 시간 동안 배치를 처리해야합니다. 내가 직면하고있는 문제는 프로세스가 약 1 시간 동안 정상적으로 실행 된 다음 유휴 상태가되기 시작한다는 것입니다. JVM을 한 시간 동안 실행 한 다음 종료하고 30 분 후에 JVM을 다시 시작하지만 두 번째 실행에는 거의 4-5 시간이 걸립니다. 1 시간 만에 첫 번째 달리기를하는 것. 어떤 도움이나 통찰력이라도 대단히 감사하겠습니다.jvm shutdown 후에도 메모리가 사용 중입니다. 어떻게 해 제합니까?
저는 64 비트 Windows r2 서버, 2 개의 인텔 쿼드 코어 프로세서 (2.53 GHz), 24 GB RAM에서 실행하고 있습니다. Java 버전은 1.6.0_22 (64 비트)이고 응용 프로그램에 할당 된 메모리는 힙 (16GB) 및 PermGen (2GB)입니다.
외부 모듈도 jvm에서 실행 중이며 종료 중입니다.하지만 시스템 종료 후에도 메모리를 계속 잡고 있다고 느낍니다. 내가 jvm을 사용하기 전에 RAM 사용량은 1GB입니다. 끝내면 약 3GB로 유지되는 경향이 있습니다. JAVA가 강제로 메모리를 해제하도록 요청할 수있는 방법이 있습니까?
자유로운 JVM 메모리를 다루는 OS라고 생각합니다. put을 통해 파일 IO를 확인 했습니까? 때로는 큰 파일 쓰기로 인해 유휴 상태 또는 느려집니다. 하드 디스크 공간에 큰 변화가 있습니까? 외부 모듈이란 무엇입니까? naitve 도서관? 응용 프로그램에서 멀티 스레딩을 사용합니까? 아마도 스레드 잠금? – gigadot