Как изменить параметры времени выполнения ядра в постоянной и одноразовой модификации -- LFCS часть 15

Как изменить параметры времени выполнения ядра в постоянной и одноразовой модификации — LFCS часть 15

LFCS

В части 13 этой серии статей LFCS (Linux Foundation Certified Sysadmin) мы объяснили, как использовать GRUB для изменения поведения системы путем передачи опций ядру для текущего процесса загрузки и изменить параметры времени выполнения ядра в постоянной и одноразовой модификации.

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

Таким образом, вы можете включать или отключать параметры ядра «на лету» без особых трудностей, когда это необходимо из-за сиюминутного необходимого изменения способа работы системы.

 

Знакомство с файловой системой /proc

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

Фактическая внутренняя структура /proc/sys сильно зависит от используемого ядра, но вы, вероятно, найдете внутри следующие каталоги. В свою очередь, каждый из них будет содержать другие подкаталоги, в которых сохраняются значения для каждой категории параметров:

  • dev: параметры для определенных устройств, подключенных к аппарату.
  • fs: конфигурация файловой системы (например, квоты и иноды).
  • kernel: конфигурация, специфичная для ядра.
  • net: сетевая конфигурация.
  • vm: использование виртуальной памяти ядра.

 

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

# sysctl -a | wc -l

 

Если вы хотите просмотреть полный список параметров ядра, просто выполните:

# sysctl -a

 

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

# sysctl -a | less

 

Давайте рассмотрим первые несколько строк. Обратите внимание, что первые символы в каждой строке соответствуют именам каталогов внутри /proc/sys:

 

Как изменить параметры времени выполнения ядра в постоянной и одноразовой модификации -- LFCS часть 15

 

 

Например, выделенная строка:

dev.cdrom.info = drive name: sr0

 

указывает, что sr0 является псевдонимом для оптического привода. Другими словами, так ядро ​​«видит» этот устройство и использует это имя для ссылки на него.

В следующем разделе мы объясним, как изменить другие «более важные» параметры ядра в Linux.

 

 

Как изменить параметры времени выполнения ядра Linux?

Основываясь на том, что мы объяснили до этого, легко соотнести, что имя параметра соответствует структуре каталогов внутри /proc/sys, где оно и может быть найдено.

Например:

dev.cdrom.autoclose → /proc/sys/dev/cdrom/autoclose
net.ipv4.ip_forward → /proc/sys/net/ipv4/ip_forward

 

 

Проверка параметров ядра Linux

Мы можем просмотреть значение конкретного параметра ядра Linux, используя либо sysctl, за которым следует имя параметра, либо считывая связанный файл:

# sysctl dev.cdrom.autoclose
# cat /proc/sys/dev/cdrom/autoclose
# sysctl net.ipv4.ip_forward
# cat /proc/sys/net/ipv4/ip_forward

 

Check-Linux-Kernel-Parameters

 

 

Установка или изменение параметров ядра Linux

Чтобы установить значение для параметра ядра, мы можем использовать sysctl, но с использованием опции -w за которой следует имя параметра, знак равенства и требуемое значение.

Другой метод состоит в использовании echo для перезаписи файла, связанного с параметром. Другими словами, следующий метод эквивалентен отключению функциональности пересылки пакетов в вашей системе:

# echo 0 > /proc/sys/net/ipv4/ip_forward
# sysctl -w net.ipv4.ip_forward=0

 

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

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

net.ipv4.ip_forward=0

 

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

# sysctl -p

 

Другими примерами важных параметров среды ядра являются:

fs.file-max — указывает максимальное количество файлов, которые ядро ​​может выделить для системы. В зависимости от предполагаемого использования вашей системы (веб/база данных/файловый сервер), вы можете изменить это значение для удовлетворения своих потребностей.

В противном случае вы получите сообщение об ошибке «Слишком много открытых файлов» в лучшем случае или же можете помешать операционной системе работать в нормальном режиме — в худшем случае.

Если из-за невинной ошибки вы оказались в этой последней ситуации, загрузитесь в однопользовательском режиме (как описано в Части 13 «Настройка и устранение неполадок загрузчика Linux Grub») и отредактируйте файл /etc/sysctl.conf, как указано ранее. Чтобы установить одно и то же ограничение для каждого пользователя, обратитесь к Разделу 14 «Мониторинг и установка ограничения для процессов Linux» этой серии.

kernel.sysrq — используется для включения ключа SysRq на клавиатуре (также называемого клавишей экрана печати), чтобы некоторые комбинации клавиш вызывали экстренные действия, когда система перестала отвечать на запросы.

Значение по умолчанию (16) указывает, что система будет откликаться на комбинацию клавиш Alt+SysRq+key и выполнить действия, указанные в документации sysrq.c, что находится в kernel.org (где key — одна буква в диапазоне b-z). Например, Alt+SysRq+b будет принудительно перезагружать систему (используйте это как крайнее средство, если ваш сервер не отвечает).

Предупреждение! Не пытайтесь нажимать эту комбинацию клавиш на виртуальной машине, потому что это может привести к перезагрузке вашей хост-системы!

Если установлено значение 1, net.ipv4.icmp_echo_ignore_all будет игнорировать запросы ping и удалить их на уровне ядра. Это показано на рисунке ниже — обратите внимание на то, что запросы ping теряются после установки этого параметра ядра:

 

Как изменить параметры времени выполнения ядра в постоянной и одноразовой модификации -- LFCS часть 15

 

 

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

Например, вместо установки net.ipv4.ip_forward=0 и net.ipv4.icmp_echo_ignore_all=1 в файле /etc/sysctl.conf, мы можем создать новый файл с именем net.conf внутри /etc/sysctl.d:

# echo "net.ipv4.ip_forward=0" > /etc/sysctl.d/net.conf
# echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.d/net.conf

 

Если вы решите использовать этот подход, не забудьте удалить те же строки из /etc/sysctl.conf.

 

Итоги

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

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

 

 

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасностиполный курс по кибербезопасности от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
LFCS

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Самое читаемое
Меню