'perfmon'에 해당되는 글 3건

  1. 2009.06.22 Windows Alert Log 설정을 Command로~~~
  2. 2008.08.22 Perfmon 좀더 편하게 사용하기!!
  3. 2008.08.22 Windows 성능 Count 정리

Windows에서 제공하는 Alert 기능을 활용하여 시스템 관련 모니터링을 하는 경우가 있다. Event Log에 이력을 남겨 관리할 수 있으며, 특정 조건 (임계치를 초과 할 경우)에서 수행할 동작을 미리 지정하여 시스템 운영의 자동화에 도움을 줄 수 있다.

 

이때 강력하게 사용할 수 있는 명령어가 “Logman.exe”란 명령어이다. 결론부터 말하자면 Windows 2003 과 Windows 2008에서 Command 로 수행될 수 있는 방법에는 약간의 차이가 있다.

 

Windows 2003에서 Logman.exe 명령어는 counter & trace Log만 명령어로 수행할 수 있다. 만약 성능로그를 활용해서 시스템 모니터링을 강화하고 싶다면, 특정 Registry 값을 Export하여 다른 서버에 등록해야 하는 번거로움이 있다.

 

[참고] Perfmon 中 Alert Log 배포를 쉽게 하는 방법

 

1. 원본 Source 서버에서 성능 모니터링을 수행하고자 하는 항목에 대한 Template을 작성한다.

 

image

 

2. 새로 생성한 Registry값을 확인하여 SID값을 원하는 값으로 수정한다.

 

   Key Value : HKLM\SYSTEM\CurrentControlSet\Services\SysmonLog\Log Queries

 

   image

 

3. 수정한 Registry 값을 Export 받은 후 다른서버에 적용한다.

 

만약 특정 Action 발생 후 Script를 실행한다면 수행할 계정을 선택하게 된다. 이러한 경우에는 배포하려는 서버에 공통계정을 만들어 두어 관리를 한다면 좀 더 효과적인 관리가 될 수 있다.

 

그럼 Windows 2008에도 똑같은 위치에 Registry값이 존재할까? 대답은 No!!!이다. 물론 Windows 2003의 Registry값을 등록할 경우 Key Value는 등록이 되며 Windows 2008 Perfmon에도 해당 설정된 값은 보이게 되지만 실행은 되지 않는다.

그럼 Windows 2008에는 이러한 작업을 일일히 해야 하는 것일까?

 

이런 Case일 경우 Windows 2008에서는 logman.exe 명령어를 사용하면 된다.

 

image

 

Windows 2008에서 logman 실행화면이다. 각 Command에 따라서 자세한 설명을 보고싶다면, 가령 예들들어 perfmon관련 Counter를 새로 만들고 싶다면 “logman create /?” 이런 방법으로 각 세부 설명을 볼 수 있다.

 

image

 

위 그림에서 확인할 수 있듯이 Windows 2008에서는 alert 뿐만이 아닌 구성 & API관련 내용에 대한 항목도 Command로 수행할 수 있다. 생성 뿐만이 아닌 수정도 아래와 같이 Command Base로 가능하다.

 

image

 

특정 Registry값을 몰라도 일반 CMD명령어로 alert 설정이 가능하기 때문에 배포를 손쉽게 할 수 있으며 내용 수정또한 쉽게 할 수있어 앞으로 이와 같은 Command를 활용하여 Windows서버 관리를 좀더 효율적으로 하면 좋지 않을까~~~^^

신고
Posted by hotpoto

● 성능 정보 확인시 수직선이 표시되지 않는 방법

  - 출처 : http://support.microsoft.com/kb/283110

   To enable or disable this behavior:

    1. Start Regedit.exe.

    2. Navigate to the following key: HKEY_CURRENT_USER\Software\Microsoft\SystemMonitor

    3. On the Edit menu, click New, and then click DWord Value.

    4. Type the following value in the Name box: DisplaySingleLogSampleValue

    5. Set the value to 1 if you do not want to view the vertical line indicators, or set the value to 0

       which is the default setting, to display the vertical indicators.

● 성능 정보 확인시 값에 쉼표 표시하는 방법

  - 출처 : http://support.microsoft.com/kb/300884

   To enable or disable this behavior:

    1. Start Regedit.exe.

    2. Navigate to the following key: HKEY_CURRENT_USER\Software\Microsoft\SystemMonitor

    3. On the Edit menu, click New, and then click DWord Value.

    4. Type the following value in the Name box: DisplayThousandsSeparator

    5. Set the value to 1 if you do not want to view the vertical line indicators, or set the value to 0,

       which is the default setting, to display the vertical indicators.

신고
Posted by hotpoto

성능 Count 검색 중 좋은 문서를 발견했다.^^

성능 Count에 대한 자세한 설명과 임계치도 나와있어서 System 병목현상을 Check하는데 도움이 되는

글이라고 생각!!

출처 : http://technet.microsoft.com/ko-kr/magazine/cc718984.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보다 크면 디스크 병목 현상이 발생할 수 있습니다.

● 메모리 병목 현상

   메모리 부족은 대체로 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보다 크면 메모리 누수 가능성이 있습니다.

신고
Posted by hotpoto

티스토리 툴바