Вы можете настроить несколько параметров или настраиваемых параметров Linux (ядра) для управления его поведением либо при загрузке, либо по запросу во время работы системы. sysctl — широко используемая утилита командной строки для изменения или настройки параметров ядра во время выполнения. Вы можете найти настройки ядра, перечисленные в разделе /процесс/система/ каталог.
Он питается от procfs (файловая система proc), псевдофайловая система в Linux и других Unix-подобных операционных системах, обеспечивающая интерфейс к структурам данных ядра. В нем представлена информация о процессах и дополнительная системная информация.
Ниже приведены 10 полезных sysctl примеры команд, которые вы можете использовать при администрировании работающей системы Linux. Обратите внимание, что вам нужны привилегии root для запуска sysctl команду, в противном случае используйте команда судо при его вызове.
Оглавление
Примеры команд sysctl в Linux
В этом руководстве мы объясним 10 практических примеров команд sysctl, которые вы можете использовать в системе Linux.
1. Список всех параметров ядра в Linux
Чтобы получить список всех доступных на данный момент параметров ядра, запустите команду sysctl с параметром -a
или --all
флаг, как показано.
$ sudo sysctl -a OR $ sudo sysctl --all
Переменные отображаются в следующем формате:
<tunable class>.<tunable> = <value>
Например,
kernel.ostype = Linux

3. Список всех имен переменных ядра
Чтобы вывести только имена переменных без их значений, используйте -N
вариант как показано.
$ sudo sysctl -a -N

3. Найдите определенные переменные ядра в Linux
Чтобы найти конкретную переменную, вы можете отфильтровать вывод sysctl через команда grepнапример, чтобы отфильтровать любую переменную, связанную с Память управления, вы можете запустить следующую команду:
$ sudo sysctl -a | grep memory OR $ sudo sysctl --all | grep memory

4. Перечислите все переменные ядра, включая устаревшие
sysctl команда также показывает устаревшие переменные вместе со списком всех доступных переменных, используя --deprecated
флаг, как показано.
$ sudo sysctl -a --deprecated OR $ sudo sysctl -a --deprecated | grep memory
5. Перечислите конкретное значение переменной ядра
Чтобы прочитать sysctl переменная и ее значения, укажите имя переменной в качестве аргумента для sysctl команды следующим образом. В этом примере показано, как читать kernel.ostype
переменная.
$ sudo sysctl kernel.ostype kernel.ostype = Linux
6. Временно запишите переменную ядра
Чтобы временно записать переменные, просто укажите переменную в этом формате.
<tunable class>.<tunable>=<value>
В следующем примере показано, как увеличить максимальный размер очереди приема, в которой хранятся кадры, выбранные из кольцевого буфера сетевая карта (Сетевая карта), как только они будут получены из сети. Размер очереди можно изменить с помощью net.core.netdev_max_backlog
переменная, как показано.
$ sudo sysctl net.core.netdev_max_backlog $ sudo sysctl net.core.netdev_max_backlog=1200 $ sudo sysctl net.core.netdev_max_backlog

7. Запишите переменную ядра навсегда
sysctl также может постоянно записывать переменные в файл конфигурации. Для этого используйте -w
option и укажите конфигурационный файл, к которому будет добавлена переменная и ее значение, в данном случае это /etc/sysctl.confфайл конфигурации sysctl по умолчанию:
$ sudo sysctl -w net.core.netdev_max_backlog=1200 >> /etc/sysctl.conf
Чтобы постоянно записывать файлы в кастом, укажите расположение файла следующим образом. Иногда вам может не удаться создать файл в определенных местах, даже если вы вызываете sysctl команду с помощью команда судо.
В таком случае переключитесь на учетную запись root (если у вас есть права) и снова запустите команду, как показано.
$ sudo sysctl -w net.core.netdev_max_backlog=1200 >> /etc/sysctl.d/10-test-settings.conf $ sudo su # sysctl -w net.core.netdev_max_backlog=1200 >> /etc/sysctl.d/10-test-settings.conf

Кроме того, вы можете создать новый файл конфигурации в /etc/sysctl.d/ каталог, как показано:
$ sudo vim /etc/sysctl.d/10-test-settings.conf
Затем добавьте параметры ядра, по одному на строку, как показано.
net.core.netdev_max_backlog = 1200 user.max_net_namespaces = 63067 vm.overcommit_memory = 0
Затем сохраните файл и закройте его. Чтобы загрузить настройки из пользовательского файла, который вы только что создали, используйте кнопку -p
или --load
флаг.
$ sudo sysctl -p /etc/sysctl.d/10-test-settings.conf OR $ sudo sysctl --load= /etc/sysctl.d/10-test-settings.conf
8. Перезагрузите переменные sysctl.conf в Linux.
Чтобы перезагрузить настройки из всех файлов конфигурации системы без перезагрузки, введите следующую команду.
$ sudo sysctl --system
Приведенная выше команда будет читать все файлы конфигурации системы из этих каталогов в следующем порядке:
/run/sysctl.d/*.conf /etc/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf
9. Перезагрузите настройки из пользовательских файлов конфигурации
Вы также можете перезагрузить настройки переменных из пользовательского файла конфигурации sysctl, как показано ниже.
$ sudo sysctl -p/etc/sysctl.d/10-test-settings.conf OR $ sudo sysctl --load= /etc/sysctl.d/10-test-settings.conf
10. Перезагрузите настройки, соответствующие шаблону
Чтобы применить только те настройки, которые соответствуют определенному шаблону, используйте кнопку -r
или --pattern
следующее. Обратите внимание, что шаблон использует расширенный синтаксис регулярных выражений, вот несколько примеров:
$ sudo sysctl --system --pattern '^net.ipv6' $ sudo sysctl --system -r memory

В этом руководстве мы объяснили 10 sysctl примеры команд, которые вы можете использовать для управления работающей системой Linux. Для получения дополнительной информации прочитайте sysctl справочная страница (человек системный).