자바머신에서는 일정시간이 지나면 GC(Grabage Collection)라는 작업을 해 준다. 개발자로서는 일일이 메모리를 해제하지 않아도 된다는 생각에 마음껏 오브젝트를 생성해서 사용하겠지만 이정도의 출렁임임을 안다면 경계해야 할 것이다. 그래프에서 보듯이 이 순간에 시스템의 성능이 현저히 떨어지는 현상을 경험하게 된다. (거의 50%로 떨어짐)
안정적인 거래가 보장되어야 하는 금융거래에서 이런 출렁임은 정말 끔찍한 경우가 될 것이다. JVM 을 띄울 때 heap memory를 충분히 잡아 준다하더라도 이런 출렁임의 시간간격을 줄일 수 있을 뿐이다. heap메모리가 적을 경우 이런 멈칫 하는 출렁임을 더 자주 경험하게 되는 것이다.
이런 GC 작동은 예측할 수 없는 순간에 갑자기 찾아온다는 것이 치명적이다. 실시간 대량 거래가 빈번한 증권, 은행, 카드 같은 시스템에서는 가슴이 철렁하는 순간이 될 것이다. 그래서 어느 JVM 이던지간에 기업용이라면 최소 2G 정도는 잡아 줘야 한다.
아래그림은 약30분 간 부하발생기로 부하를 집중 발생시켜서 시스템의 성능을 테스트해본 결과이다. 시험 중간에 GC가 한번 발생하였는데 그 순간의 그래프 모양을 덤프떴다.
'컴퓨터활용 > 자바' 카테고리의 다른 글
JEUSMain.xml 과 web.xml (0) | 2012.06.07 |
---|---|
ORA-00604 나 ORA-01000 오류가 날 때 (2) | 2012.05.29 |
java 문자열 처리 (0) | 2012.04.26 |
Transaction rolled back because it has been marked as rollback-only (0) | 2012.04.25 |
중복 로그인 방지 로직 (0) | 2012.04.22 |