Команда Sysctl в Linux

Как системный администратор Linux, иногда вам может потребоваться изменить поведение ядра по умолчанию. Например, вам может потребоваться включить волшебный ключ SysRq или увеличить количество подключений, которые будет принимать ядро. Параметры ядра можно установить при сборке ядра, при загрузке системы или во время выполнения.

В этой статье объясняется, как использовать команду sysctl для просмотра и изменения параметров ядра во время выполнения.

Использование sysctl для просмотра параметров ядра

Чтобы просмотреть все текущие параметры ядра, вызовите команду sysctl с параметром -a :

sysctl -a

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

abi.vsyscall32 = 1
debug.exception-trace = 1
debug.kprobes-optimization = 1
...

Все пользователи могут просматривать текущие параметры ядра; только пользователь root может изменять их значения.

Вы можете проверить значение одного параметра, передав его имя в качестве аргумента в sysctl . Например, чтобы проверить текущее значение подкачки, введите:

sysctl vm.swappiness
vm.swappiness = 60

Swappiness — это свойство ядра Linux, которое определяет, как часто система будет использовать пространство подкачки .

Команда sysctl считывает информацию из каталога /proc/sys . /proc/sys — это виртуальный каталог, содержащий файловые объекты, которые можно использовать для просмотра и установки текущих параметров ядра.

Вы также можете просмотреть значение параметра, отобразив содержимое соответствующего файла. Единственная разница в том, как представлен файл. Например, как sysctl vm.swappiness и cat /proc/sys/vm/swappiness дадут одинаковый результат. При использовании sysctl косые черты каталога заменяются точками, и proc.sys часть proc.sys .

Использование sysctl для изменения параметров ядра

Чтобы установить параметр ядра во время выполнения, выполните команду sysctl за которой следует имя и значение параметра в следующем формате:

sysctl -w parameter=value

Если значение содержит пустое пространство или специальные символы, заключите значение в двойные кавычки. Вы также можете передать несколько пар parameter=value в одной команде.

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

Например, чтобы включить пересылку пакетов IPv4, вы должны запустить:

sysctl -w net.ipv4.ip_forward=1

Изменение вступает в силу немедленно, но не является постоянным. После перезагрузки системы загружается значение по умолчанию.

Чтобы установить параметр постоянно, вам необходимо записать настройки в /etc/sysctl.conf или другой файл конфигурации в каталоге /etc/sysctl.d :

sysctl -w net.ipv4.ip_forward=1 >> /etc/sysctl.conf

Другой способ изменить параметры — использовать команду echo для записи настроек в файлы в каталоге /proc/sys . Например, вместо выполнения приведенной выше команды вы можете использовать:

echo 1 > /proc/sys/net/ipv4/ip_forward

Параметр -p позволяет загружать настройки из файла конфигурации:

sysctl -p /etc/sysctl.d/file_name.conf

Если файл не указан, sysctl читает /etc/sysctl.conf .

Выводы

Команда sysctl позволяет просматривать и изменять параметры ядра Linux.

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.

Оставьте комментарий