17.4.2. 명령줄 인터페이스를 사용하여 가상 머신 메모리 추가 및 제거
VM(가상 머신)의 성능을 개선하거나 사용 중인 호스트 리소스를 확보하려면 CLI를 사용하여 VM에 할당된 메모리 양을 조정할 수 있습니다.
사전 요구 사항
게스트 OS는 메모리 balloon 드라이버를 실행하고 있습니다. 이를 확인하려면 다음을 수행하십시오.
VM 구성에
memballoon
장치가 포함되어 있는지 확인합니다.# virsh dumpxml testguest | grep memballoon <memballoon model='virtio'> </memballoon>
이 명령이 출력을 표시하고 모델이
none
으로 설정되지 않은 경우memballoon
장치가 있습니다.게스트 OS에서 볼론 드라이버가 설치되어 있는지 확인합니다.
-
Windows 게스트에서 드라이버는
virtio-win
드라이버 패키지의 일부로 설치됩니다. 자세한 내용은 Windows 가상 머신 용 KVM 반가상화 드라이버 설치를 참조하십시오. -
Linux 게스트에서는 일반적으로 드라이버는 기본적으로 포함되어 있으며
memballoon
장치가 있는 경우 활성화됩니다.
-
Windows 게스트에서 드라이버는
절차
선택 사항: 최대 메모리와 현재 VM에 사용된 메모리에 대한 정보를 가져옵니다. 이는 변경 사항에 대한 기준선 역할을 하고 확인에도 적용됩니다.
# virsh dominfo testguest Max memory: 2097152 KiB Used memory: 2097152 KiB
VM에 할당된 최대 메모리를 조정합니다. 이 값을 늘리면 VM의 성능이 향상되고 VM이 호스트에 있는 성능 풋프린트를 줄일 수 있습니다. 이러한 변경은 종료 VM에서만 수행할 수 있으므로 실행 중인 VM을 조정하려면 재부팅이 필요합니다.
예를 들어 testguest VM에서 4096MiB로 사용할 수 있는 최대 메모리를 변경하려면 다음을 수행합니다.
# virt-xml testguest --edit --memory memory=4096,currentMemory=4096 Domain 'testguest' defined successfully. Changes will take effect after the domain is fully powered off.
실행 중인 VM의 최대 메모리를 늘리려면 메모리 장치를 VM에 연결할 수 있습니다. 이를 메모리 핫 플러그 라고도 합니다. 자세한 내용은 메모리 장치를 가상 머신에 연결을 참조하십시오.
주의실행 중인 VM(메모리 핫플러그라고도 함)에서 메모리 장치를 제거하는 것은 지원되지 않으며 Red Hat에서는 사용하지 않는 것이 좋습니다.
선택 사항: VM에서 현재 사용하는 메모리를 최대 할당까지 조정할 수도 있습니다. 이렇게 하면 최대 VM 할당을 변경하지 않고 다음 재부팅까지 VM에 있는 메모리 로드가 조정됩니다.
# virsh setmem testguest --current 2048
검증
VM에서 사용하는 메모리가 업데이트되었는지 확인합니다.
# virsh dominfo testguest Max memory: 4194304 KiB Used memory: 2097152 KiB
선택 사항: 현재 VM 메모리를 조정한 경우 VM의 메모리 balloon 통계를 가져와 메모리 사용량을 얼마나 효과적으로 규제하는지 평가할 수 있습니다.
# virsh domstats --balloon testguest Domain: 'testguest' balloon.current=365624 balloon.maximum=4194304 balloon.swap_in=0 balloon.swap_out=0 balloon.major_fault=306 balloon.minor_fault=156117 balloon.unused=3834448 balloon.available=4035008 balloon.usable=3746340 balloon.last-update=1587971682 balloon.disk_caches=75444 balloon.hugetlb_pgalloc=0 balloon.hugetlb_pgfail=0 balloon.rss=1005456