dgg*_*dst 25 memory virtualbox virtual-machine ubuntu
我在具有 2GB RAM 的 Windows XP 机器上运行 VirtualBox。我创建了一台虚拟 Ubuntu 机器并为其分配了 750MB 的基本内存。
只是为了测试一下,我在虚拟机上一次运行了 20 件事。根据 ubuntu 中的“top”,使用了 750 兆内存,以及相当大的交换空间。
然而,在 Windows 任务管理器中,VitrualBox 只使用了 45,000K 的内存。当我要求虚拟机做越来越多的事情时,VirtualBox 进程的 CPU 使用率上升(在 Windows 中),但内存使用率保持不变。
使用 750 MB 内存的虚拟机如何只消耗物理机上的 45 MB 内存?
我假设答案是虚拟机使用的不是真实内存,而是模拟内存(即交换空间),但它确实感觉很活泼,就像在 RAM 中运行一样。
更新:我已经按照建议使用了 perfmon。就算把我能想到的全部总结起来,好像还是不到300兆……所以还是个谜。
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
Run Code Online (Sandbox Code Playgroud)
任务管理器中的列可能会给出误导性的数字——为了每个进程的准确内存使用情况,您可以使用 perfmon(控制面板中的性能监视器)并查看“私有字节”数字。
要显示这一点,请进入 perfmon,单击以添加计数器(我是Ctrl+I类型的人)。“性能对象”将是“进程”,“私有字节”位于计数器列表中——显然您需要从右侧列表中选择相关进程。
对于 Linux 下的某些虚拟化解决方案,它们分配内存的方式使其在主机内核看来是一个特殊的内存映射文件(很像/proc/kcore特殊文件),因此它被计入 输出中的“缓存”计数free,而不是“使用”计数。
我认为您的 Windows 环境中发生了类似的事情:45Mb 将被 VirtualBox 的管理进程使用,而分配给 VM 本身的 750 将被计入其他地方。
| 归档时间: |
|
| 查看次数: |
2331 次 |
| 最近记录: |