둘러보기 생략.
 

성능저하 원인 분석결과 SQLLoader$Watcher.run(SQLLoader.java:519(Compiled Code)) 가 CPU자원을 모두 소모하고 있음.

안녕하세요.

현재 환견은
AIX 5.3 TL09SP4
WebLogic Oracle WebLogic Server 10g R3 (10.3.0.0)
Apache Server version: Apache/2.2.14 (Unix)
DB Oracle 11gR1 (11.1.0.7)
anyframe common 3.2.1,query 3.3.0-snapshot

의 환경에서, Client의 요청이없는데도, weblogic 서버가 CPU자원을 30~40%씩 차지 하고 있습니다.
원인을 파악 해 보니.

3XMTHREADINFO "Thread-21" TID:0x0000000119BD7400, j9thread_t:0x0000000119302E20, state:CW, prio=1
3XMTHREADINFO1 (native thread ID:0x3D0045, native priority:0x1, native policy:UNKNOWN)
4XESTACKTRACE at anyframe/core/query/impl/config/loader/SQLLoader$Watcher.run(SQLLoader.java:519(Compiled Code))
.............
3XMTHREADINFO "Thread-18" TID:0x0000000119369900, j9thread_t:0x0000000119302420, state:CW, prio=1
3XMTHREADINFO1 (native thread ID:0x9D0C5, native priority:0x1, native policy:UNKNOWN)
4XESTACKTRACE at java/lang/Thread.sleep(Native Method)
4XESTACKTRACE at java/lang/Thread.sleep(Thread.java:850(Compiled Code))
4XESTACKTRACE at anyframe/core/query/impl/config/loader/SQLLoader$Watcher.run(SQLLoader.java:490(Compiled Code))

에서 Thread들이 사용중인 CPU자원의 95%를 독차지 하고 있습니다.

SQLLoader$Watcher 가 하는 것이 무엇인가요?

확인 부탁 드립니다.

그리고, 대처방안은 무엇인가요?

request가 없는 상태에서 프로파일링을 하면는

request가 없는 상태에서 프로파일링을 하면는 SQLLoader$Watcher가 모든 자원을 사용하고 있는 것으로 보입니다. 이유는 이 스레드가 계속해서 sql 변경이 있는지 검사를 하여 변경이 있으면 새로 sql을 로드하여 반영하기때문입니다. 즉 위 건은 sql변경을 실시간으로 반영하기 위해서 동작되는 스레드입니다. 실제 request를 대량으로 발생시키면, 위 영역이 점유하고 있는 자원은 상대적으로 줄어들게 되며 성능과는 연관이 없는 사항입니다.

위 기능을 사용하고 싶지 않은 경우에는 다음과 같이 설정하시기 바랍니다.

<bean id="sqlLoader" class="anyframe.core.query.impl.config.loader.SQLLoader">
  <config:configuration>
        중략...
    <nullcheck type="VARCHAR" default-value="" />
    <sqlload dynamic="false" frequency="5" />
    <skiperror>true</skiperror>
  </config:configuration>
</bean>  

위 샘플은 Anyframe 4.0 매뉴얼(http://dev.anyframejava.org/docs/anyframe/4.0.0/reference/htmlsingle/any...)의 53.1.5.Samples을 참고하시면 됩니다.

또한 이 설정에 대한 자세한 내용은 다음의 링크를 참조하시기 바랍니다.
(http://dev.anyframejava.org/docs/anyframe/4.0.0/reference/htmlsingle/any...)