Loading...
 
Print

WebLogic Server의 Diagnostics 파일에 대한 제약


WebLogic? Server는 내부적으로 .DAT 파일에 로그 내용을 저장하고 있다. 여기에 담기는 로그 내용들은 웹로직 서버의 정보와 서버에 배포된 응용 프로그램들의 리소스에 대한 정보들를 담고 있다. 그리고 .DAT 파일의 위치는 $DOMAIN_HOME/servers/$SERVER_NAME/data/store 디렉토리에 존재한다. 여기에는 default, diagnostics 라는 디렉토리가 있으며, 이들 디렉토리에 해당 파일이 존재한다.

default 디렉토리
default 디렉토리는 Administration 서버를 포함한 각각의 Server Instance는 기본적으로 파일 기반의 저장 공간을 가지게 되는데 따로 환경 설정을 할 수 있지는 않다. 즉, default 디렉토리에 해당 Server Instance에 해당하는 .DAT 파일이 없다면 WebLogic? Server는 파일을 새롭게 생성을 한다.

이와는 다르게 WLDF는 주기적으로 화일을 지우거나 분리 저장을 할 수 있도록 설정 옵션을 제공한다. 이 옵션이 preferred-store-size-limit와 store-size-check-period이다. 그러나 WLDF 기능을 사용하지 않는다면 이에 대한 고민은 필요없다. 왜냐하면 WLDF가 Disable인 경우에는 위의 옵션을 사용한다 할지라도 WLDF는 그 어떠한 기록도 남기지 않기 때문이다.
diagnostics 디렉토리
diagnostics 디렉토리는 WebLogic? Server가 내부적인 동작으로 생성되는 진단 로그들이며, 아래의 콤포넌트들에 의해서 생성된다.
  • Connection pool profiling (DB Connection Leak을 확인할 경우 사용)
  • WebLogic Workshop instrumentation (디버깅을 할 경우 사용)
즉, 이들에 의해서 생성된 진단 로그들은 삭제하지 않는 이상 절대 사라지지 않는다.

Close
noteWebLogic Diagnostic Framework (WLDF)
WLDF는 WebLogic? Server가 extention으로 제공하고 있는 WebLogic? Server에 대한 진단 컴폼넌트이며, WLDF는 Managed Server 및 배포된 Application들에 대한 모든 데이터 이벤트, 로그들에 대한 기록, 수집 대상 항목들을 영원히 저장하고 있다. WLDF에서는 어떤 Metric을 수집하고 저장할지를 취사 선택할 수 있으며, 또한 이들 기록들을 보관하고 저장 방식과 그 크기를 정의할 수 있다. WLDF가 진단 데이터를 파일 형태로 archive하도록 설정하면 이 파일들은 diagnostics 디렉토리에 저장된다.

WLDF의 컴포넌트는 $WLS_HOME/server/lib/console-ext/diagnostics-console-extension.jar이다.



진단 로그 사이즈가 증가하면 생길 수 있는 현상들

비록 WLDF를 설정하지 않았다 하더라도 진단로그 파일은 Connection Pool Profiling, WebLogic? Workload 등에 의해서 지속적으로 증가할 수 있다. 그리고 이 진단 로그의 파일 크기가 커지게 되면 다음과 같은 현상이 발생할 수 있다.

  • WebLogic? Server는 기동하는 시점에 OutOfMemoryError가? 발생하면서 Crash되는 경우에는 재기동하는 시점에서 기동 시간이 오래 지속될 수 있다. 이는 재기동하면서 Crash된 원인을 추적하고자 진단 로그를 로딩할 수 있는데, 이때 이 파일이 매우 크다면 (예: 수 Gigabyes급), WebLogic? Server는 그만큼 기동하는데 있어 시간이 요구되어진다.



진단 로그가 더이상 생성되지 않게 하려면

WebLogic? Server가 운영중에 어떤 특정한 문제가 발생하면 해당 내용에 대해서 진단해야 함은 불가피하다. 따라서 진단 로그를 아예 생성하지 못하도록 하는것은 안정화단계에 접어든 운영환경에서나 권고한다. 그 이외의 경우에는 진단 로그를 생성하되 파일 사이즈의 제한을 두어 제한된 사이즈가 되면 기존 로그는 백업하고 새롭게 생성될 수 있도록 하는 것이 좋다.

그리고 운영 환경에서 일정정도 안정화 단계에 접어들었을 경우, WLDF를 포함하여 Connection Pool Profiling, WebLogic? Workshop 컴포넌트 들에 의해서 생성되는 진단 로그가 더이상 생성되지 않게 하기 위해서는 아래의 JVM 옵션을 사용한다.

-D_Offline_FileDataArchive=true
-Dweblogic.connector.ConnectionPoolProfilingEnabled=false
-Dcom.bea.wlw.netui.disableInstrumentation=true

(JDBC Connection Pool profiling은 기본 설정값은 false이다)

이들 옵션은 Admin console이나 Managed Server를 기동하는 스크립트에서 설정한다. 그렇지만 해당 도메인의 국지적 입장에서 적용하고자 한다면 setDomainEnv.sh 파일에 등록을 권고한다. 이유는 보통은 한개의 도메인에는 한개 이상의 Managed Server가 설정될 수 있고, 이들 각각의 Managed Server 기동 스크립트에 각각 모두 설정하는 것보다는 setDomainEnv.sh는 Managed Server가 아닌 Domain 레벨에서 환경 설정을 하기 때문이다.

물론 서비스에 문제가 있어서 WLDF를 사용해야 한다든가 Database Connection Leak을 테스트하기 위한 Profiling 수행, Workshop등을 사용하여 디버깅을 해야 하는 경우에는 이들 옵션을 삭제하고 진행해야 한다.




References


Created by jhpark. Last Modification: Thursday 06 of February, 2014 21:35:10 KST by jhpark. (Version 15)
[ Execution time: 0.15 secs ]   [ Memory usage: 23.03MB ]   [ Queries: 51 in 0.00 secs ]   [ Server load: 0.02 ]

Shout anything, anybody...

jhpark: 감기가 장난이 아니내요. 모두들 감기 조심하세요...~
jhpark: 세렌즈 홈페이지의 Tiki에 대한 Patch가 이루어졌습니다. 새로운 버전은 Tiki 12.3
jhpark: 말그대로 키오스크이지요. 뭔가 샤우팅하고 싶은 것이 있다면 그것이 무엇이든 샤우티잉...
meng: 이건 뭐지요 ㅋㅋ
jhpark: 이곳 정자동엔 함박눈... 오늘 어케 퇴근하나.
Ji-Su Hong: 출첵? ㅎ~
jhpark: sql_mode=""의 위력은 대단하다. 특히 End User의 입장에서는...
박영훈: testtest
jhpark: 명규야 잘자라, 내일을 위해서... ㅋㅋ
Admin: 아우, 홈페이지 결국은 오픈했당. 어지러워라...