나는 VM 호스트 전용 우분투 상자를 두 명의 게스트로 설정했습니다. 물리적 CPU 2개(각 코어 6개), 16GB RAM, 하드디스크 3개가 있습니다. 호스트 OS는 60GB SSD에 있고 게스트 OS는 두 개의 파티션으로 분할된 별도의 HDD에 있습니다. 첫 번째 파티션은 게스트 운영 체제에 대한 원시 qcow 이미지 파일을 보유하고 두 번째 파티션은 게스트에 블록 장치로 할당됩니다. ("프로그램" 및 "데이터"의 경우) Linux 게스트에서는 메모리 벌루닝을 활성화했지만 Windows에서는 활성화하지 않았습니다.
저는 바로 어제 처음으로 메모리 부족 현상을 경험했기 때문에 내 컴퓨터에서 게스트의 메모리 사용량을 실시간으로 보기로 결정했습니다. 그래서 첨부된 그림에서 볼 수 있듯이 두 개의 퍼티 창에서 두 개의 htop이 실행되고 있습니다. 그림의 상단에는 호스트가 있고 하단에는 게스트 중 한 명(Linux)이 있습니다. 제가 이해하지 못하는 몇 가지 사항이 있습니다.
- 호스트에서 RES 열은 첫 번째 게스트의 경우 5778M이고 다른 게스트의 경우 4274M이라고 표시됩니다. 이는 나에게 최대 10G까지 광고되지만 그림 상단의 Mem 라인에는 이상하게도 6.9G가 표시되고 더욱이 클라이언트 htop이 하단에 표시됩니다. 560M 메모리가 사용중이라고 뜹니다. (560M != 5778M)
가상화에 대한 Redhat 문서를 읽었으며 게스트에 할당된 메모리 + 비디오 RAM + "일부" 오버헤드(정확히 결정할 수 없음)를 더하여 게스트에 필요한 RAM의 양을 계산해야 한다고 말합니다. 위의 숫자: 게스트가 560M을 사용 중 + 16M 비디오 메모리가 ~580M이므로 제 경우의 "일부" 오버헤드는 5.2G인가요?
5778M은 리눅스 게스트가 사용할 수 있는 전체 메모리가 아니고, 도메인 xml 파일에 8G가 설정되어 있어서 답답하지 않습니다. 아직.
오늘 아침에 Linux 게스트를 다시 시작했을 때 호스트에서 ~2G RAM 사용량으로 시작되었고 그 이후로 계속 증가하고 있습니다. 게스트 OS는 ~450M으로 시작하여 560M으로 이동했습니다.
호스트에 스왑 파일을 할당하면 메모리 부족 문제를 해결하는 데 도움이 될 수 있다는 내용도 읽었으므로 32G 스왑 파일을 만들고 호스트의 sysctl에서 스왑성을 20으로 설정했습니다.
그러나 나는 게스트와 호스트 사이의 메모리 사용량/할당/무엇이든 여전히 이해하지 못합니다.
이 분야에서 더 많은 경험을 가진 사람이 나에게 올바른 방향/튜토리얼/위키피디아/읽을 내용을 알려줄 수 있습니까? qemu 호스트 게스트 htops