Как системный администратор 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 часть считается.
Использование 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.
Не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы.