티스토리 뷰

다수의 웹 사이트를 운영 중인 서버에서 특정 웹 사이트 접속 시 service unavailable 메시지와 함께 웹 사이트 접속이 불 가능한 현상이 발생 하였습니다.

[환 경]

Windows Server 2003 EE x86 / IIS 6.0

 

[문의 사항]

특정 웹 사이트 오류 발생 원인 분석

[증 상]

특정 시간 대에 xxxx 웹 사이트 접속 시 service unavailable 메시지 발생
Httperror에 아래와 같은 오류 메시지 생성

2011-03-22 07:21:20 xxx.xxx.xxx.xx 4938 xxx.xxx.xxx.xxx 80 HTTP/1.1 GET /xxxx.jsp 503 1214720207 QueueFull xxxx

2011-03-22 07:21:20 xxx.xxx.xxx.xx  8591 xxx.xxx.xxx.xx 80 HTTP/1.1 GET /edp/xxxxxxxxxxdo?method=listUserSearch 503 1214720207 QueueFull xxxx

[원 인]

IIS 에서는 웹 사이트의 너무 많은 요청으로 인해 큐가 꽉 차거나 서버가 오버로드되는 것을 막기 위해 응용 프로그램 풀 큐의 길이를 제한 합니다.

용 프로그램 풀 큐 길이 제한을 설정하면 IIS에서 새 요청을 큐에 넣기 전에 지정된 응용 프로그램 풀 큐의 요청 수를 모니터링 하여 큐에 새 요청을 추가하고 큐 크기가 초과되면 서버에서 요청을 거부하고 사용자 지정할 수 없는 503 오류 응답 메시지를 클라이언트에 보냅니다.
각 응용 프로그램 풀에서 커널 요청 큐는 기본으로 IIS 6.0 SP1 설치 전에 설치된 경우에는 4000, 이후에 설치된 경우에는 1000으로 제한됩니다.

 

[조치 방법]
조정이 필요한 경우 이 값을 5000 정도로 늘려 조정하실 것을 권장합니다. 이 값을 제한하지 않거나 너무 크게 늘려 줄 경우 응용 프로그램 풀에서 메모리 부족을 겪을 수도 있습니다.

이 값을 조정하는 방법은 다음 기술문서를 참고하십시오.

error message if the AppPoolQueueLength value is too low: "HTTP 503: Service Unavailable"

http://support.microsoft.com/kb/816995/en-us

커널 큐 모니터링 관련 Current ISAPI Extension Request 값 이벤트 로깅

Windows Server 2008에서는 “HTTP Service Request Queues” 성능 카운터에서 이 값을 모니터링 할 수 있으나
Windows Server 2003 IIS 6.0
에서는 Http.sys 커널 디바이스 드라이버의 성능 카운터가 제공되지 않습니다.
따라서, IIS 6.0에서는 (WebLogic과 같이) ISAPI 응용 프로그램으로 인해 응용 프로그램 풀 큐가 꽉 찬 경우,
정확한 값을 알 수는 없으나 Web Service Current ISAPI Extension Requests 성능 카운터를 이용하여 특정 사이트를 모니터링할 수 있습니다

[IIS] ISAPI Extension 개요
http://community.365managed.com/?document_srl=1413

아래 방법은 Current ISAPI Extension Request의 값이 특정 수치를 초과 하게 될 경우 Event log에 메시지가 생성 되게 하는 것입니다.

아래 방법은 Current ISAPI Extension Request의 값이 255를 초과 할 경우 응용프로그램 Event 2031이 생성되게 설정 하는 방법을 정리 한 것입니다.




 

위 값을 초과 할 경우 아래와 같은 이벤트가 발생
=>
아래 내용은 어제 테스트 했던 샘플 입니다. 참고 하시기 바랍니다

 
이벤트 형식:          정보
이벤트 원본:          SysmonLog
이벤트 범주:          없음
이벤트 ID:             2031
날짜:                    2011-03-22
시간:                    오후 6:29:32
사용자:                 N/A
컴퓨터:    xxxxxxx
설명:

카운터xxxxxxxxxx Service(dmcedu)\Current ISAPI Extension Requests() 경고 임계값을 xx로 했습니다. x의 카운터값이 높, x의 제한값입니다.

 

[참고 사이트]
응용 프로그램 풀 큐 길이 제한 구성
http://technet.microsoft.com/ko-kr/library/cc783466(WS.10).aspx

댓글
댓글쓰기 폼