Oct. 6, 2016, 11:20 a.m.
Posted by soar

Горячее добавление памяти в Linux

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

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

root@localhost # grep line /sys/devices/system/memory/*/state
/sys/devices/system/memory/memory0/state:online
/sys/devices/system/memory/memory10/state:offline
/sys/devices/system/memory/memory11/state:offline
...

Теперь всё, что нужно сделать, это активировать ту память, которая находится в состоянии offline. Сделать это можно командой:

echo online >/sys/devices/system/memory/memoryXX/state

где XX - номер "модуля". Если нужно активировать всю добавленную память (самый частый случай - не знаю в каких случаях нужно активировать только часть), то это можно сделать таким однострочником:

for f in `grep -Fl offline /sys/devices/system/memory/*/state`; do echo online > $f; done;

Убедиться в том, что память добавилась, можно в top, htop или free -m.

Comments