Tôi đang chạy VirtualBox trên máy Windows XP có RAM 2GB. Tôi đã tạo một máy Ubuntu ảo và cấp cho nó bộ nhớ cơ bản là 750 MB.
Chỉ cần đưa nó vào thử nghiệm, tôi đã chạy 20 thứ cùng một lúc trên máy ảo. Theo "top" trong Ubuntu, 750 megs bộ nhớ đã được sử dụng, cũng như không gian trao đổi đáng kể.
Tuy nhiên, trở lại trong Trình quản lý tác vụ Windows, VitrualBox chỉ sử dụng 45.000K bộ nhớ. Khi tôi yêu cầu máy ảo làm nhiều hơn và nhiều hơn nữa, việc sử dụng CPU của quá trình VirtualBox tăng lên (trong Windows) nhưng việc sử dụng bộ nhớ vẫn giữ nguyên.
Làm thế nào một máy ảo đang sử dụng bộ nhớ 750 MB chỉ có thể tiêu thụ 45 MB bộ nhớ trên một máy vật lý?
Tôi giả sử câu trả lời là máy ảo không sử dụng bộ nhớ thực, mà là bộ nhớ mô phỏng (tức là không gian hoán đổi), nhưng nó chắc chắn cảm thấy linh hoạt giống như nó đang chạy trong RAM.
CẬP NHẬT: Tôi đã chơi xung quanh với perfmon như đề xuất. Ngay cả khi tóm tắt tất cả mọi thứ tôi có thể nghĩ ra, nó dường như vẫn chiếm ít hơn 300 megs ... vì vậy nó vẫn còn là một bí ẩn.
Process VirtualBox VirtualBox#1 Total
PoolNonpagedBytes 5,840 42,552 48,392
PoolPagedBytes 119,796 166,892 286,688
PrivateBytes 8,884,224 52,719,616 61,603,840
VirtualBytes 75,939,840 161,202,176 237,142,016
Sum 84,949,700 214,131,236 299,080,936