Установка ограничения на общую физическую память, доступную в Linux
Я знаю, что я должен установить mem=MEMORY_LIMIT
. Но я не знаю, куда идти, во время выполнения или во время загрузки, чтобы установить ограничение на общую физическую память, которой управляет ОС.
Я использую тесты ввода-вывода, и я хотел бы ограничить объем доступной физической памяти.
Ответы
Ответ 1
Я нашел ответ, который искал. В основном, параметр, который устанавливает общую доступную физическую память, - "mem = MEMORY_LIMIT". И это параметр загрузки ядра. Вам нужно добавить "mem = 1G" для максимальной физической памяти объемом 1 ГБ для параметра загрузки ядра. Подробнее о том, как добавить параметры загрузки ядра, смотрите https://wiki.ubuntu.com/Kernel/KernelBootParameters
Ответ 2
Отредактируйте параметры загрузки ядра в lilo.conf
, grub.conf
, grub.cfg
или menu.lst
(какой из них зависит от вашего конкретного дистрибутива и загрузчика, проверьте дополнительную документацию по дистрибутивам), чтобы включить параметр mem=512M
(или любого другого размера, который вы хотите эмулировать) в строке, задающей параметры ядра.
Например, в Grub должна быть строка, которая говорит что-то вроде kernel /boot/vmlinuz param1=val1 param2=val2
. Добавьте mem=512M
к этому списку параметров. Вы можете создавать отдельные записи для своего загрузочного меню, копируя все эти определения, переименовывая их и настраивая каждый с другим объемом памяти, чтобы вы могли быстро загрузиться с разными настройками.
Ответ 3
Чтобы добавить список Brian Campbell для загрузчика uBoot на устройствах BeagleBone/Black, измените параметры ядра в /boot/uboot/uEnv.txt
. Добавьте или измените строку mmcargs=setenv bootargs mem=512M
[проверено с Debian]
Используйте > free
до и после [reboot], чтобы подтвердить изменение
Ответ 4
Я выполнил инструкции в этой странице, о которых упоминал KZcoding (часть: Постоянно добавляет параметр загрузки ядра)
Мой Linux (vm в виртуальном боксе):
Linux ubuntu 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Перед настройкой:
[email protected]:~$ free -m
total used free shared buff/cache available
Mem: 3630 305 3010 6 314 3264
Swap: 3767 0 3767
Просто изменил эту строку в /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT=""
к
GRUB_CMDLINE_LINUX_DEFAULT="mem=2G"
затем перезагрузите сервер. После перезапуска:
[email protected]:~$ free -m
total used free shared buff/cache available
Mem: 2000 298 1385 4 315 1651
Swap: 3767 0 3767
Ответ 5
A1: Да, вам нужно перезагрузиться.
A2: Ядро довольно неумолимо относительно опечаток. Сообщения об ошибках отсутствуют. Это может быть ваша проблема? Примеры: "mem = 512M" и "mem = 2G". Не забудьте пробел, следующий за предыдущим параметром, mem в нижнем регистре, а K, M или G - в верхнем регистре.