2012. 11. 29. 09:59ㆍNOTE/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)
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 추가
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 |