본문 바로가기

WAS/WebLogic

Self-Tuning

728x90
웹로직 9에서 새로 추가된 기능.
8.1 버전까지는 여러 개의 실행 큐를 기반으로 클라이언트 요청을 관리하고 실행하였다.
하지만 대부분 고객들은 애플리케이션 별로 실행 큐를 생성하지 않고 디폴트 큐인 
"weblogic.kernel.default" 이름을 가진 1개 실행큐를 통해 처리하였다.
 
이러한 디폴트 큐 또는 신규로 생성한 실행 큐는 시스템 부하정도와 처리량에 상관없이
설정 된 Executed Thread 갯수 값을 사용하였다.
 
실행 큐 마다 스레드 풀을 적절하게 설정하는 것이 쉽지 않으며,
최적의 Execute Thread 개수 값을 정하는 것이 쉽지 않았음
 
이러한 단점을 해결하기 위해 웹로직 서버 9버전 에서는 단일 스레드 풀인 
weblogic.kernel.default(self-tuning)을 사용한 처리량을 최적화하기 위해 
동적으로 스레드 풀의 크기를 조절한다.
 
조절 기준은 기존 경험치를 가지고 Execute Thread 수가 늘어나면 
처리량이 증가하는지 감소하는지를 판단하여 크기를 동적으로 결정하는 방식

 

 

WebLogic 상에서 스레드 값을 Self-Tuning 값이 아닌 고정값으로 주고 싶다면,

다음 두 가지 방법중 하나를 채택해서 사용하자

1) ${DOMAIN_HOME}/config/config.xml 수정

<server>
  <name>M1</name>
  <self-tuning-thread-pool-size-min>100</self-tuning-thread-pool-size-min>
  <self-tuning-thread-pool-size-max>200</self-tuning-thread-pool-size-max>
</server>


2) WebLogic 인스턴스 기동스크립에 JAVA_OPTIONS로 설정

-Dweblogic.threadpool.MinPoolSize=100
-Dweblogic.threadpool.MaxPoolSize=200