류짱:Beyond MySelf

서버 성능 평가
http://technet.microsoft.com/ko-kr/magazine/2008.08.pulse.aspx

 

하드 디스크 병목 현상

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

디스크 개체가 서버에서 비활성화된 경우 명령줄 도구 Diskperf 통해 활성화해야 합니다. 또한 % Disk Time 100% 초과할 있으므로 대신 % Idle Time, Avg. Disk sec/Read Avg. Disk sec/write 사용하면 하드 디스크가 얼마나 많이 사용되고 있는지 좀더 정확하게 파악할 있습니다. % Disk Time 대한 자세한 내용은 support.microsoft.com/kb/310067 기술 자료 문서를 참조하십시오.


다음은 Microsoft Service Support 엔지니어가 디스크 모니터링을 위해 사용하는 카운터입니다.

LogicalDisk\% Free Space
선택한 논리 디스크 드라이브에서 사용할 있는 공간의 백분율을 측정합니다. 카운터가 15% 아래로 떨어지면 OS에서 중요 파일을 저장하기 위한 여유 공간이 부족할 있습니다. 경우 확실한 해결책은 디스크 공간을 늘리는 것입니다.

PhysicalDisk\% Idle Time
샘플 간격 디스크가 유휴 상태였던 시간 백분율을 측정합니다. 카운터가 20% 아래로 떨어지면 디스크 시스템이 포화 상태인 것입니다. 현재 디스크 시스템을 빠른 디스크 시스템으로 교체하는 것이 좋습니다.

PhysicalDisk\Avg. Disk Sec/Read
디스크에서 데이터를 읽는 걸리는 평균 시간() 측정합니다. 값이 25ms(밀리초)보다 크면 디스크에서 읽을 디스크 시스템에 지연 현상이 발생하고 있음을 의미합니다. SQL Server® Exchange Server 호스팅하는 중요 업무 서버의 경우 허용 가능한 임계값은 10ms 미만입니다. 여기에서 가장 현명한 해결책은 현재 디스크 시스템을 빠른 디스크 시스템으로 교체하는 것입니다.

PhysicalDisk\Avg. Disk Sec/Write
디스크에 데이터를 쓰는 걸리는 평균 시간을 측정합니다. 시간이 25ms보다 크면 디스크에 디스크 시스템에 지연 현상이 발생하고 있음을 의미합니다. SQL Server Exchange Server 호스팅하는 중요 업무 서버의 경우 허용 가능한 임계값은 10ms 미만입니다. 여기에서 현명한 해결책은 디스크 시스템을 빠른 디스크 시스템으로 교체하는 것입니다.

PhysicalDisk\Avg. Disk Queue Length
얼마나 많은 I/O 작업이 하드 드라이브를 사용할 있을 때까지 대기하고 있는지 나타냅니다. 여기에서 값이 스핀들 + 2보다 크면 디스크 자체에 병목 현상이 있음을 의미합니다.

Memory\Cache Bytes
파일 시스템 캐시에 사용되고 있는 메모리의 양을 나타냅니다. 값이 200MB보다 크면 디스크 병목 현상이 발생할 있습니다.

Examining and Tuning Disk Performance
http://technet.microsoft.com/en-us/library/cc938624.aspx

 

메모리 병목 현상

메모리 부족은 대체로 RAM 부족, 메모리 누수 또는 boot.ini 메모리 스위치 등으로 인해 발생합니다. 메모리 카운터를 소개하기 전에 먼저 /3GB 스위치에 대해 설명하겠습니다.

메모리가 많을수록 디스크 I/O 작업이 줄고 응용 프로그램 성능이 높아집니다. /3GB 스위치는 사용자 모드 프로그램에 많은 메모리를 제공하기 위한 방법으로 Windows NT®에서 도입되었습니다.

Windows에서는 4GB 가상 주소 공간을 사용하며 이는 시스템의 물리적 RAM과는 무관합니다. 기본적으로 하위 2GB 사용자 모드 프로그램을 위해 사용되고, 상위 2GB 커널 모드 프로그램을 위해 사용됩니다. /3GB 스위치를 사용하면 사용자 모드 프로세스에 3GB 제공됩니다. 그러면 물론 커널 메모리가 가상 주소 공간의 1GB 남게 되므로 영향을 받습니다. 경우 페이징되지 않은 바이트 풀링, 페이징된 바이트 풀링, 사용 가능한 시스템 페이지 테이블 항목 데스크톱 힙이 모두 1GB 공간 안에 들어가야 하므로 문제가 발생할 있습니다. 따라서 /3GB 스위치는 해당 환경에서 충분한 테스트를 거친 후에만 사용해야 합니다.

메모리 관련 병목 현상이 발생하는 경우 스위치를 의심해 있습니다. /3GB 스위치가 문제의 원인이 아니라면 다음 카운터를 사용하여 잠재적인 메모리 병목 현상을 진단할 있습니다.

Memory\% Committed Bytes in Use
커밋된 바이트와 커밋 한도의 비율, 가상 메모리의 사용량을 측정합니다. 값이 80%보다 크면 메모리가 부족함을 나타냅니다. 경우 확실한 해결책은 메모리를 추가하는 것입니다.

Memory\% Available Mbytes
프로세스 실행을 위해 사용할 있는 실제 메모리의 (메가바이트) 측정합니다. 값이 물리적 RAM 5%보다 작으면 메모리가 부족함을 나타내며 이로 인해 페이징 작업이 늘어날 있습니다. 문제를 해결하려면 메모리를 추가해야 합니다.

Memory\Free System Page Table Entries
시스템에서 현재 사용되지 않는 페이지 테이블 항목의 수를 나타냅니다. 숫자가 5,000보다 작으면 메모리 누수가 있을 있습니다.

Memory\Pool Non-Paged Bytes
페이징되지 않은 풀의 크기(바이트) 측정합니다. 디스크에 없고 대신 실제 메모리에 남아 있어야 하는 할당된 개체에 대한 시스템 메모리 영역입니다. 값이 175MB(또는 /3GB 스위치의 경우 100MB)보다 크면 메모리 누수 가능성이 있습니다. 일반적인 이벤트 ID 2019 시스템 이벤트 로그에 기록됩니다.

Memory\Pool Paged Bytes
페이징된 풀의 크기(바이트) 측정합니다. 사용되고 있지 않을 디스크에 있는 개체에 대한 시스템 메모리 영역입니다. 값이 250MB(또는 /3GB 스위치의 경우 170MB)보다 크면 메모리 누수 가능성이 있습니다. 일반적인 이벤트 ID 2020 시스템 이벤트 로그에 기록됩니다.

Memory\Pages per Second
하드 페이지 결함을 해결하기 위해 디스크에서 페이지를 읽거나 쓰는 속도를 측정합니다. 과도한 페이징으로 인해 값이 1,000보다 크면 메모리 누수 가능성이 있습니다.

 

프로세서 병목 현상

프로세서 병목 현상은 프로세서 자체의 성능이 나빠서 발생하거나 비효율적인 응용 프로그램으로 인해 발생할 있습니다. 실제 메모리 부족으로 인해 프로세서가 페이징에서 많은 시간을 보내지 않는지 다시 확인해야 합니다. 잠재적인 프로세서 병목 현상을 조사할 Microsoft Service Support 엔지니어는 다음 카운터를 사용합니다.

Processor\% Processor Time

프로세서가 비유휴 스레드 실행에 소비하는 경과 시간의 백분율을 측정합니다. 백분율이 85%보다 크면 프로세서에 병목 현상이 발생하고 서버에 빠른 프로세서가 필요할 있습니다.

Processor\% User Time

프로세서가 사용자 모드에서 소비하는 경과 시간의 백분율을 측정합니다. 값이 높으면 서버에서 응용 프로그램이 많이 실행되고 있음을 나타냅니다. 가지 가능한 해결책은 프로세서 리소스를 많이 사용하는 응용 프로그램을 최적화하는 것입니다.

Processor\% Interrupt Time

지정된 샘플 간격 프로세서가 하드웨어 인터럽트 수신 서비스 제공에 소비하는 시간을 측정합니다. 값이 15%보다 크면 하드웨어 문제일 있습니다.

System\Processor Queue Length

프로세서 큐의 스레드 수를 나타냅니다. 값이 일정 기간 동안 CPU x 2보다 크면 서버에 프로세서 성능이 부족한 것입니다.

 

네트워크 병목 현상

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

Network Interface\Bytes Total/Sec

프레이밍 문자를 포함하여 네트워크 어댑터를 통해 보내고 받는 바이트의 비율을 측정합니다. 인터페이스의 70% 이상이 사용되면 네트워크가 포화 상태입니다. 100Mbps NIC 경우 사용되는 인터페이스는 8.7MB/초입니다(100Mbps = 100000kbps = 12.5MB/* 70%). 이와 같이 포화 상태이면 빠른 네트워크 카드를 추가하거나 네트워크를 분할해야 있습니다.|

Network Interface\Output Queue Length

출력 패킷 큐의 길이(패킷) 측정합니다. 값이 2보다 크면 네트워크가 포화 상태입니다. 문제는 빠른 네트워크 카드를 추가하거나 네트워크를 분할하여 해결할 있습니다.

 

프로세스 병목 현상

제대로 작동하지 않는 프로세스나 최적화되지 않은 프로세스가 있으면 서버 성능이 크게 저하될 있습니다. 스레드 핸들 누수는 결국 서버 다운으로 이어지고, 과도한 프로세서 사용은 서버 속도를 저하시킵니다. 다음 카운터는 프로세스 관련 병목 현상을 진단할 유용합니다.

Process\Handle Count

프로세스로 현재 열린 핸들 수를 측정합니다. 값이 10,000보다 크면 핸들 누수 가능성이 있습니다.

Process\Thread Count

프로세스에서 현재 활성 스레드 수를 측정합니다. 값이 최소 최대 스레드 사이에서 500보다 크면 스레드 누수 가능성이 있습니다.

Process\Private Bytes

다른 프로세스와 공유할 없는 프로세스에 할당된 메모리의 양입니다. 값이 최소 최대 스레드 사이에서 250보다 크면 메모리 누수 가능성이 있습니다.

 

[참고 사이트]
Windows 2000 Performance Tuning
http://technet.microsoft.com/en-us/library/bb742460.aspx

서버 성능 평가
http://technet.microsoft.com/ko-kr/magazine/2008.08.pulse.aspx

Performance Monitor Counters
http://technet.microsoft.com/en-us/library/cc768048.aspx

Performance Analysis of Logs (PAL) Tool
http://pal.codeplex.com/

감사합니다.

저작자 표시 비영리 변경 금지
신고

Comment 0