에이전트 설정 튜닝
□ | CPU 부하를 줄이기 위한 에이전트 설정 튜닝 법 |
◆ | 커넥션릭 디텍션 및 자동 Close 기능 disable -> 기본값을 향후에는 false로 Release 예정 |
이기능이 활성화 되어 있으면, 커넥션 획득시마다 해당 스레드의 스택정보를 생성하게 되어 부하가 발생됨.
trace.jdbc.connection.leak.trace=false
trace.jdbc.connection.leak.auto.close=false
◆ | 트레이스 레벨 설정 ( 에이전트 버전이 2.5.0.25 이하만 해당 됨) |
트레이스를 얼만큼 할지를 결정하는 설정으로서 성능에 가장 영향을 많이 줌.
1. trace.max.length -> 트레이스를 몇개까지 추적할 것인지 설정, 200으로 설정시 이후 트레이스 대상은 모두 bypass함.
2. trace.truncate.threshold -> 트레이스시 설정된 응답시간 이하는 트레이스 과정에서 버리게 됨, CPU 자원은 사용하나, Heap메모리는 점유하지 않음.
- trace.max.length=100, trace.truncate.threshold=-1 설정시 : 응답시간에 상관없이 처음부터 100개까지만 트레이스함. -> 최대 트레이스는 100개
- trace.max.length=100, trace.truncate.threshold=10 설정시 : 응답시간이 10ms 이상인 트레이스를 100개 트레이스함 -> 최대 트레이스는 모름, 즉. 트레이스를 많이 할수 있음.
Elevisor Console Trace(text)로 보면 이렇게 정보가 표시됨.
-> Trace Info : Length=8 ( Total=142, Real=142, Truncated=134 ) ( Threshold=10, TraceLimit=100 ) ( Exception Trace=true )
※ 부하 테스트시 설정은 아래와 같이 권고, 단 트레이스는 일부만 됨( 성능데이터가 제데로 나오지 않음)
trace.max.length=10
trace.truncate.length=-1
◆ | 소켓통신/파일 I/O 정보 수집 기능 설정 |
아래 항목은 필요시에만 true로 설정, false로 설정시 trace에 정보가 안나옴.
trace.io.socket.enable=true
trace.io.file.enable=true
◆ | 자동 덤프 설정 |
부하 테스트시 액티브 서비스가 급증하기 때문에 아래의 덤프 설정 조건이 충족되어 덤프가 계속 발생될수 있음.
service.dump.enable=false
service.dump.thread.enable=false
◆ | SLC 기능 설정 |
부하 테스트시 slc 설정이 되어 있을경우 의도치 않게 Rediraction 페이지로 이동될수 있음.
service.slc.enable=false
// 1 : message, 2: redirect
service.slc.type=1
service.slc.redirect.message=시스템 사용자가 너무 많습니다. 잠시후에 접속하여 주세요.
service.slc.redirect.url=/busy.jsp
service.slc.active.service.limit=90
service.slc.uri.enable=false
service.slc.uri.names=/aa.jsp:10,/bb.jsp:20
◆ | Access로그 로깅 기능 설정 |
Access로그 로깅 기능 설정시 로깅에 부하가 발생될수 있음.
logging.accesslog.enable=false
◆ | 성능정보 로깅 기능 설정 |
Access로그 로깅 기능 설정시 로깅에 부하가 발생될수 있음.
logging.performancelog.enable=false
◆ | 스레드간 Lock 정보 수집 기능 설정 |
부하 테스트시 스레드간 Lock 정보 수집기능 비활성화 필요.
lock.monitor.enable=false
lock.monitor.interval=60
lock.monitor.dump.thread.enable=false
lock.monitor.dump.interval=120
□ | 트레이스 (Trace) 설정 튜닝 |
◆ | 트레이스 레벨 설정 |
Agent 버전이 2.5.0.25 이상 or 2.5.1.0 이상 경우
트레이스를 얼만큼 할지를 결정하는 설정으로서 성능에 가장 영향을 많이 줌.
1. trace.max.length -> 실제 트레이스를 최대 몇개까지 추적할 것인지 설정, 200으로 설정시 이후 트레이스 대상은 모두 bypass함.
2. trace. collect.length -> 실제 트레이스를 최대 몇개까지 수집 할것 인지 설정, 100으로 설정시 이후 트레이스 최대 100개 까지 수집에 모두 bypass함
3. trace.truncate.threshold -> 트레이스시 설정된 응답시간 이하는 트레이스 과정에서 버리게 됨, CPU 자원은 사용하나, Heap메모리는 점유하지 않음.
Elevisor Console Trace(text)로 보면 이렇게 정보가 표시됨.
※ 부하 테스트시 설정은 아래와 같이 권고, 단 트레이스는 일부만 됨( 성능데이터가 제데로 나오지 않음)
-> Trace Info : Length=8 ( Total=142, Real=142, Truncated=134 ) ( Threshold=10, TraceLimit=100 ) ( Exception Trace=true )
ex) 예제
1. trace 설정이 아래와 같을시 Elevisor 최대 수집 개수는 100개 까지 수집 했을 경우
trace.max.length=200
trace.collect.length=100 (default)
trace.truncate.length=-1
2. trace 설정이 아래와 같을시 Elevisor 최대 수집 개수는 100개 까지 수집 하고 trace 실행이 1ms 이상 수집 했을 경우
trace.max.length=200
trace.collect.length=100 (default)
trace.truncate.length= 1
3. trace 설정이 아래와 같을시 Elevisor 최대 수집 개수는 5개 까지 수집 하고 trace 실행이 1ms 이상 수집 했을 경우
trace.max.length=200
trace.collect.length=5
trace.truncate.length= 1