로컬 컴퓨터에서 Tomcat/Spring 서버를 실행하고 있으며 POST 요청을 서버에 차례로 빠르게 보내는 다른 프로그램을 실행하고 있습니다. 각 요청은 원격 Postgresql 데이터베이스에서 업데이트를 일으키고 다음 요청이 완료되기 전에 완료됩니다 (응답 코드 플러시).서버 오버로드 된
약 100 건의 요청 후에 서버는 응답하는 데 더 오래 걸리기 시작합니다. 약 200 요청 후, 서버가 응답을 멈추고 Eclipse 또는 Windows 작업 관리자에서 수동으로 죽일 때까지 사용 가능한 모든 처리를 수행합니다.
한순간 서버에서 가비지 수집에 대한 오류가 발생하지만 지난 몇 번 본적이 없습니다. 이 가비지 수집 오류를 보았을 때 가비지 수집 시간을 서버에 제공하기 위해 20 건의 요청을 5 초씩 추가했지만 도움이되지는 않습니다.
어떻게이 서버 과부하의 원인을 추적하고 해결할 수 있습니까?
메모리 누출이 있습니다. –
@ KarthikeyanVaithilingam- 그게 실제로 도움이되었고, 올바른 방향으로 나를 지적했다, 고마워. 지금은 http://stackoverflow.com/questions/40119/how-to-find-a-java-memory-leak를보고 있습니다 ... –
JVM Explorer 프로파일 링을 사용하여 생성 된 세션까지 문제를 추적했습니다. 각 요청,하지만 결코 처분. 관련 요청이 끝날 때마다 각 세션을 무효화함으로써 메모리 문제가 사라졌습니다. –