Computer >> 컴퓨터 >  >> 소프트웨어 >> 가상 기기

게스트 OS에서 메모리 오버커밋 감지

가상화 호스트(VMWare ESXi 또는 Hyper-V)에서 실행되는 VM을 관리하고 성능 문제를 분석할 때 게스트 OS에서 사용 가능한 메모리의 크기가 운영 체제에서 볼 수 있는 것(또는 그것). 예를 들어, 8GB의 메모리가 가상 머신에 할당되고 작업 관리자는 실행 중인 모든 프로세스가 3GB 미만을 소비하지만 1GB가 사용 가능한 것으로 표시합니다. 나머지 4GB는 어디에 있습니까?

일반적으로 이 동작은 하이퍼바이저의 메모리 오버 커밋 기능을 사용하여 발생합니다.

메모리 오버커밋 물리적 호스트에서 사용 가능한 것보다 많은 메모리를 가상 머신에 할당할 수 있는 하이퍼바이저 기능이지만 요청된 모든 메모리가 특정 순간에 할당될 수 있다는 보장은 없습니다. 메모리 오버커밋을 통해 현재 호스트 로드에 따라 VM 간의 동적 메모리 분배로 인해 가상 머신을 더 조밀하게 할당할 수 있습니다(유휴 VM의 리소스는 더 많은 로드된 VM에 재분배될 수 있음).

VMWare에서 메모리 오버커밋을 구현하는 메커니즘 중 하나는 Memory Ballooning입니다. . Hyper-V에서 동일한 기능이 동적 메모리에 의해 구현됩니다. .

참고 . 그건 그렇고, VMWare와 Microsoft 모두 메모리 압축을 광범위하고 효과적으로 사용하여 메모리 리소스를 절약합니다(메모리 오버 커밋 기술 구현 중 하나이기도 함).

VMWare에서 ESXi 메모리 오버커밋(가상 메모리 벌루닝)은 vmmemctl.sys에 의해 구현됩니다. 필요한 경우 가상 프로세스(예:풍선 팽창)를 만들어 물리적 메모리를 캡처할 수 있는 드라이버(VMware Tools에 포함). 따라서 점유된 메모리 양은 게스트 OS의 다른 응용 프로그램에서 사용할 수 없게 되며 하이퍼바이저는 다른 VM 간에 여유 메모리를 배포할 수 있습니다. Hyper-V 동적 메모리에서 dmvsc.sys 통합 서비스(Dynamic Memory VSC 구성 요소)의 드라이버가 사용됩니다. 메모리 초과 할당 설정은 하이퍼바이저 관리자가 관리합니다.

게스트 운영 체제에서 볼 수 있는 것보다 실제로 사용 가능한 물리적 메모리가 적다는 것을 게스트 VM 내에서 어떻게 감지할 수 있습니까?

게스트 Windows OS에 풍선 드라이버가 있는지 감지하는 방법과 크기가 얼마인지 살펴보겠습니다. 그럼 이 예를 분석해 보겠습니다.

게스트 Windows Server 2012 R2를 실행하는 VM에 8GB의 메모리가 할당됩니다. 작업 관리자는 93%의 메모리가 사용되었음을 보여줍니다(7.4GB의 메모리가 사용 중임). 그러나 실행 중인 모든 프로세스에서 사용하는 메모리 양을 합산하면 실제로 2.5GB의 메모리만 사용된다는 뜻밖의 결론을 얻을 수 있습니다. 나머지 5GB는 어디에 있습니까? 작업 관리자도 리소스 모니터도 이 질문에 답할 수 없습니다.

게스트 OS에서 메모리 오버커밋 감지

메모리에 무슨 일이 일어나고 있는지 이해하려면 RamMap을 사용해야 합니다. Mark Russinovich의 도구(이전 사례 중 하나에서 이 도구를 사용하여 Windows Server의 메타파일에 의한 높은 메모리 사용량 문제를 진단하는 방법을 보여주었습니다). Microsoft 웹 사이트(https://technet.microsoft.com/en-us/library/ff700229.aspx)에서 도구를 다운로드하고 관리자 권한으로 실행합니다. 그 후 사용 횟수 탭에서 대부분의 메모리(5.4GB)가 Driver Locked에서 사용되는 것을 볼 수 있습니다. 개체.

게스트 OS에서 메모리 오버커밋 감지

이것은 하이퍼바이저가 점유하고 게스트 OS에서 풍선 드라이버를 사용하여 다른 가상 머신 간에 배포한 메모리입니다. 하이퍼바이저 호스트에 충분한 메모리가 없거나 하이퍼바이저 관리자가 이 VM에 대한 메모리 제한 정책을 사용한다는 의미입니다.

Hyper-V의 현재 VM 메모리 통계는 성능 모니터에서 별도의 성능 카운터로 표시될 수 있습니다.

  • Hyper-V 동적 메모리 –> 게스트 표시 메모리
  • Hyper-V 동적 메모리 –> 물리적 메모리

이 동작을 비활성화하려면 하이퍼바이저 관리자가 동적 메모리 활성화를 비활성화해야 합니다. VM의 Hyper-V 설정에서 옵션을 선택하거나 최소 예약 값을 늘립니다.

게스트 OS에서 메모리 오버커밋 감지

VMWare ESXi 호스트를 사용하는 경우 리소스 설정에서 이 가상 머신에 대한 추가 메모리를 예약할 수 있습니다. 또는 모든 메모리 예약 – 모든 게스트 메모리를 예약합니다(모두 잠김).

게스트 OS에서 메모리 오버커밋 감지