Не многие из сегодняшних пользователей Linux помнят дни, когда вы могли (и часто должны были) собрать собственное ядро. Если у вас было специфическое устройство, или какие-то особые требования к ядру, для вас не было другого пути. Сегодня большинство ядер работают "из коробки" с большинством оборудования. Но бывают случаи, когда вам нужно выжать еще немного производительности или даже облегчить ваше ядро на лету. Вы можете сделать это с помощью команды sysctl.
Эта утилита позволяет изменять различные параметры ядра на лету, или вы можете подредактировать специальный файл для настройки этих параметров (имеется в виду - для применения настроек при каждой загрузке - прим. пер.). В обоих случаях, вы можете изменить любые параметры, упомянутые в /proc/sys, так что если вы просто хотите проверить, как много вы можете поменять, посмотрите в каждую подпапку в /proc/sys. Например, вы можете изменить максимальное количество файловых дескрипторов на вашей машине, изменив параметр kern.maxfiles.
Примечание: вам необходимо быть ОЧЕНЬ осторожными, пока вы играете с этой командой, потому что, помимо некорректного изменения какого-то конкретного параметра, она может вызвать потери данных или что-нибудь похуже.
Использование
В общем виде sysctl используется так:
sysctl [опции] [параметр] [переменная]
Переменная для параметра может быть логической, строковой или числовой. Вы должны запускать sysctl или как суперпользователь, или с помощью sudo. В начале вы, наверное, захотите выполнить sudo sysctl -a. Эта команда покажет вам все настраиваемые переменные на вашей машине. Это будет выглядеть примерно так:
В общем, в обычной Linux-системе около 500 настраиваемых параметров - много возможностей для настройки, не правда ли? Если вам необходимо внимательно изучить весь список, выполните команду
sudo sysctl -a > tunable
и откройте получившийся файл в любимом текстовом редакторе. Давайте попробуем сделать что-нибудь полезное. Например, мы хотим включить сочетание
<Ctrl>-<Alt>-<Del>
которое обычно отключено во многих дистрибутивах. Для начала, проверим, что наш дистрибутив - не исключение. Это можно сделать с помощью следующей команды:
sudo sysctl kernel.ctrl-alt-del
Вывод:
kernel.ctrl-alt-del = 0
Он информирует нас о том, что упомянутая функция была отключена. Давайте включим ее. Это можно сделать, выполнив:
sudo sysctl -w kernel.ctrl-alt-del=1
Мы должны увидеть такой вывод:
kernel.ctrl-alt-del = 1
Что говорит нам о том, что команда выполнена успешно. Вы можете, конечно, восстановить исходное значение с помощью команды:
sudo sysctl -w kernel.ctrl-alt-del=0
Конечно, это только простой пример того, что может быть настроено с помощью sysctl. Изучив более 500 различных параметров, вы можете настроить ваше ядро под любые специфические нужды.
Заключение
Как и с любым другим инструментом, изменяющим работающее ядро, будьте крайне осторожны при работе с sysctl. Вам лучше будет попрактиковаться с этой командой на тестовой машине, перед тем, как делать что-то на рабочем сервере. Начните с простого. Попробуйте изменить какие-нибудь параметры, которые не сделают вашу машину незагружаемой, ваши жесткие диски незаписываемыми, а вашу сеть недоступной и т. п.