Необходим инструмент утилизации памяти в Linux - PullRequest
0 голосов
/ 04 декабря 2011

Сейчас я работаю над диссертацией, в которой я должен измерить использование и энергопотребление виртуальных машин.

Для этого я создаю виртуальную машину, затем регистрируюсь в ней и запускаю Процесс lookbusy , который максимально использует выделенную память.

Однако я заметил, что реальное использование памяти (хост-системы) начинает снижаться после пары минут использования VM.

Когда я снова вхожу в виртуальную машину, она показывает полное использование.

Допустим, моей виртуальной машине выделено 2 ГБ.Когда я запускаю использование, виртуальная машина и хост показывают, что 2 ГБ находятся под нагрузкой.

Однако через некоторое время память хостов начинает уменьшаться и останавливается примерно на 400 МБ, хотя виртуальная машина все еще работает на максимуме.

Я предполагаю, что это связано с использованием только необходимых mem-страниц вместо всей выделенной памяти.

Вот почему мне сейчас нужна ваша помощь - мне нужен инструментэто позволило бы мне использовать выделенную память

, но при этом также использовало бы память реального хоста, чтобы я мог измерить энергопотребление хоста при такой нагрузке.

Lookbusy фактически будет работать, если использование памяти не начнет падать через 1-2 минуты.Измерения должны длиться несколько дней!

Ответы [ 3 ]

1 голос
/ 05 декабря 2011

Вы не предлагали много подробностей ... но, в зависимости от использования, вы можете увидеть эффект от ksm (слияние одной и той же страницы ядра). Проверьте, включен ли ksm.

1 голос
/ 05 декабря 2011

«Баллонная память» также может быть проблемой, например, с VMWare:

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

PS: если вы хотите ОБРАЗИТЬ чрезмерное использование памяти, и если ваша ВМ (гостевая)OS) - это Linux, тогда вы всегда можете использовать «memtester»:

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

0 голосов
/ 04 декабря 2011

Если вы хотите измерить потребление памяти конкретным процессом (например, с идентификатором процесса 1234), каталог /proc/1234/ является релевантным (или /proc/self/ изнутри самого процесса).В частности, там есть псевдофайлы stat, statm, status и maps.Например, cat /proc/self/maps или cat /proc/self/status дает вам информацию о самом процессе cat.

Я не уверен, что понимаю, что вы подразумеваете под "измерением виртуальной машины";Виртуальные машины AFAIK, такие как, например, Qemu, используют указанную память.

Мне также любопытно, как вы измеряете энергопотребление.

...