Настройка и работа в Linux
adb5321d

Выполнение постоянных установок ядра


Полезная утилита для внесения изменений в любые параметры ядра находится в директории /proc/sys. Она позволяет вам вносить изменения в работающее ядро (подобно echo и метод перенаправления, описанный выше), и имеет файл конфигурации, который выполняется при загрузке. Это позволяет чтобы внесенные изменения оставались в ядре после перезагрузки системы. Утилита называется sysctl и она полностью документирована в man sysctl(8).

Файл конфигурации для sysctl - /etc/sysctl.conf, который может быть редактирован, синтаксис файла описан в man sysctl.conf(8). Sysctl использует файлы в /proc/sys как индивидуальные переменные, которые могут быть изменены. Например, файл в /proc/sys, который представляет максимальное количество заголовков файлов в системе, /proc/sys/fs/file-max, представлен как fs.file-max. Этот пример требует некоторых дополнительных пояснений в записи sysctl. Так как sysctl может только изменять переменные в директории /proc/sys, то часть имени переменной обозначающая директорию отбрасывается. Другое изменение касается слэшей, которые заменяются на точки. Вот два простых правила для преобразования файлов в /proc/sys и переменных в sysctl:

  • Отбросьте /proc/sys от начала.
  • Замените слэши на точки в имени файла.
  • Эти два правила позволят вам преобразовать любой файл в /proc/sys в любое имя переменной в sysctl. Обычное преобразование имени файла в переменную:

    /proc/sys/dir/file --> dir.file

    dir1.dir2.file --> /proc/sys/dir1/dir2/file

    Вы можете увидеть все переменные, доступные для изменения, используя команду sysctl -a. Переменные могут также быть изменены с помощью sysctl, которая выполняет ту же работу что и echo. Эта запись объясняет это:

    sysctl -w dir.file="value"

    Используя пример с file-max, мы можем изменить это значение на 16384, используя один из двух методов:

    sysctl -w fs.file-max="16384"

    или

    echo "16384" > /proc/sys/fs/file-max

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

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



    Содержание раздела