JAVA GC 튜닝

2012. 11. 29. 09:59NOTE/IT

GC (Garbage Collection)

[출처] 자바 튜닝 (GC강좌)|작성자 영웅유민)  - 성능  

                     by 이상민

◇ USER

- Concurrent user : 시스템에 접속되어 있는 user

- Active User : 서버에 부하를 주고 있는 user

- Vuser :  보통 성능 테스트시 Virtual User 


◇  TIME @user

- Request Time | Response Time | Think Time | Request Time | Response Time

- Request Time :  Client | N/W Connect | Request Data send

- Response Time  : Server | Response data receive | N/W Close | Client


◇  Perfermance


- TPS : Transaction Per Seconds : 초당 처리량 : Request ~ Response Time 합한 시간


◇  GC

- GC 튜닝 목적 : TPS 증가, GC 수행 횟수 감소,  GC 수행 시간감소

- 자바의 메모리 영역

   . PC (program counter)

   . JVM Stack  (Thread 별 보유)

   . Heap  : 모든 클래서의 인스턴스와 배열 할당,   VM이 시작될때 생성되고 GC(Garbage collection)에 의해 관리됨

   . Method area

   . Native Method stack

   . 네이버 JAVA Virtual machine spec 을 검색 하면 나옴

      (http://docs.oracle.com/javase/specs/jvms/se7/html/index.html)

jvm memory

http://javapapers.com/core-java/java-jvm-memory-types/ 


- Heap 구성

   . Young (New) (EDEN, S0,S1) : 처음 생성 되는 영역

   . Tenured (Old) : 늙고, 덩치 큰 객체

   . Permanent (Perm) : 클래스와 메소드 정보

    



- 텍스트 기반의 모니터링 방법

  .jstat 사용법 (http://5dol.tistory.com/182)

     jstat -gcutile [pid] 1s     ( -gccapacity : 메모리 용량 확인 옵션)

    *  cmd - jps  (java process 확인)


  .verbosegc 사용법  (Was start 전 설정-option을 줘야 사용가능함)


  .jconsole (사장되고 있음)

  .jvisualvm

     > tools - Plugins - Available Plugins - VisualVM-MBeans, Visual GC 추가

Visualgc

     http://www.drdobbs.com/jvm/visualvm-for-java-development/229403052



- 기타 프로파일링 툴 (Commercial Tool)

  .JProbe

  .DevPartner

  .etc....




◇  JAVA 메모리를 생각하며 코딩하기

> String

   str += " asdfasfd"   이런 방식 보다는  ==>  더할때마다 기존거 냅두고 새로운거를 만들어 더할수록 garbage가 많이 생김

  - StringBuilder , StringBuffer   

  - StringBuilder .append("select ")   이런식으로 쓰라  ==> 기존 객체에 add 방식이라  garbage 발생안함


> Static

   


◇ GC 의 종류 및 설정 법

 > GC 종류 : Minor GC (Young 영역 ) 

                   Major GC (Old & Perm 영역)

 > Serial GC, Parallel GC




- GC 참고 사이트

http://blog.naver.com/salsu0/30000025219


'NOTE > IT' 카테고리의 다른 글

[오라클] 힌트 - Hint  (0) 2012.12.26
윈도우7 Quick Launch 만들기  (0) 2012.12.17
압축 프로그램 - 반디집  (0) 2012.11.27
JAVA 정리  (0) 2012.11.26
[UNIX] GREP 사용법  (0) 2012.10.25