Обложка канала

ServerAdmin.ru

12437 @srv_admin

Авторская информация о системном администрировании.

ServerAdmin.ru

3 года назад
Открыть в
​​В Linux можно на ходу уменьшать или увеличивать количество используемой оперативной памяти. Единственное условие - если уменьшаете активную оперативную память, она должна быть свободна. Покажу на примерах. Для начала воспользуемся командой lsmem для просмотра информации об использовании оперативной памяти. Команда, кстати, полезная. Рекомендую запомнить и использовать. С её помощью можно быстро посмотреть полную информацию об оперативе сервера: # lsmem RANGE                  SIZE STATE REMOVABLE BLOCK 0x0000000000000000-0x00000000f7ffffff 3.9G online    yes 0-30 0x0000000100000000-0x0000000107ffffff 128M online    yes  32 Memory block size:    128M Total online memory:    4G Total offline memory:   0B Команда показывает в том числе блоки оперативной памяти, на которые её разбивает ядро. Вот с этими блоками и можно работать. Видим, что у нас 32 блока по 128M, а всего 4G памяти и вся она активна. Отключим 1G c помощью chmem. # chmem -d 1G или отключим 8 произвольных блоков: # chmem -d -b 22-29 Утилита пройдётся по всем блокам памяти. Те, что могут быть освобождены, она отключит. Процесс может занимать много времени, так как утилита будет пытаться перемещать информацию по памяти, чтобы высвободить заданный объём. Проверяем, что получилось: # lsmem RANGE                  SIZE  STATE REMOVABLE BLOCK 0x0000000000000000-0x00000000afffffff 2.8G online    yes 0-21 0x00000000b0000000-0x00000000efffffff  1G offline      22-29 0x00000000f0000000-0x00000000f7ffffff 128M online    yes  30 0x0000000100000000-0x0000000107ffffff 128M online    yes  32 Memory block size:    128M Total online memory:    3G Total offline memory:   1G Возвращаем всё как было: # chmem -e 1G Вряд ли вам часто может быть нужна эта возможность. Но иногда может пригодиться, так что стоит знать о ней. Например, в некоторых системах виртуализации, добавленная на ходу память добавляется как offline и её нужно вручную активировать. Ещё вариант, если вы точно знаете диапазон битой памяти. Вы можете отключить содержащий её блок с помощью chmem и какое-то время сервер ещё поработает. #linux #terminal