Microsoft Hyper-V 모니터링을 위한 팁과 도구

하이퍼-V 성능 모니터링이 필요한 이유

하이퍼-V 자원 모니터링을 통해 병목 현상을 감지하고 자원을 관리하여 성능을 최적화할 수 있습니다. 하이퍼-V 성능을 모니터링하여 리소스에 대한 통계를 확인하여 다음과 같은 사항에 대한 결정을 내릴 수 있습니다. 현재 하이퍼-V 호스트에 더 많은 리소스를 할당하거나, VM에서 소프트웨어를 다시 구성하거나, VM을 다른 하이퍼-V 호스트로 이동합니다. SNMP(Simple Network Management Protocol)는 하이퍼-V 호스트의 모니터링을 위해 폐기되었음을 유의하십시오.

VM 성능이 낮게 감지되면 가능한 원인을 좁히기 위해 다음 질문을 사용하십시오:

  1. 하이퍼-V 호스트에서 실행 중인 VM에 충분한 리소스가 할당되었습니까?
  2. 하이퍼-V 호스트에 충분한 무료 하드웨어 리소스가 있습니까?
  3. 하나의 VM 또는 여러 VM에서 성능 문제가 있습니까?

다행히도 Hyper-V에는 Hyper-V 관리자의 GUI에서 시작하여 성능 및 자원 소비를 모니터링하는 데 사용할 수 있는 무료 기본 도구가 있습니다. 로드 밸런싱을 위해 Hyper-V 호스트 간에 VM 이동을 자동화하려면 클러스터 내에서 이 작업을 수행하는 기본 기능이 있습니다. Hyper-V 클러스터를 사용하는 경우 Hyper-V 서버의 자원 사용량을 최적화하고 로드 밸런싱을 수행하기 위해 VM을 자동으로 이동시키려면 유료 솔루션인 SCVMM(System Center Virtual Machine Manager)이 필요합니다. Hyper-V 복제 모니터링도 SCVMM에서 수행할 수 있습니다.

VM 내부 자원을 모니터링하기 위해 Windows 작업 관리자를 사용하지 마십시오

Windows를 실행하는 물리 컴퓨터의 성능 및 자원 사용량을 빠르고 쉽게 확인하는 방법은 작업 관리자를 열어보는 것입니다. 그러나 VM 내부 성능을 모니터링하기 위해 Windows 작업 관리자를 사용하지 마십시오. Windows 작업 관리자는 가상 머신에 의한 CPU 및 메모리 실제 사용량을 표시하지 않습니다. 이는 작업 관리자가 기계를 가상으로 식별하지 않으며 VM에 자원이 어떻게 할당되는지 알 수 없기 때문입니다. 작업 관리자를 사용하여 실행 중인 프로세스, 서비스 및 응용 프로그램을 모니터링하되 VM 내부 성능을 모니터링하지 마십시오.

Hyper-V 호스트에서 성능 모니터 사용하기

Hyper-V 호스트에서 성능 모니터(perfmon)를 사용하고 프로세서, 메모리, 인터페이스, 물리 디스크 및 기타 하드웨어의 이용률을 모니터링하기 위한 적절한 카운터를 사용하십시오. perfmon 유틸리티는 Windows 시스템에서 성능 문제 해결에 널리 사용됩니다.

perfmon을 실행하거나 컴퓨터 관리 창에서 성능 모니터를 찾아 필요한 카운터를 추가하고 그래픽 사용자 인터페이스(GUI)에서 통계를 모니터링합니다. 수집된 정보는 차트, 그래프 및 다이어그램으로 표시할 수 있습니다.

하이퍼-V 호스트(resmon.exe)에서 리소스 모니터를 열어도 유용할 수 있습니다.

하이퍼-V에 대한 카운터 사용

성능 모니터는 하이퍼-V 호스트에서 실행되는 가상 머신에 대해 부정확한 정보를 제공할 수 있습니다. 이는 표준(일반) 카운터가 VM 모니터링에 적합하지 않기 때문입니다. 하이퍼-V를 실행하는 물리 컴퓨터가 네 개의 코어를 가진 프로세서를 가지고 있고, 하이퍼-V 호스트에는 두 개의 VM이 있습니다. 첫 번째 VM에는 네 개의 가상 프로세서가 할당되어 있습니다. 첫 번째 VM에서 네 개의 가상 프로세서를 100%로 로드하는 응용 프로그램이 실행되고 물리적 하이퍼-V 호스트의 모든 프로세서 리소스를 사용합니다.

동시에 이 하이퍼-V 호스트에서 두 번째 VM을 시작하여 첫 번째 경우와 동일한 가상 장치 구성을 갖고 동일한 응용 프로그램을 실행합니다. 두 가상 머신 모두에서 각각의 VM 프로세서가 100%로 로드된 정보가 표시됩니다. 그러나 각 VM의 응용 프로그램은 첫 번째 경우에는 하나의 VM만 실행되었을 때와 비교하여 속도의 50%에서 작동합니다(가상 머신 내부에서 작업 관리자 또는 성능 모니터를 열 경우). 동적 메모리가 활성화되어 있는 경우 메모리 정보도 유사하게 표시됩니다.

하이퍼-V 호스트의 성능 모니터에서 하이퍼-V별 카운터를 사용하여 이 하이퍼-V 호스트의 리소스를 모니터링합니다. 하이퍼-V 카운터는 하이퍼-V 성능 모니터링을 위한 가장 정확한 정보를 표시합니다.

프로세서 성능

하이퍼-V 호스트에서 물리 프로세서 성능을 모니터링하는 데이 카운터를 사용하십시오: 하이퍼-V 하이퍼바이저 논리 프로세서% 총 실행 시간

가상 머신의 가상 프로세서 성능을 모니터링하는 카운터 : 하이퍼-V 하이퍼바이저 가상 프로세서% 게스트 실행 시간

  • 실행 중인 가상 머신에 대해 카운터가 값 75% 이하를 표시할 때 최적의 성능을 발휘합니다.
  • A value in the 75 – 85% range is a warning.
  • 85% 이상의 값에 대해서는 그러한 높은 CPU 사용량의 이유를 조사하는 것이 권장됩니다.

루트 가상 프로세서 사용률을 모니터링하는 카운터 : \하이퍼-V 하이퍼바이저 루트 가상 프로세서(*)\% 총 실행 시간

메모리 활용

하이퍼-V 모니터링 및 RAM 사용량을 확인하는 데 사용되는 여러 카운터가 있습니다.

하이퍼-V 호스트의 메모리 사용 가능한 Mbytes 카운터는 메모리 사용량을 모니터링하는 데 사용됩니다.

  • 10% 이상의 빈 RAM – 건강함
  • 빈 RAM이 10% 미만 – 경고
  • 빈 RAM이 100MB 미만 – 비상

각 VM에 할당할 메모리 양을 정의하기 위해 VM이 사용하는 메모리 양을 확인하려면 메모리 커밋된 바이트 카운터를 사용하십시오.

\하이퍼-V 동적 메모리 밸런서\평균 압력 카운터를 사용하여 동적 메모리를 모니터링하십시오.

  • 80% 미만 – 건강함
  • 80% 이상 – 경고
  • 100% – 비상

디스크 지연

LogicalDisk(*)\평균 디스크 초\읽기 또는 쓰기 카운터를 사용하여 Hyper-V에서 실행 중인 VM의 전반적인 성능에 중요한 디스크 지연 시간을 모니터링하십시오.

  • <10 ms (0.010 s) – 정상
  • >15ms (0.015 s) – 경고
  • >25 ms (0.025 s) – 중요

네트워킹

네트워크 사용량을 모니터링하려면 \네트워크 인터페이스(*)\출력 대기열 길이 카운터를 사용하십시오. 이는 출력 패킷 대기열의 네트워크 패킷 수를 측정합니다.

  • 평균적으로 1보다 적음 – 건강함
  • 평균적으로 1보다 큼 – 경고
  • 평균적으로 2보다 큼 – 중요

또한 다음 카운터를 고려하십시오:

네트워크 인터페이스 (네트워크 어댑터 이름)\바이트/초

Hyper-V 가상 네트워크 어댑터 (가상 머신 이름)\바이트/초

VM에 충분한 메모리 제공

각 머신은 적절한 작동을 위해 충분한 메모리가 필요하며, 그렇지 않으면 성능이 저하되고, 스왑 파일이 집중적으로 사용되고(구성된 경우) 디스크가 과부하됩니다. 또한, 스왑 파일은 RAM보다 느리게 작동합니다. 운영 체제와 응용 프로그램이 물리적 메모리 약 12 GB를 소비한다면, 컴퓨터에 16 GB RAM을 설치하십시오. VM 메모리 할당에도 동일한 접근 방식을 사용하십시오. 예를 들어, VM에서 실행 중인 소프트웨어가 6 GB RAM을 소비한다면 VM에 8 GB RAM을 제공하십시오. 적절한 작동을 위해 추가적인 메모리를 최소 20% 제공하십시오. 추가 메모리를 버퍼로 제공하는 것이 좋습니다.

로그 모니터링을 위해 이벤트 뷰어 사용

이벤트 뷰어를 사용하여 Hyper-V 호스트 및 게스트 VM의 로그를 모니터링하면 문제 해결에 유용합니다. 시스템 이벤트 및 응용 프로그램 이벤트와 같은 로그를 보고 분석하면 문제를 파악하고 올바른 해결책을 찾을 수 있습니다. 이벤트 뷰어는 응용 프로그램과 관련된 오류 로그를 표시하며 운영 체제 수준에서 작동합니다. 이벤트 뷰어를 열려면 먼저 컴퓨터 관리를 열어야 합니다.

Hyper-V 로그는 다음 위치에 있습니다:

이벤트 뷰어 > 응용 프로그램 및 서비스 로그 > Microsoft > Windows

다음은 이벤트 뷰어의 Hyper-V 로그 범주입니다:

  • Hyper-V-Compute
  • Hyper-V-Config
  • Hyper-V-Guest-Drivers
  • Hyper-V Hypervisor
  • Hyper-V-StorageVSP
  • Hyper-V-VID
  • Hyper-V-VMMS
  • Hyper-V-VmSwitch
  • Hyper-V-Worker

컴퓨터 관리에서 Windows 서비스를 관리할 수 있습니다. 다음과 같은 Hyper-V 서비스를 모니터링하는 것이 좋습니다:

  • Hyper-V 이미지 관리 서비스 (vhdsvc)
  • Hyper-V 가상 머신 관리 (vmms)
  • Hyper-V 네트워킹 관리 서비스 (nvspwmi)

PowerShell에서 리소스 모니터링

PowerShell에서 Hyper-V 호스트 및 가상 머신의 리소스를 모니터링할 수 있습니다. 이것은 비 GUI Windows OS에서 특히 유용합니다. PowerShell에서 성능을 모니터링하려면 특수한 cmdlet을 사용하십시오.

Windows 이벤트 로그와 상호 작용하여 Hyper-V의 운영 로그를 보십시오:

Get-WinEvent -LogName Microsoft-Windows-Hyper-V-Hypervisor-Operational | select -First 1 | Format-List *

이 명령은 Hyper-V 호스트 또는 게스트 VM의 성능 카운터 개체와 상호 작용하며 Windows 모니터링 기능을 사용하여 원격 또는 로컬 컴퓨터에서 데이터를 직접 가져올 수 있게 합니다:

Get-Counter

카운터 목록 세트를 가져오고 표시된 결과를 정렬합니다:

Get-Counter -ListSet * |

  Sort-Object -Property CounterSetName |

    Format-Table CounterSetName, CounterSetType -AutoSize

여러 대의 컴퓨터에서 작동하는 디스크의 성능을 모니터링합니다:

$DiskReads = “\LogicalDisk(C:)\Disk Reads/sec”

$DiskReads | Get-Counter -ComputerName Server01, Server02 -MaxSamples 10

PowerShell에서 Hyper-V 성능 모니터링을 위한 사용자 지정 스크립트를 만들 수 있습니다.

결론

Hyper-V 모니터링은 VM 성능 문제가 Hyper-V 호스트 또는 게스트 VM과 관련이 있는지를 확인하는 데 도움을 줍니다. Hyper-V 성능 모니터링을 통해 Hyper-V 호스트의 하드웨어 자원 사용을 최적화할 수 있습니다. 물리적 호스트를 모니터링하는 데 사용되는 Windows 작업 관리자와 같은 일부 도구는 Hyper-V에서 실행되는 VM의 성능을 모니터링하는 데 적합하지 않습니다. 성능 모니터에는 Hyper-V 호스트 및 VM의 자원을 모니터링하기 위해 채택된 Hyper-V 특정 카운터가 포함되어 있습니다. GUI를 사용하는 경우 Hyper-V 관리자, 이벤트 뷰어 및 리소스 모니터를 사용하고, 명령줄 인터페이스를 사용하는 경우 PowerShell에서 특수 명령을 사용할 수 있습니다.

기본 도구의 기능이 충분하지 않은 경우 다른 Hyper-V 모니터링 소프트웨어를 사용해 보세요. 모니터링을 통해 Hyper-V 성능을 최적화할 수 있지만, 재해가 발생할 때 데이터 손실을 방지할 수는 없습니다. 신뢰할 수 있는 Hyper-V 백업 소프트웨어를 고려하여 데이터를 보호하세요. NAKIVO의 무료 버전을 다운로드하여 다중 플랫폼 지원, 랜섬웨어 복구 등을 이용하세요.

Source:
https://www.nakivo.com/blog/tips-and-tools-for-microsoft-hyper-v-monitoring/