메뉴 건너뛰기

KBlog

응용 프로그램 풀의 설정(2)

by B&W posted Mar 12, 2016
IIS의 응용프로그램 풀을 설정하게 된 가장 큰 이유는 실시간 웹사이트 모니터링 서버스인 MONCAT(몬캣)을 사용하면서부터 웹사이트가 다운되는 증상이 발견되었기 때문입니다. 실시간 모니터링 정도로는 다운되지 않는데 연속적으로 계속해서 반복하여 측정을 하는 경우, 웹사이트가 다운이 되는 현상이었습니다. 다른 웹사이트 분석 서비스나 심지어 F5키를 연속적으로 눌러도 다운되지 않던 웹사이트가 유난히도 몬캣 서비스에서만 다운이 되는 문제를 보였습니다.아무튼 몬캣 고객센터에 이와 관련하여 연락을 한 상태로 아직 답변을 받지 못한 상태입니다.

그냥 무작정 기다릴 수만 없어서 인터넷 검색을 해보았지만 뾰족한 답을 얻을 수 없었습니다. 그래서 일단 무작정 IIS 응용프로그램 풀을 하나씩 건드려 보기로 했습니다. 우선 아래 그림처럼 테스트 웹사이트에 대하여 연속적으로 F5키를 누른 결과 CPU 사용률은 10%를 넘지 않았고, 사이트도 다운되지 않았습니다. 두번째로 GTmetrix(http://gtmetrix.com) 서비스를 이용하여 테스한 결과도 CPU 사용량은 최대 10%를 넘지 읺았고 연속적인 테스트에도 사이트는 정상적으로 유지되고 있었습니다. 그렇다고 GTmetrix가 단순 속도 측정만을 하는 것이 아니라 매우 많은 종류의 유용한 분석결과를 함께 제공해 주는 서비스입니다. 

응용 프로그램 풀 설정
< F5키 연속 사용시 CPU 사용률 >


응용 프로그램 풀 설정

< GTmetrix 분석시 CPU 사용률 >


응용 프로그램 풀 설정


< GTmetrix 분석 결과 제공 형태 >


반면, 몬캣의 경우, 테스트를 하면 그림과 같이 CPU 사용량이 약 80%까지 폭증을 합니다. 1~2번이야 별 문제가 없지만 연속적으로 테스트 하게되면 거의 10회 이내에 웹사이트가 다운 되더군요. 물론 웹사이트가 가벼운 경우, 이와는 다른 결과를 보일 수 있겠지만 웹사이트 모니터링 프로그램이 오히려 웹사이트를 다운시킬 수도 있다는 사실을 알게 되었습니다. ,  


응용 프로그램 풀 설정

< 몬캣 모니터링시 리소스 개요 모니터 >


응용 프로그램 풀 설정

< 몬캣 모니터링시 CPU 사용률 >


결국, 높은 CPU 사용률이 지속되면 웹사이트가 다운된다는 판단하에 IIS 응용프로그램 풀을 손대기로 하였고 지난번 시작모드 조정에 이어 기본 CPU 제한간격을 5분에서 30분으로 조정하였고 제한 작업 또한 'Noaction'에서 'ThrottleUnderLoad'으로 변경하였습니다. 아래 그림은  변경 전과 시작모드 및 CPU 제한시간 변경 후의 그림입니다. 

 

응용 프로그램 풀 설정

< 시작모드 및 CPU제한 변경 전 상태 >


응용 프로그램 풀 설정

< 시작모드 및 CPU제한 변경 후 상태 >


추가로 변경사항 내용에 대해 좀 더 구체적으로 부연하자면 'CPU 시간 제한'은 응용 프로그램 풀의 최대 CPU 사용 시간으로 응용 프로그램과 연결된 프로세스가 여러 개 존재하는 경우, 응용 프로그램 풀 하위의 모든 프로세스들의 전체 합계를 대상으로 제한이 적용되며 24시간 기준입니다. 

제한 작업의 'ThrottleUnderLoad'은 CPU에 대한 경합이 이루어지고 있는 경우에만 지정한 값으로 동작하고 CPU가 한가한 경우에는 응용 프로그램 풀이 더 많은 CPU 활동을 소비할 수 있다는 뜻이며 'Throttle'은 지정한 제한 값에 도달하면 실행되는 동작입니다. 

아무튼 우선은 여기까지 설정을 변경해서 테스트 해 보았습니다. 약 20번 정도 연속적으로 테스트 했는데 아직까지 웹사이트가 다운되지는 않습니다. 물론 여러가지 변수들이 있겠지만 몇 번만에 다운되던 것에 비하면 많이 나아진 셈입니다. 

아울러 그간은 접속속도, 초기 로딩속도에 많은 자원을 투여 했었는데 그보다는 안정적인 운영이 더 중요하다는 생각이 들었습니다. 접속속도는 하드웨어적인 투자나 IIS에 최적화 등을 통해서 속도 향상을 이룰 수도 있겠지만 의외로 간과하고 있는 부분인 웹사이트의 구성이나 디자인을 최적화 한다면 좀 더 빠르고 안정적 운영이 가능하지 않을까 생각합니다. 향후, 좀 더 시간이 된다면 IIS 응용프로그램 풀에 대하여 자세한 설정방법을 포스팅 할 까 합니다. 이상 아무것도 모르면서 쓰는 IIS 응용프로그램 풀 설정 이었습니다.