Обновленный ответ
Значение по умолчанию для многих параметров ядра sysctl
компилируется в само ядро.
Пример: kernel.numa_balancing_scan_delay_ms
по умолчанию имеет значение 1000
в ./kernel/sched/fair.c
, который загружается в ./kernel/sysctl.c
.
Вы можете изменить их во время выполнения с помощью sysctl
3. systemd делает это при загрузке с помощью systemd-sysctl.service
начале процесса загрузки.
По некоторым причинам кажется, что вы инициализируете что-то очень рано, что параметр ядра не может быть установлен позже и должен быть установлен при загрузке. Если служба ранней загрузки все еще слишком поздняя и вы не можете допустить, чтобы параметры настройки sysctl
слишком поздними, возможно, вы можете установить параметры в boot 2 в строке ядра вашего загрузчика.
Если вы не можете этого сделать, вам может понадобиться скомпилировать собственное ядро 1 со значениями по умолчанию, которые вы хотите.
Из Arch Linux вики:
Есть три способа передать опции ядру и таким образом контролировать его поведение:
- При сборке ядра. Посмотрите Компиляцию Ядра для деталей.
- При запуске ядра (обычно при запуске из загрузчика).
- Во время выполнения (через файлы в
/proc
и /sys
). Смотрите sysctl для деталей.
Оригинальный ответ
Установите значения в /etc/sysctl.conf
или в файле *.conf
в /etc/sysctl.d/
.
Как только они установлены, вы можете перезагрузить конфигурацию, запустив sudo sysctl --system
.
Дополнительные ресурсы