메모리를 확보하기 위해 QEMU에서 실행 중인 특정 Linux 게스트를 원합니다.앞으로호스트에 메모리 압박이 있습니다. 수동으로 트리거하는 방법버티오 벌룬 드라이버가능한 한 많은 메모리를 확보하도록 하시겠습니까?
답변1
다음과 같이 작동하는 것 같습니다. 먼저 게스트가 사용할 수 있는 메모리 양을 줄인 다음 (선택적으로) 원래 설정으로 복원합니다.
virsh --connect qemu:///system qemu-monitor-command --domain NAME --hmp 'balloon 512'
# Wait for the balloon driver to release some memory
sleep 2
virsh --connect qemu:///system qemu-monitor-command --domain NAME --hmp 'balloon 4096'
또는 올바른 스크립트로:
#!/bin/bash
set -eu
domain=$1
# How many MB to temporarily reduce the guest memory to; don't set this too
# low or the OOM killer will start killing.
reduced_memory=$2
hmp() {
virsh --connect qemu:///system qemu-monitor-command --domain "$domain" --hmp "$1"
}
original_memory=$(hmp "info balloon" | grep = | cut -d '=' -f 2)
hmp "balloon $reduced_memory" > /dev/null
# Wait for the balloon driver to release some memory before setting it back
sleep 2
hmp "balloon $original_memory" > /dev/null