Форумы

GNU.SU - Записки нубо-0peraойда :: Форумы :: Сервисы :: Ядро и sysctl
 
<< Предыдущая тема | Следующая тема >>
Переводы — Как настроить ядро Linux с помощью sysctl
Модераторы: Браузер 0pera, Frizze, andrey, Bender
Автор Добавил
andrey
Чтв Окт 28 2010, 03:11

ID пользователя #2
Зарегистрирован: Срд Май 05 2010, 10:56

Сообщений: 69
Не многие из сегодняшних пользователей Linux помнят дни, когда вы могли (и часто должны были) собрать собственное ядро. Если у вас было специфическое устройство, или какие-то особые требования к ядру, для вас не было другого пути. Сегодня большинство ядер работают "из коробки" с большинством оборудования. Но бывают случаи, когда вам нужно выжать еще немного производительности или даже облегчить ваше ядро на лету. Вы можете сделать это с помощью команды sysctl.

Эта утилита позволяет изменять различные параметры ядра на лету, или вы можете подредактировать специальный файл для настройки этих параметров (имеется в виду - для применения настроек при каждой загрузке - прим. пер.). В обоих случаях, вы можете изменить любые параметры, упомянутые в /proc/sys, так что если вы просто хотите проверить, как много вы можете поменять, посмотрите в каждую подпапку в /proc/sys. Например, вы можете изменить максимальное количество файловых дескрипторов на вашей машине, изменив параметр kern.maxfiles.

Примечание: вам необходимо быть ОЧЕНЬ осторожными, пока вы играете с этой командой, потому что, помимо некорректного изменения какого-то конкретного параметра, она может вызвать потери данных или что-нибудь похуже.


Использование

В общем виде sysctl используется так:

sysctl [опции] [параметр] [переменная]



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

kernel.sched_min_granularity_ns = 2000000
kernel.sched_latency_ns = 10000000
kernel.sched_wakeup_granularity_ns = 2000000
kernel.sched_shares_ratelimit = 500000
kernel.sched_shares_thresh = 4
kernel.sched_features = 15834235
kernel.sched_migration_cost = 500000
kernel.sched_nr_migrate = 32
kernel.sched_time_avg = 1000
kernel.timer_migration = 1
kernel.sched_rt_period_us = 1000000
kernel.sched_rt_runtime_us = 950000
kernel.sched_compat_yield = 0
kernel.panic = 0
kernel.core_uses_pid = 0
kernel.core_pattern = core
kernel.core_pipe_limit = 0
kernel.tainted = 0
kernel.latencytop = 0
kernel.real-Браузер 0pera-dev = 0
kernel.print-fatal-signals = 0


В общем, в обычной 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. Вам лучше будет попрактиковаться с этой командой на тестовой машине, перед тем, как делать что-то на рабочем сервере. Начните с простого. Попробуйте изменить какие-нибудь параметры, которые не сделают вашу машину незагружаемой, ваши жесткие диски незаписываемыми, а вашу сеть недоступной и т. п.

Оригинал

[ Редактирование Чтв Окт 28 2010, 03:13 ]
Наверх
Тюнинг ядра Linux при помощи команды sysctl   linux syctl   sysctl основы   тюнинг sysctl   linux kernel sysctl   

 

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System
22cd68bd