2006/11/14

IIS의 AspRequestQueueMax 값을 통한 성능조정

"HTTP 500 웹 서버 사용량이 너무 많습니다."  와 관련된 내용입니다.

이미 등록된 "IIS튜닝 - 응용프로그램 대기열 조정" 에서 다루었던 내용인데요.. 다음 문서를 참고하시면 됩니다.

http://www.serverinfo.pe.kr/TipnTech.aspx?Content=Windows&Search=&vMode=View&page=2&Seq=203

실제 필자가 운영하는 대용량 웹접속 서버를 통해서, 조정을 통한 웹페이지 접속률을 높인것인데요..

일반적으로 위 값을 조정할 일은 그다지 많지 않습니다. 왜냐면,. 한 서버에서 접속에 열수있는 TCP 포트갯수가 65,000 여개 뿐인데, 대용량 접속 서비스가 아니고선 말이죠..^^

HTTP 연결은 TCP 80 포트연결입니다. 이 연결은, 성능카운터를 통해서 모니터링이 가능한데요.
더불어 TCPv4 Connection Established 갯수와 거의 같을 것입니다.

다음은 Windows Server 2003 Standard 64bit 에, 인텔 제온 듀얼코어 2.0 듀얼 장비에서 모니터링 한 것이며, 홈쇼핑 및 대형 인터넷 쇼핑몰의 할인 및 쿠폰 중계 사이트이고, 3대로 서비스하고 있습니다.


접속률이 많은 만큼 피크타임시에는 97% CPU 로드를 유발하고 있습니다.

그러면, 이때의 Http 연결 MRTG를 보면,



피크타임시에 http 동시연결건수가 53,000 여개 입니다.

이때 자주발생하는 것이 바로, HTTP 500 웹서버 사용량이 많타는둥, 바쁘다는둥 메시지가 나오면서 웹페이지가 출력되지 않게 됩니다.

문제는, 위의 CPU로드나, HTTP 동시연결 건수가 중요한 부분이 아니라 IIS 웹서버에서, ASP요청을 제때 처리를 해주지 못하고 큐에 점점 쌓여 간다는 얘기이고, 허용된 큐 이상 쌓이는 부분에 대해서는 클라이언트 브라우져에 HTTP 500  메시지를 출력하게 됩니다.


위 서버의 경우, IIS의 메타베이스에서 최대 허용큐 갯수를 8,000 개로, 기본값 3,000에서 5,000개 이상 늘렸음에도 초당 300~1000 개 가까이 요청이 거부되었습니다.



기본값 3,000 개 인 경우 보다 많은 요청수가 거부가 되었는데요., CPU 사용량이 좀더 여유가 있다면 성능카운터를 통해서 모니터링을 하면서 큐갯수를 늘려보는 것을 통해서 성능조정이 가능합니다.

대용량 웹접속의 경우, 클라이언트에서 HTTP 500 메시지가 발생하는 경우 모니터링을 통해서 AspRequestQueueMax  성능조정을 해 볼 필요가 있습니다.

AspRequestQueueMax 는 ASP 스크립트에 해당되므로, ASP.NET은 해당 카운터를 이용해서 측정을 해야합니다.


13-iis-http-1.gif
13-iis-http-2.gif
13-iis-http-4.gif
13-iis-http-3.gif

댓글 없음:

댓글 쓰기

가장 많이 본 글