본문 바로가기

멋진성이의 지식iN

IIS Hang 증상시 메모리 덤프 자동 생성하기, 지정일 이상 지난 파일 삭제 스크립트,

반응형


만약 IIS에서 행증상이 발생하였는데, 서비스 때문에 어쩔수 없이 재시작하였다고 가정해 봅시다.
그럼 이 원인은 해결할수 없는 미스터리로 남겠지요.. 그리고 다시금 행 증상이 찾아오게 될것입니다.
이때를 기다렸다가 ADPlus로 메모리 덤프를 생성하는 방법도 있습니다. 하지만 이건 사람이 수동으로 체크를 하고 있고, 장애시 수동 명령을 입력하여 실행하여야 하기 때문에 매우 느리게 진행되며, 장애 시간이 더 걸릴수 있게 됩니다. 다음 방법을 이용해 보시기 바랍니다. 그럼 URL을 체크하다가 해당 URL이 응답이 없을 때 행으로 간주하고 메모리 덤프를 자동으로 수집하게 됩니다.
 
먼저 아래 다운로드 경로에서 IIS Diagnostics Toolkit를 다운로드 합니다.
http://www.microsoft.com/downloads/details.aspx?FamilyID=9bfa49bc-376b-4a54-95aa-73c9156706e7&DisplayLang=en
 
설치후 Debug Diagnostics Tool를 실행합니다.
여기에는 Crash Mode와 Hang Mode가 있는데 여기서는 Hang Mode만 설명하도록 하겠습니다.
 
1. DebugDiag를 실행합니다.
2. Select Rule Type 창에서 IIS Hang을 선택합니다.
이 창이 보이지 않으면 Add Rule… 버튼을 클릭합니다.
3. Select URLs to monitor창에서 Add URL 버튼을 클릭한 다음, 모니터링할 URL를 입력한다.
예) http://itka.kr/default.html 등입니다,
* 여러 개를 동시에 입력할수 있습니다.
4. Select Dump Targets 창에서 Add Dump를 클릭한 다음, All active IIS related process를 선택 합니다.
5. Select Dump Location And Rule Name 창에서 Rule이름과 Dump의 위치를 확인합니다.
6. Rule Completed 창에서 activate the rule now를 선택합니다.
설정을 완료 하셨다면, 문제 발생시
DebugDiag는 자동으로 덤프를 받게되며, DebugDiag 창에서 Userdump Count 값이 증가하게 됩니다.
덤프가 받아 졌으면 DebugDiag가 설치된 경로의 Logs 폴더 전체를 압축후 분석 머신에서 분석하시면 됩니다.
 
* Hang이 발생하였는데, 덤프가 발생하지 않으면 Debug Diagnostics Tool의 Tools 메뉴에서
Create IIS Hang Dump를 클릭하시면 덤프가 강제로 생성됩니다. 3번 정도 실행하여, 받아주면 됩니다.


- 지정일 이상 지난 파일을 삭제하는 스크립트
다음은 지정일 이상 지난 파일을 삭제하는 스크립트 입니다.
만약 한달에 한번씩 백업을 받는다면, 해당 파일을 삭제를 해야할것 입니다.
이때 마지막 수정일 기준으로 현재로 부터 30일 이상 된 파일을 삭제하도록 스케줄을 걸어두면 참 편리하겠죠?
예전에 사용하던 스크립트 인데, 이 스크립트는 이 기능을 해주는 스크립트입니다.
출처는 저도 잘 모르는 인터넷의 외국분이 만들어 주셨습니다. 간단한 한글 설명은 제가 달아두었습니다.
삭제후 삭제된 파일에 대한 로그도 남기도록 되어 있으므로 테스트후 사용하시기 바랍니다.
스크립트에서 지우면 않되는 파일에대한 Filter 리스트도 생성해 줄수 있으므로 유용할거라 생각됩니다.



출처 :

반응형