출처 : http://korea.internet.com
다음 성능 카운터를 면밀히 검사하여 서버에 프로세서, 메모리, 디스크 또는 네트워크 병목 현상이 있는지 확인한다. 웹 서버에서 나타나는 성능 병목 현상을 해결하는 데 도움을 주기 위해 각 카운터에 대한 설명과 함께 측정된 임계값, 권장 사항은 Microsoft TechNet에서 제안한 내용이다. 모든 검사는 2개의 프로세서와 1GB의 물리적 RAM이 있는 웹 서버에서 수행되었다. 성능 카운터는 개체:카운터:인스턴스 형식으로 표시된다.
Memory: Available Bytes
이 카운터는 시스템에서 실행되는 프로세스에 사용할 수 있는 실제 메모리 양을 바이트 단위로 표시한다. 이 값은 Zeroed, Free 및 Stand-by 메모리 목록에 공간을 추가하여 계산한다. Free 메모리는 사용할 수 있는 메모리이며, Zeroed 메모리는 나중에 프로세스가 이전 프로세스에서 사용한 데이터를 보지 못하게 하기 위해 0으로 채워진 메모리 페이지를 나타내며, Stand-by 메모리는 디스크로 보내지는 프로세스 작업 집합에서 제거되었지만 회수할 수 있는 메모리이다. 이 카운터는 마지막으로 검색된 값만 표시한다.
Available Bytes 값이 낮으면(4MB 이하) 시스템의 전체적인 메모리가 부족하거나 프로그램이 메모리를 릴리스하지 않는 경우일 수 있다. 4MB의 임계값에 도달하면 시스템의 가상 메모리가 부족함을 나타내는 이벤트 26이 시스템 이벤트 로그에 기록된다. 메모리가 낮으면 이벤트가 기록될 뿐 아니라 영향받는 시스템의 성능도 저하된다.
메모리 관련 성능 문제를 피하려면 웹 사이트가 최대로 사용될 때를 대비하여 적어도 10%의 메모리를 보유해야 한다.
Memory: Cache Bytes
이 카운터는 파일 시스템 캐시의 크기를 보여 준다. 이 크기는 설치된 실제 메모리 크기에 따라 최대 900MB까지 사용 가능한 실제 메모리의 50%를 사용하도록 설정된다. IIS는 메모리가 부족할 때 자동으로 캐시의 데이터를 지우므로 이 카운터는 중요한다. 이 카운터를 아래에서 설명하는 Private Bytes와 함께 사용하면 메모리 누수가 있는 응용 프로그램을 격리할 수 있다.
Memory: Page Faults/Sec
이 카운터는 초당 폴트된 평균 페이지 수를 측정한다. 이 카운터는 하드 폴트(디스크 액세스를 필요로 하는 폴트)와 소프트 폴트(실제 메모리에서 폴트된 페이지가 있는 위치)를 모두 포함한다. 대부분의 프로세서가 큰 영향 없이 많은 수의 소프트 페이지 폴트를 처리할 수 있다. 그러나 디스크 액세스를 필요로 하는 하드 폴트는 심각한 성능 문제를 유발할 수 있다. 이 카운터의 값이 낮으면 서버는 빠르게 요청에 응답한다. 이 값이 높으면 나머지 시스템을 위해 충분한 메모리를 남겨 두지 않고 파일 시스템 캐시에 너무 많은 메모리가 할당될 수 있다. 페이지 폴트/초 값이 너무 높으면 서버의 실제 메모리 양을 늘려야 한다.
Process: Private Bytes: (Inetinfo, Dllhost)
이 카운터는 Inetinfo가 할당했으며 다른 프로세스와 공유할 수 없는 현재의 메모리 양을 측정한다. 이 카운터는 이러한 프로세스가 긴 기간 동안 메모리를 릴리스하지 않고 시스템에 더 많은 메모리를 할당하고 있다는 사실을 알았을 때 웹 응용 프로그램의 메모리 누수를 격리시키는 데 도움이 된다. 응용 프로그램의 격리 수준이 낮게 설정되면 Private Bytes 카운터에서 Inetinfo 프로세스를 모니터링한다. 격리 수준이 보통이거나 높게 설정되면 해당 DLLHost 프로세스를 모니터링한다.
System: Processor Queue Length
이 카운터는 프로세스 대기열에서 실행을 기다리는 스레드의 수를 나타낸다. 프로세스가 여러 개 있는 컴퓨터에서도 프로세스 시간을 기다리는 준비 대기열은 하나만 있다. 이 카운터는 실행 중인 스레드가 아니라 준비 스레드만 계산한다. 프로세서당 스레드가 2개가 넘는 프로세서 대기열 길이는 서버가 느리게 작동하거나 응답하지 않는 프로세서 정체 상태를 나타낼 수 있다. 여러 프로그램 프로세스가 프로세서 시간을 위해 경쟁하는 경우 더 빠른 프로세서를 설치하여 처리량을 향상시킬 수 있다. 멀티스레드 프로세스를 실행하는 경우에는 프로세서를 추가하는 것이 도움이 될 수 있지만 이러한 경우에 얻을 수 있는 이점은 제한되어 있다.
긴 스레드 대기 상황에서는 한 대의 유휴 시스템에 두 개 이상의 프로세스 대기열이 있을 수 있다.
Processor: % Processor Time
이 카운터는 프로세서가 비유휴 스레드를 실행하는 데 사용하는 시간(%)을 표시한다. 이 카운터는 프로세서 활동에 대한 기본 지표로, 서버 작동 중단이나 무응답 상태와 같은 문제를 해결하는 데 사용할 수 있다. 이 성능 카운터를 분석할 때는 컴퓨터의 역할을 이해해야 한다. 예를 들어, CAD 응용 프로그램에 주로 사용되는 컴퓨터를 모니터링하는 경우 CAD 응용 프로그램은 실행 중에 100%의 프로세스 시간을 쉽게 사용할 수 있다. 많은 클라이언트 요청을 처리하는 서버에서 이 값이 100%에 가깝다면 사용 가능한 프로세서 시간을 기다리기 위해 프로세스가 대기 중이므로 병목 상태일 것이다. 따라서 서버에서 100%에 가까운 프로세서 사용률을 유지하는 일은 불가능하며, 프로세서를 추가하거나 작업 로드를 수정해야 한다. 웹 서버에서 허용되는 프로세서 사용률 임계값은 70%이다.
Network Interface: Bytes Total/Sec
이 카운터는 네트워크 인터페이스에서 바이트를 보내고 받는 속도를 측정한다. 네트워크 연결에서 병목 현상이 발생하는지 확인하려면 Network Interface: Bytes Total/sec 카운터 값과 네트워크 어댑터 카드의 총 대역폭을 비교해 보십시오. 급격히 증가하는 트래픽에 대비하려면 용량의 50% 이하만 사용해야 한다. 이 값이 연결 용량에 거의 근접하고 프로세서와 메모리 사용량에 문제가 없으면 연결에 문제가 있는 것이다.
Physical Disk: % Disk Time
이 카운터는 선택한 디스크 드라이브가 읽기 및 쓰기 요청을 처리하는 시간을 측정한다. 이 카운터 값이 높으면(90% 초과) Physical Disk: Current Disk Queue Length 카운터를 검사하여 디스크 액세스를 기다리는 시스템 요청 수를 확인해야 한다. 대기 I/O 요청 수는 실제 디스크를 구성하는 스핀들 수의 1.5-2배 수준으로 유지되어야 한다. 스핀들 정보에 대해서는 서버 제조업체에 문의한다. 일반적으로 대부분의 디스크에는 스핀들이 하나만 있지만 RAID 장치에는 더 많은 스핀들이 있다. 하드웨어 RAID 장치는 시스템 모니터에 하나의 실제 디스크로 나타나지만 소프트웨어를 통해 만들어진 RAID 장치는 여러 드라이브로 나타난다. 각 실제 드라이브(RAID가 아닌)의 Physical Disk 카운터를 모니터링하거나 _Total 인스턴스를 사용하여 모든 컴퓨터 장치의 데이터를 모니터링할 수 있다.
Physical Disk: Current Disk Queue Length 및 Physical Disk: % Disk Time 카운터 값을 사용하여 디스크 하위 시스템의 병목 현상을 찾아 내십시오.이들 값이 모두 높으면 디스크 드라이브를 업그레이드하거나 자주 액세스하는 파일을 다른 디스크나 서버로 옮기는 것을 고려할 수 있다.
RAID 장치를 사용하는 경우 % Disk Time이 100%보다 더 큰 값을 나타낼 수 있다. 이 경우 Physical Disk: Average Disk Queue Length 카운터를 사용하여 평균적으로 디스크 액세스를 기다리는 시스템 요청의 수를 확인하는 방법을 고려해야 한다
다음 성능 카운터를 면밀히 검사하여 서버에 프로세서, 메모리, 디스크 또는 네트워크 병목 현상이 있는지 확인한다. 웹 서버에서 나타나는 성능 병목 현상을 해결하는 데 도움을 주기 위해 각 카운터에 대한 설명과 함께 측정된 임계값, 권장 사항은 Microsoft TechNet에서 제안한 내용이다. 모든 검사는 2개의 프로세서와 1GB의 물리적 RAM이 있는 웹 서버에서 수행되었다. 성능 카운터는 개체:카운터:인스턴스 형식으로 표시된다.
Memory: Available Bytes
이 카운터는 시스템에서 실행되는 프로세스에 사용할 수 있는 실제 메모리 양을 바이트 단위로 표시한다. 이 값은 Zeroed, Free 및 Stand-by 메모리 목록에 공간을 추가하여 계산한다. Free 메모리는 사용할 수 있는 메모리이며, Zeroed 메모리는 나중에 프로세스가 이전 프로세스에서 사용한 데이터를 보지 못하게 하기 위해 0으로 채워진 메모리 페이지를 나타내며, Stand-by 메모리는 디스크로 보내지는 프로세스 작업 집합에서 제거되었지만 회수할 수 있는 메모리이다. 이 카운터는 마지막으로 검색된 값만 표시한다.
Available Bytes 값이 낮으면(4MB 이하) 시스템의 전체적인 메모리가 부족하거나 프로그램이 메모리를 릴리스하지 않는 경우일 수 있다. 4MB의 임계값에 도달하면 시스템의 가상 메모리가 부족함을 나타내는 이벤트 26이 시스템 이벤트 로그에 기록된다. 메모리가 낮으면 이벤트가 기록될 뿐 아니라 영향받는 시스템의 성능도 저하된다.
메모리 관련 성능 문제를 피하려면 웹 사이트가 최대로 사용될 때를 대비하여 적어도 10%의 메모리를 보유해야 한다.
Memory: Cache Bytes
이 카운터는 파일 시스템 캐시의 크기를 보여 준다. 이 크기는 설치된 실제 메모리 크기에 따라 최대 900MB까지 사용 가능한 실제 메모리의 50%를 사용하도록 설정된다. IIS는 메모리가 부족할 때 자동으로 캐시의 데이터를 지우므로 이 카운터는 중요한다. 이 카운터를 아래에서 설명하는 Private Bytes와 함께 사용하면 메모리 누수가 있는 응용 프로그램을 격리할 수 있다.
Memory: Page Faults/Sec
이 카운터는 초당 폴트된 평균 페이지 수를 측정한다. 이 카운터는 하드 폴트(디스크 액세스를 필요로 하는 폴트)와 소프트 폴트(실제 메모리에서 폴트된 페이지가 있는 위치)를 모두 포함한다. 대부분의 프로세서가 큰 영향 없이 많은 수의 소프트 페이지 폴트를 처리할 수 있다. 그러나 디스크 액세스를 필요로 하는 하드 폴트는 심각한 성능 문제를 유발할 수 있다. 이 카운터의 값이 낮으면 서버는 빠르게 요청에 응답한다. 이 값이 높으면 나머지 시스템을 위해 충분한 메모리를 남겨 두지 않고 파일 시스템 캐시에 너무 많은 메모리가 할당될 수 있다. 페이지 폴트/초 값이 너무 높으면 서버의 실제 메모리 양을 늘려야 한다.
Process: Private Bytes: (Inetinfo, Dllhost)
이 카운터는 Inetinfo가 할당했으며 다른 프로세스와 공유할 수 없는 현재의 메모리 양을 측정한다. 이 카운터는 이러한 프로세스가 긴 기간 동안 메모리를 릴리스하지 않고 시스템에 더 많은 메모리를 할당하고 있다는 사실을 알았을 때 웹 응용 프로그램의 메모리 누수를 격리시키는 데 도움이 된다. 응용 프로그램의 격리 수준이 낮게 설정되면 Private Bytes 카운터에서 Inetinfo 프로세스를 모니터링한다. 격리 수준이 보통이거나 높게 설정되면 해당 DLLHost 프로세스를 모니터링한다.
System: Processor Queue Length
이 카운터는 프로세스 대기열에서 실행을 기다리는 스레드의 수를 나타낸다. 프로세스가 여러 개 있는 컴퓨터에서도 프로세스 시간을 기다리는 준비 대기열은 하나만 있다. 이 카운터는 실행 중인 스레드가 아니라 준비 스레드만 계산한다. 프로세서당 스레드가 2개가 넘는 프로세서 대기열 길이는 서버가 느리게 작동하거나 응답하지 않는 프로세서 정체 상태를 나타낼 수 있다. 여러 프로그램 프로세스가 프로세서 시간을 위해 경쟁하는 경우 더 빠른 프로세서를 설치하여 처리량을 향상시킬 수 있다. 멀티스레드 프로세스를 실행하는 경우에는 프로세서를 추가하는 것이 도움이 될 수 있지만 이러한 경우에 얻을 수 있는 이점은 제한되어 있다.
긴 스레드 대기 상황에서는 한 대의 유휴 시스템에 두 개 이상의 프로세스 대기열이 있을 수 있다.
Processor: % Processor Time
이 카운터는 프로세서가 비유휴 스레드를 실행하는 데 사용하는 시간(%)을 표시한다. 이 카운터는 프로세서 활동에 대한 기본 지표로, 서버 작동 중단이나 무응답 상태와 같은 문제를 해결하는 데 사용할 수 있다. 이 성능 카운터를 분석할 때는 컴퓨터의 역할을 이해해야 한다. 예를 들어, CAD 응용 프로그램에 주로 사용되는 컴퓨터를 모니터링하는 경우 CAD 응용 프로그램은 실행 중에 100%의 프로세스 시간을 쉽게 사용할 수 있다. 많은 클라이언트 요청을 처리하는 서버에서 이 값이 100%에 가깝다면 사용 가능한 프로세서 시간을 기다리기 위해 프로세스가 대기 중이므로 병목 상태일 것이다. 따라서 서버에서 100%에 가까운 프로세서 사용률을 유지하는 일은 불가능하며, 프로세서를 추가하거나 작업 로드를 수정해야 한다. 웹 서버에서 허용되는 프로세서 사용률 임계값은 70%이다.
Network Interface: Bytes Total/Sec
이 카운터는 네트워크 인터페이스에서 바이트를 보내고 받는 속도를 측정한다. 네트워크 연결에서 병목 현상이 발생하는지 확인하려면 Network Interface: Bytes Total/sec 카운터 값과 네트워크 어댑터 카드의 총 대역폭을 비교해 보십시오. 급격히 증가하는 트래픽에 대비하려면 용량의 50% 이하만 사용해야 한다. 이 값이 연결 용량에 거의 근접하고 프로세서와 메모리 사용량에 문제가 없으면 연결에 문제가 있는 것이다.
Physical Disk: % Disk Time
이 카운터는 선택한 디스크 드라이브가 읽기 및 쓰기 요청을 처리하는 시간을 측정한다. 이 카운터 값이 높으면(90% 초과) Physical Disk: Current Disk Queue Length 카운터를 검사하여 디스크 액세스를 기다리는 시스템 요청 수를 확인해야 한다. 대기 I/O 요청 수는 실제 디스크를 구성하는 스핀들 수의 1.5-2배 수준으로 유지되어야 한다. 스핀들 정보에 대해서는 서버 제조업체에 문의한다. 일반적으로 대부분의 디스크에는 스핀들이 하나만 있지만 RAID 장치에는 더 많은 스핀들이 있다. 하드웨어 RAID 장치는 시스템 모니터에 하나의 실제 디스크로 나타나지만 소프트웨어를 통해 만들어진 RAID 장치는 여러 드라이브로 나타난다. 각 실제 드라이브(RAID가 아닌)의 Physical Disk 카운터를 모니터링하거나 _Total 인스턴스를 사용하여 모든 컴퓨터 장치의 데이터를 모니터링할 수 있다.
Physical Disk: Current Disk Queue Length 및 Physical Disk: % Disk Time 카운터 값을 사용하여 디스크 하위 시스템의 병목 현상을 찾아 내십시오.이들 값이 모두 높으면 디스크 드라이브를 업그레이드하거나 자주 액세스하는 파일을 다른 디스크나 서버로 옮기는 것을 고려할 수 있다.
RAID 장치를 사용하는 경우 % Disk Time이 100%보다 더 큰 값을 나타낼 수 있다. 이 경우 Physical Disk: Average Disk Queue Length 카운터를 사용하여 평균적으로 디스크 액세스를 기다리는 시스템 요청의 수를 확인하는 방법을 고려해야 한다