봄싹 스웨거 4월 모임 메모
중구난방으로 정리한 지난 스터디 메모장..
------------------
jps
jstats
자바옵션으로 줄 수 있는 verbosegc
http://www.javaspecialists.eu/archive/Issue191.html
verbosegc로 찍은 로그 분석기, hp jmeter
jProfiler 추천함
String 처리가 성능에 미치는 영향 -> StringBuffer, StringBuilder
로깅이 성능에 미치는 영향 -> SLF4J
워크로그는 응답 처리 다 끝난 다음에 찍힌다.
웹 로그 분석 툴
Serial Collector는 주로 클라이언트 애플리케이션에서 사용.
G1은 JDK7에서 지원. JDK6에서도 early access로 사용 가능.
Serial Collector: mark-sweep-compact
Parallel Collector: young 영역을 paraller하게, old 영역은 mark-sweep-compact
Parallel Compacting: old 영역을 mark-summary-compaction
Concurrent Mark Sweep: old 영역을 CMS 사용. CPU 많이 먹음. 그리고 특정 조건에서 컴팩션이 발생하는데... 그게 m-s-c보다 더 오래 걸린다.
G1은 copy 방식이 아니라 move 방식이라 훨씬 빠르다.
GC 튜닝 방법
- 메모리 크기 선택
어떻게? 여러 서버에 각기 다른 메모리 크기 할당한 뒤, full GC 수행 시간과 빈도 측정.
- GC 방식 선택
- GC 옵션 선택
- VM 타입, Heap 크기, Young 크기와 비율(-XX:NewRatio 2나 3 해보자), Perm 크기, 쓰레드 크기(-Xss)
부하 생성: Grinder, JMeter
BTrace: 동적 모니터링 툴
http://kenai.com/projects/btrace/downloads/directory/releases/release-1.2
btrace pid 스크립트_이름
com.sun.tools.attach.VirtualMachine
http://www.j6a.ru/classcom_1_1sun_1_1tools_1_1attach_1_1_virtual_machine.html
Instrument
ASM
프로파일링 툴은 운영서버에서만 사용해야 한다. 그런데 BTrace는 특정 몇몇 클래스에만 적용해 볼 수 있다.
kill -3 스레드덤프