저는 Red Hat Enterprise Linux에서 8GB RAM을 갖춘 3개의 가상 머신을 실행하고 있으며, 각 가상 머신에는 3GB의 메모리가 할당되고, 512MB의 가상 머신도 실행하고 있습니다. 게스트 운영 체제의 메모리 사용량(회사에서 지정하는 바이러스 백신 소프트웨어로 인해 일반적으로 1.5GB)도 고려하면 RAM은 총 11GB입니다. 컴퓨터를 정지시키지 않고 이 모든 작업을 실행하려면 최대 메모리 사용량이 7GB인 ZRAM을 사용합니다. 대부분의 경우 이런 식으로 문제가 거의 또는 전혀 발생하지 않지만 그 대가로 내 메모리는 일반적으로 약 700MB의 사용 가능한 물리적 RAM과 거의 동일한 양의 사용 가능한 ZRAM으로 가득 차 있습니다.
이 설정에서 발견한 것은 Save 명령( s virt-manager
로 변환됨 ) 을 사용하여 VM의 상태를 성공적으로 저장하려면 추가 스왑 공간을 추가해야 했고, 그런 일이 발생하면 내 VM이 대략적으로 저장된다는 것입니다. VM 상태 저장 알고리즘은 게스트 메모리 블록을 호스트 메모리에 복사한 다음 해당 블록을 하드 드라이브에 저장하는 것으로 나타나기 때문에 스왑 공간 비율은 VM 상태를 저장하려면 일정량의 추가 메모리가 필요함을 의미합니다. 시행착오를 통해 3GB VM을 1GB로 저장하는 데 필요한 최소 추가 가상 메모리가 있다는 것을 알았습니다. 즉, 스왑 공간으로 포맷된 1GB 파일에 게시해야 했기 때문에 최소 30%의 공간이 필요하다고 생각하게 되었습니다. 가상 머신이 할당한 메모리는 상태를 저장하는 데 사용될 수 있습니다. 또한 사용 가능한 ZRAM이 충분하지만 주 메모리가 거의 가득 찼을 때 GKrellm에서 내 시스템이 어떻게 메모리 스왑 공간을 최고 속도로 페이징하고 있는지 확인할 수 있습니다.virsh
managedsave
swapon <pagefile>
그렇다면 KVM-QEMU가 가상 머신의 상태를 저장하기 위해 추가 메모리가 필요한 이유를 아는 사람이 있습니까?