내 시스템에는 스왑 영역이 없고 메모리가 16GB입니다.
내가 아는 한, Linux는 시스템에서 사용 가능한 RAM의 양에 따라 버퍼 메모리 할당을 동적으로 할당합니다.
현재 이는 다음과 같은 출력입니다 free -h
.
total used free shared buff/cache available
Mem: 14G 2,2G 10G 336M 2,3G 10G
Swap: 0B 0B 0B
이는 10GB에 더해 필요할 때 사용할 약 2GB(버퍼/캐시)를 갖게 된다는 의미입니다.
하지만 QEMU를 실행할 때 최대 10G의 RAM만 지정할 수 있습니다. 맞나요? 이 2GB를 사용할 수 있도록 할 수 있는 방법이 있나요?
감사해요.
답변1
free -h
사용 가능한 공간을 반올림하는 출력에 문제가 있을 수 있다고 생각합니다 . -h
사용 가능한 바이트 수를 정확히 확인한 다음 해당 제한 내에서 사용하도록 설정 하십시오 qemu
(약간의 여유 공간을 확보하세요).
반면, 가상 머신에 사용 가능한 RAM을 모두 사용하려는 경우 스왑 공간을 활성화하는 것이 좋습니다. 메모리가 부족해서 멈추는 것보다 스왑을 하는 것이 더 낫습니다.
디스크 교환은 시간이 많이 걸리므로 여유 공간을 최대한 확보하겠습니다.
(나중에 이곳을 방문하는 사람은 다음을 참조하세요.http://www.linuxatemyram.com/10GiB 이상을 사용할 수 있어야 하는 이유 버퍼/캐시 영역은 성능을 향상시키지만 프로그램에 더 많은 RAM이 필요할 때 자동으로 해제됩니다. )
답변2
메모리가 다른 목적으로 사용되지 않는 한 시스템을 사용함에 따라 버퍼/캐시가 증가합니다. 성능 향상을 위해 사용되지만, 메모리를 다른 목적으로 사용하면 공간이 확보됩니다.
QEMU에는 최대 11GB까지 할당이 가능할 것으로 보이지만 스왑 파일이 없으면 할당할 수 없습니다. 스왑 파일이 충분히 크면 QEMU에 16GB 이상을 할당할 수 있습니다. 서버의 메모리가 부족하면 성능이 크게 영향을 받습니다.
또 다른 중요한 가치는 공유입니다. 여러 개의 가상 머신이 있는 경우 QEMU는 해당 코드에 대한 일부 공유 메모리를 제공할 수 있습니다. 공유 메모리를 사용하는 프로세스 수에 관계없이 공유 메모리 복사본은 하나만 필요합니다.