본문 바로가기

컨퍼런스

LINE DEVDAY 2014 - Java Tuning in Production - 신기빈

달리는 말 위에서 삽질하기
매달 15~20회 release 800+ servers
JVM 1.7 (11/7/28), 1.8 (14/5/18) 업그레이드 검토

JVM 업그레이드 그냥 올리면 안 되나?
내부 테스트 시에는 전혀 문제없었으나 결국 Production 레벨에서 발견되더라
Segmentation Fault 나더라… JVM 버그 .. patch upgrade .. patch upgrade … 기타 호환성 (netty 등) 버전 업그레이드 문제들 등장
결국 이제서야 안정화 되었고 어느 정도 minor/major GC의 효과는 보였다

오픈소스 업그레이드 그냥 올리면 안 되나?
오픈소스 마저도 heap dump 후에 linkedlist apache.common.pool2 등에서 통계수집 하는 메소드에서 GC 발생
결국 소스수정해서 해당 코드 적용 후 반영하여 쓰고 있음 minor 는 효과 보지만 여전히 major 문제는 있음
HProf 도구 활용 : JVMTI - heapTracker
promotion 되고 난 이후에도 gc 대상이 되는 놈들이 문제인데 그 놈들이 pool2 더라 - pool1 에서도 문제였고 pool2 에도 문제네
redis로 가는 connection이 3천이 넘는데 … 

계속된 릴리스에 따라 계속 올라가는 GC 메모리...
끝없는 창과 방패의 싸움이더라