IIS Worker Process (w3wp) 로 높은 CPU 사용량 문제를 해결하는 방법 (1)

728x90
반응형

 

 

 

 

 

 


 

 

들어가며

이 포스트는 아래의 Blog를 번역한 글이며, 영어공부 겸, 지식을 전달하기 위한 목적으로 작성된 글입니다.

보시기 불편하시거나, 해당글의 무분별한 포스팅이 문제가 된다면, 삭제하겠습니다.

 

https://stackify.com/w3wp-high-cpu-usage/

 

Guide to w3wp.exe High CPU Usage for IIS Worker Processes

If you're having problems with w3wp.exe high CPU usage, get tips to troubleshoot IIS worker process for your ASP.NET web app.

stackify.com

 

 

 

 

IIS  Worker Process (w3wp) 로 높은 CPU 사용량 문제를 해결하는 방법 

IIS 성능 문제가 있거나, w3wp 높은 사용량 문제가 있거나, 높은 CPU 사용량을 IIS Worker Process 로 해결하는 방법을 알고 싶다면, 이 문서가 도움이 될겁니다.

이 포스트는, 당신의 ASP.NET Web Application의 높은 CPU 사용량의 원인이 무엇인지, 그를 식별하기 위한 몇가지 팁에 대해서 논의 합니다.

 

당신의 IIS Worker Process (w3wp) 많은 CPU를 사용하는 데는 여러가지 이유가 있습니다.

우리는 몇가지 주요 원인과, IIS 성능 문제를 해결하는 방법에 대해 설명합니다. 

 

 

 

 

 

IIS 에서 실행중인 웹 요청을 보는 방법 

가장먼저 해야 할 일중에 하나는, 당신은 현재 실행중인 웹 요청을 확인해야 한다. 이것은 문제를 일으키는, 특정 URL을 식별하는데 도움이 된다.

시간이 매우 오래 걸리거나, 높은 CPU 문제를 일으키는 URL중에 하나를 인식하는 기회가 된다. 

그러나 이것은 대기열에 있는 많은 웹 요청을 보여줄수 있으며, 근본적인 원인으로 연결되지는 않는다.

 

 

 

 

IIS 사용자 인터페이스를 통해 

IIS 관리 콘솔을 통해서, 당신은 실행중인 Worker 프로세스를 볼 수 있습니다.
당신은 어떤 IIS Application pool 이 높은 CPU의 원인이 되는지와 현재 실행중인 Web 요청을 볼수 있습니다.

 

 

IIS 메인 메뉴로 부터 "작업자 프로세스"를 선택 하면 현재 실행중인 작업자 프로세스를 볼 수 있습니다. 

 

작업자 프로세스를 더블클릭하면, 현재 실행중인 모든 요청을 볼 수 있습니다.

 

다음은 우리의 서버중 하나의 예입니다. 각 요청이 ASP.NET의 파이프라인의 다른 부분에 있으며, 현재 실행중인 HTTP 모듈을 볼 수 있습니다.

 

 

 

 

Command Line을 통해 

appcmd.exe 유틸은 현재 실행중인 웹 요청을 포함하여, 많은 작업을 하는데 유용하게 사용할 수 있습니다.

C:\Windows\System32\inetsrv>appcmd list requests
REQUEST "f20000048000021c" (url:GET /nopcommerce, time:6312 msec, client:localhost, 
stage:BeginRequest, module:IIS Web Core)

 

 

 

 

결과 및 찾은 사항에 대한 이해. 

IIS UI 및 Command Line을 통해 현재 실행중인 웹 요청을 볼 수 있습니다.

각기 다른 방법으로 같은 정보를 확인 할 수 있습니다. 

  • URL :  실행되었던 완성형 URL.
  • Time : 웹 요청이 실행되었던 밀리초 단위의 시간의 총 합.
  • Client : 요청을 시작했던 유저의 주소
  • Stage : 현재 요청의 IIS 파이프라인 단계
  • Module : 현재 실행중인 ASP.NET 모듈

 

 

 

 

요청을 볼 때, 주의해야할 몇가지가 있습니다. 
  • 모든 요청이 동일한 URL 입니까? 아마도 해당 URL이 문제의 원인 일 수 있습니다. 
  • 같은 Client 로 부터 많은 수의 요청이 옵니까? 아마도 특정 유저가 당신의 서버에 트래픽을 보내고 있을 수 있습니다.
  • 모든 요청이 같은 단계나 모듈에 갇혀있습니까? 특정 IIS 파이프라인 단계에 요청이 중단되는 문제일 수 있습니다.

 

 

 

 

 

참조

 

 

 

 

 

 

 

 

 

END


 

 

 

 

 

 

728x90