0

我现在正在写一篇论文,我必须测量 VM 的使用情况和功耗。

为此,我创建了一个 VM,然后登录到它并启动一个查找繁忙的进程,该进程最大限度地利用分配的内存。

但是,我注意到(主机系统的)实际内存使用量在 VM 使用几分钟后开始下降。

但是,当我重新登录到 VM 时,它会显示全部利用率。

假设我的虚拟机分配了 2GB。当我开始使用时,VM 和主机都显示 2GB 处于负载状态。

然而,过了一会儿,主机的内存开始减少并停止在 400MB 左右,尽管 VM 仍然在最大工作。

我认为这与仅使用所需的内存页有关,而不是与整个分配的内存有关。

这就是为什么我现在需要你的帮助——我需要一个工具来让我利用分配的内存,

而且还要保持真实主机的内存利用率,以便我测量主机在这种负载下的功耗。

Lookbusy事实上,如果内存使用量在 1-2 分钟后没有开始下降,它就会发挥作用。测量需要持续数天!

4

3 回答 3

1

您没有提供很多细节......但是,根据使用情况,您可能会看到 ksm(内核同页合并)的效果。检查是否启用了 ksm。

于 2011-12-04T21:17:45.633 回答
1

“气球内存”也可能是一个问题,例如 VMWare:

http://www.virtualinsanity.com/index.php/2010/02/19/performance-troubleshooting-vmware-vsphere-memory/

PS:如果你想产生过多的内存使用,并且如果你的虚拟机(客户操作系统)是 Linux,那么你总是可以使用“memtester”:

http://linux.die.net/man/8/memtester

于 2011-12-04T21:23:17.553 回答
0

如果要测量特定进程(例如进程 id 1234)的内存消耗,则/proc/1234/目录是相关的(或/proc/self/来自进程本身内部)。特别是那里的、 和statstatm文件。例如,或为您提供有关流程本身的信息。statusmapscat /proc/self/mapscat /proc/self/statuscat

我不确定您所说的“测量虚拟机”是什么意思;AFAIK 虚拟机(例如 Qemu)会吃掉它们指定的内存。

我也很好奇你如何测量功耗。

于 2011-12-04T17:54:51.687 回答