관리 메뉴

I LOVE EJ

JRun 4.0의 튜닝 관련 옵션 본문

Os & Server/Jrun

JRun 4.0의 튜닝 관련 옵션

BeOne 2007. 10. 15. 17:02

1. JVM의 튜닝

설정 파일 : <{jrun_dir}/bin/jvm.config>

java.args=-Xms32m -Xmx128m

-Xms : JRun에서 사용할 JVM의 최소 메모리
-Xmx : JRun에서 사용할 JVM의 최대 메모리

* 이 외에도 java 실행시 사용 가능한 옵션들을 모두 사용가능하므로, Sun의 JVM 관련 옵션을 이용한 더욱 섬세한 튜닝 가능.


2. Web Proxy 관련 옵션

설정파일 : <{server_dir}/SERVER-INF/jrun.xml>

  <service class="jrun.servlet.jrpp.JRunProxyService" name="ProxyService">
    <attribute name="activeHandlerThreads">100</attribute>
    <attribute name="backlog">500</attribute>
    <attribute name="maxHandlerThreads">1000</attribute>
    <attribute name="minHandlerThreads">1</attribute>
    <attribute name="threadWaitTimeout">20</attribute>
    <attribute name="timeout">300</attribute>
    ................
  </service>

  • backlog : backlog 크기.
  • activeHandlerThreads : 최대 사용가능 웹 Thread 수.
  • maxHandlerThreads : 최대 처리 가능 웹 Thread 수.
  • minHandlerThreads : 최소 처리 가능 웹 Thread 수.
  • threadWaitTimeout : 쓰레드 타임아웃 대기 시간.
  • timeout : response 타임아웃 시간.


3. Deploy 및 Compile, Session 관련 옵션

설정파일 : <{server_dir}/SERVER-INF/jrun.xml>

  <service class="jrun.deployment.DeployerService" name="DeployerService">
  .....
  </service>에
  <attribute name="hotDeploy">false</attribute>를 추가

* HotDeploy 기능을 disable 시키는 옵션으로, Hot deploy 기능은 서버 부하가 크므로 실제 서비스시에는 가급적 죽이는게 좋음.

설정파일 : <{server_dir}/default-ear/default-war/WEB-INF/jrun-web.xml>

  <reload>true</reload>
  <compile>true</compile>
  <session-config>
     <persistence-config>
        <active>false</active>
     </persistence-config>
     <replication-config>
       <active>false</active>
     </replication-config>
  </session-config>

  • compile : JSP 또는 Servlet, JSP Helper Class 등의 소스가 변경되었을 경우 자동 컴파일 여부
  • reload : JSP 또는 Servlet, JSP Helper Class 등의 클래스 파일이 변경되었을 경우 자동 재로드 여부

* 이 두 옵션이 enable(=true)로 되어있으면 매우 편리하지만, 그만큼 부하를 차지하게 되므로 운영중인 서비스의 프로그램 변경 사항이 거의 없을 경우에는 false로 설정하는 것이 퍼포먼스 측면에서는 유리. (그러나 껐을 경우에는 프로그램 변경시마다 JRun을 재시작해야 하므로 상당히 불편하고 서비스 지속성 측면에서 문제가 많으므로 이를 감안해야 함.)

  • <persistence-config>의 <active>속성 : 영속가능한 세션의 사용 여부. 가급적 false로 설정하는 것이 유리. (이 옵션을 켜면 Session 처리에도 부하가 많이 걸리고, JRun 정지 후 다시 시작해도 예전 Session을 복구하려고 하므로 부하가 큼)
  • <replication-config>의 <active> 속성 : JRun 클러스터 환경에서 세션의 복제 여부 설정. 클러스터 환경이 아니라면 당연히 false로 설정.


4. JDBC Connection Pool 관련 튜닝 옵션

설정파일 : <{server_dir}/SERVER-INF/jrun-resource.xml>

튜닝을 원하는 Data Source를 찾아 다음 옵션을 최적화.

  • disable-pooling : 커넥션풀 사용 여부 (true/false)
  • initial-connections : Data Source 생성시 풀에 할당될 커넥션 갯수 (숫자)
  • minimum-size : 풀이 유지할 최소한의 커넥션 갯수 (숫자)
  • maximum-size : 풀이 유지할 최대한의 커넥션 갯수 (숫자)
  • maximum-soft : maximum-size 초과시 Handle Load를 위하여 증가 가능한 최대 갯수 (숫자)
  • connection-timeout : 커넥션이 마지막으로 사용된 후 Timeout이 될 시간 (초)
  • user-timeout : 커넥션이 자동으로 풀로 반환되기전 사용자에게 유지되는 시간 (초)
  • skimmer-frequency : 커넥션풀에 관한 정리 작업 등 처리를 수행하는 주기 (초)
  • shrink-by : 풀의 skimmer 작업에 의해 감소될 커넥션 수 (숫자)
  • cache-enabled : SQL문과 그 ResultSet에 관한 캐쉬를 사용할지 여부 지정(true/false)
  • cache-size : 캐쉬에 보관할 ResultSet의 갯수를 지정
  • cache-refresh-interval : 캐쉬의 갱신 주기를 설정 (초)
  • remove-on-exceptions : SQL 처리중 예외가 발생했을때 해당 커넥션을 풀에서 다시 재사용할지의 여부 (true/false)
  • pool-statements : Pool에서 Statement 객체를 재사용할 것인지의 여부의 설정.