Windows가 VirtualBox에서 사용 중인 RAM을 제대로 보고하지 않는 이유는 무엇입니까?

Windows가 VirtualBox에서 사용 중인 RAM을 제대로 보고하지 않는 이유는 무엇입니까?

그래서 호기심에 Windows 7 VM(3GB RAM 할당)을 실행하면서 RAM 사용량을 살펴보기로 결정했습니다. 저는... 결과를 보고 놀랐습니다. 그리고 왜 이러한 결과가 나오는지 궁금합니다.

내 호스트 컴퓨터(win 8.1)의 작업 관리자에는 다음이 표시됩니다.호스트 프로세스 탐색기

이는 실제로 Chrome이 얼마나 큰지를 보여줍니다.... 어쨌든 VirtualBox 관리자는 75MB의 RAM만 사용한다는 점에 유의하세요. 글쎄요, 그건 합리적입니다. 결국 이것은 단지관리자VM 자체는 아닙니다. 하지만 잠깐만요. 해당 숫자(여기에 표시되지 않는 것을 모두 합하더라도)는 현재 RAM 사용량(성능 탭에 보고된 대로 9GB)에 합산되지 않습니다. 내 게스트 컴퓨터가 현재 1.5GB를 사용하고 있다는 점을 고려하면 목록에서 조금 더 높을 것으로 예상할 수 있습니다.

좋습니다. 다른 도구를 사용해 보겠습니다.RAM맵

먼저, RAMMap의 스크린샷 두 개가 더 있습니다:여기에 이미지 설명을 입력하세요 여기에 이미지 설명을 입력하세요

글쎄요, "프로세스 프라이빗"에 대한 비트는 약 3GB인 것처럼 보이지만(대략 눈에 띄는 크기가 아닌 한), 여전히 Chrome을 제외하고는 100MB 이상의 RAM을 차지하는 것은 없습니다.

아, 이거 좀 보세요:여기에 이미지 설명을 입력하세요

드디어 어디 있는지 찾은 것 같은데... 그런데 이게 뭐죠? VBox는 게스트의 RAM을 RAM에 계속 로드되는 파일처럼 취급합니까? 이건...완전히 다른 건가요? Windows의 일반 작업 관리자 도구에서 이 사실을 알리지 않는 이유는 무엇입니까?

요약: Windows에서는 RAM 사용량을 모두 표시하지 마세요.

답변1

RAMMap 아래에 표시됩니다.드라이버 잠김. VM에 할당한 3GB 사용량을 확인하세요.

여기에 이미지 설명을 입력하세요

VM은 이 메모리를 사용하므로 다른 도구에서는 이를 사용할 수 없습니다.

답변2

핵심요약: 프로세스가 메모리를 사용하고 있었고, 메모리 사용을 중단했는데, Windows는 아직 이를 처리하기에는 너무 게으릅니다.

프로세스가 RAM을 요청하고 그 사용량을 일부 제어하지 않는 한 Windows는 작업 관리자의 프로세스 아래에 RAM 사용량을 표시하지 않습니다. OS가 백업 매핑을 위해 프로세스에 RAM을 제공하고 해당 매핑을 삭제할 수 있는 경우 프로세스에 청구된 것으로 표시하는 것은 혼란스러울 수 있습니다. 이로 인해 다른 프로세스로 인해 이러한 매핑이 지원되지 않게 되므로 프로세스의 사용 횟수가 크게 달라집니다.

Windows가 이 프로세스에 2GB의 RAM을 할당했다는 사실에 신경써야 할 특별한 이유는 없습니다. Windows가 요청했기 때문이 아니라 단지 해당 메모리를 사용하는 데 더 나은 방법이 없다고 생각했기 때문입니다. 물론, Windows는 메모리와 관련이 있는 경우 언제든지 해당 RAM을 다시 가져올 수 있습니다.

프로세스가 실제로 메모리를 사용하는 경우 해당 메모리는 작업 세트의 일부로 간주되어 프로세스에 비용이 청구됩니다. Windows가 지금 작업을 정리하고 프로세스가 나중에 메모리를 사용했다면 Windows는 해당 메모리를 다시 할당하면 됩니다. 따라서 나중에 더 많은 작업을 수행하기 위해 지금 추가 작업을 수행하는 것은 의미가 없습니다.

관련 정보