다음을 통해 공유


IIS Performance Counter Checklist

IIS 웹 서버의 성능에 영향을 줄 수 있는 대표적인 리소스에는 processor, process, physical, network 이 있습니다. 여기서는 각각의 리소스 사용을 확인하기 위해 살펴보아야 할 성능 카운터항목은 무엇이며, 각 카운터가 의미하는 바가 무엇인지와 각 카운터의 병목을 판단할 수 있는 임계치 값에 대해서 알아보겠습니다.

1. Memory

메모리 성능 카운터는 IIS 웹 서버의 성능 문제가 발생했을때 가장 기본적으로 살펴보아야 할 요소입니다. 따라서, 현재 메모리가 충분한지 판단하고 사용 상태를 보는 것이 중요합니다. 메모리와 관련된 성능 병목이 있는지 확인하기 위해서는 다음 카운터를 살펴보아야 합니다.

Memory

Available Bytes

Committed Bytes

Page Reads/sec

Paging File

%Usage

각 항목이 의미하는 바는 다음과 같습니다.

l Memory / Available Bytes

현재 프로세스에서 사용할 수 있는 메모리의 바이트 수를 의미합니다. 다시말하면, 사용 가능한 RAM이 얼만큼 남았는지 보여주는 카운터입니다. 이 값의 임계치는 전체 메모리 크기의 5% 이하일 때 입니다.

l Memory / Committed Bytes

커밋된 가상 메모리의 양을 바이트 단위로 나타낸 것입니다. 커밋된 메모리란 디스크 페이징 파일에 예약된 공간이 있는 실제 메모리입니다. 이는 Available Bytes와 반비례 합니다.

l Memory : Page Reads/sec

프로세스가 메모리의 페이지를 요청하는데 시스템이 요청한 위치에서 해당 페이지를 찾을 수 없으면 페이지 부재가 발생합니다. 요청한 페이지가 메모리의 다른 위치에 있을 경우는 대부분의 프로세서가 큰 영향없이 처리할 수 있습니다. 하지만, 메모리가 아닌 디스크에서 페이지를 검색해야 할 경우 큰 지연 현상이 발생할 수 있습니다. Page Reads/sec는 이러한 페이지 부재를 해결하기 위해 디스크를 읽는 횟수를 의미합니다.

l Paging File : %Usage

현재 사용중인 페이징 파일의 백분율을 말합니다. 이 수치가 100%에 도달하게 되면 페이징 파일을 늘리거나 RAM을 더 추가시켜야 함을 의미합니다.

2. Processor

하나 이상의 프로세스가 프로세서 시간의 대부분을 사용할 경우 프로세서의 병목 현상이 발생할 수 있습니다. 이 경우 실행을 준비하고 있는 프로세스의 쓰레드가 프로세서를 사용할 수 있을 때까지 대기열에서 대기하게 됩니다.

Processor

%Processor Time

%Privileged Time

Process

%Processor Time

System

Processor Queue Length

각 항목이 의미하는 바는 다음과 같습니다.

l Processor / %Processor Time

모든 프로세스 스레드가 프로세서를 사용하여 명령을 실행하는 데 경과된 시간을 백분율로 나타낸 값입니다. 일반적으로 70% 이상이 사용되고 있다면 과부하라고 판단할 수 있습니다.

l Processor / %Privileged Time

%Privileged Time 이란 프로세서가 특권 모드(운영 체제 구성 요소 및 하드웨어 디바이스 드라이버를 위해 만든 처리 모드)로 실행된 시간을 백분율로 나타낸 값입니다. 반면, %User Time는 프로세서가 사용자 모드로 실행된 시간을 백분율로 나타낸 값을 말합니다. 이 값이 높으면 서버에서 응용 프로그램이 많이 실행되고 있음을 나타냅니다. 추가적으로, %Processor Time 은 %Privileged Time 과 %User Time을 합한 값을 의미합니다.

l Process / %Processor Time

모든 프로세스 스레드가 프로세서를 사용하여 명령을 실행하는 데 경과된 시간을 백분율로 나타낸 값입니다.

l System / Processor Queue Length

CPU큐에서 현재 실행이 되고 있지 않고 대기하고 있는 쓰레드의 수입니다. 일반적으로 이 값이 일정 기간 동안 CPU 수 x 2보다 크다면 서버의 프로세서 성능이 부족하다는 것을 말합니다..

3. Physical Disk

디스크는 서버에서 프로그램 및 데이터를 저장하고 처리하므로 디스크 사용량 및 속도에 영향을 미치는 병목 현상은 서버의 전체적인 성능에 큰 영향을 줍니다.

Physical Disk

%Disk Time

Average Disk Queue Length

각 항목이 의미하는 바는 다음과 같습니다.

l Physical Disk / %Disk Time

선택한 디스크 드라이브가 읽기 또는 쓰기 요청을 처리하는데 사용된 시간을 백분율로 나타낸 것입니다. 이 카운터가 100%가 되면 디스크 성능 상에 문제가 있음을 의미합니다.

l Physical Disk / Average Disk Queue Length

디스크가 읽기와 쓰기 요청을 수용할 정도로 빠르지 않으면 해당 요청은 대기열에 넣게 됩니다. 여기에서 이 값이 0보다 크면 디스크 자체에 병목 현상이 있음을 의미합니다.

4. Network

네트워크 병목 현상은 네트워크에서 데이터를 송수신하는 서버의 성능에 영향을 미칩니다. 서버의 네트워크 카드에 문제가 있을 수 있거나, 네트워크가 포화 상태여서 분할해야 할 수 있습니다. 다음 카운터를 사용하여 네트워크 병목 현상을 진단할 수 있습니다.

Network Interface

Bytes Total/sec

Output Queue Length

Web service

Bytes Total/sec

 각 항목이 의미하는 바는 다음과 같습니다.

l Network Interface / Bytes Total/Sec
네트워크 인터페이스에서 주고 받는 초당 총 데이터의 수(Bytes) 또는 속도를 말합니다. 사용 가능한 대역폭과 이 값을 비교하면 발생할 수 있는 네트워크 병목 상태를 명확하게 표시할 수 있습니다. 일반적으로 바이트 수/초는 사용 가능한 총 대역폭의 50% 이하로 유지해야 합니다

l Network Interface / Output Queue Length

출력 패킷 큐의 길이를 의미하며, 이 값이 0보다 크면 네트워크 병목 현상을 의심해 볼 수 있습니다.

l Web Service / Bytes Total/sec

웹 서버에서 보내고 받은 바이트의 합계를 표시합니다.

참고 : https://technet.microsoft.com/ko-kr/library/cc671175.aspx

5. ASP

l ASP / Request Queued

ASP는 DLLHOST(Out of pooled) Process의 여러작업쓰레드에 의해 실행되고 있습니다. 실행중인 ASP가 있을 때 그 이후에 요청받은 ASP는 처리대기열에 쌓이게 됩니다.

먼저 들어온 ASP를 먼저 처리하겠지만, 앞에 실행중인 ASP가 제대로 처리 되지 않으면 대기열의 길이가 증가하게됩니다.

l ASP / Request Current

l ASP / Request/sec

ASP 의 요청 수를 확인할 때 참고하는 성능 카운터 입니다.

6. ASP.NET

l ASP.NET / Requests in Application Queue

서버 사용량이 많을 때 “HTTP 500 Web server too busy.“ (“HTTP 500 웹 서버 사용량이 너무 많습니다.") 에러가 발생합니다.

Comments