Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Обновление и конфигурирование ядра

Создание вашего собственного ядра Linux. Часть 3. Настройка параметров ядра. Планировщики ввода-вывода, процессоры, управление питанием

Оригинал: "Building Your Own Linux Kernel: Tricky kernel options (part 3): IO Schedulers, Processors, Power Management"
Автор: Akkana Peck
Дата публикации: October 22, 2009
Перевод: Н.Ромоданов
Дата перевода: декабрь 2009 г.

В предыдущей статье мы построили свое собственное ядро, выключили некоторые опции, которые вам не нужны, и, возможно, уменьшили количество модулей. Но некоторые из опций, имеющиеся в конфигурации ядра, не всегда понятны. Сегодня я попытаюсь разъяснить некоторые места, где легко можно сделать ошибку.

Устройства поблочного чтения данных: Планировщики ввода-вывода

В разделе "Enable the block layer" указана опция, о которой вы, вероятно, никогда не задумывались: "IO Schedulers" (планировщики ввода-вывода). Это, очевидно, некоторая технологическая опция, о которой должны заботиться только разработчики ядра, не так ли?

Ну, в основном, верно. Но если вы используете нетбук, то здесь имеются скрытые возможности, о которых вы должны знать: планировщик No-op.

Планировщик ввода-вывода используется для управленият операциями чтения диска и записи на диск для того, чтобы уменьшить количество движений головок диска. Но в твердотельных дисках головок нет и в этом случае такое сложное управление может, в действительности, ухудшить производительность.

В категории IO Schedulers --> Default I/O scheduler вы увидите опцию планировщика "No-op" (рис. 1). Если основной диск у вас твердотельный, то выберите эту опцию. Это может улучшить характеристики системы.

Рис.1

Для отдельного диска вы можете включить эту возможность даже в режиме реального времени:

# cat /sys/block/sda/queue/scheduler
noop anticipatory deadline [cfq]
# echo noop > /sys/block/sda/queue/scheduler
[noop] anticipatory deadline cfq

Тип процессора и его возможности

Эта группа опций довольно проста, но есть несколько, о которых следует сказать.

Опция "Tickless System"позволяет системе устанавливать прерывания таймера только если это нужно, а не в каждом цикле обработки. Это действительно может помочь продлить время работы ноутбука от батареи. Эта опция также вам понадобится в случае, если вы будете запускать приложение, измеряющие производительность системы, такое как powertop.

Опция "Symmetric multi-processing support" нужна для машин с несколькими процессорами. Вам она также понадобится, если у вас процессор с функцией "hyperthreaded", такой как Atom.

Опция "Processor family" позволит вам создать ядро, которое будет работать немного быстрее на вашем конкретном процессоре. На практике большинство людей не заметят существенного различия. Если вы хотите использовать эту возможность, но часто изменяете свое железо, то вам лучше выбрать опцию "Generic x86 support", что позволит вашему ядру работать на любой машине семейства x86.

Как я уже упомянул в предыдущей статье об опции "High Memory Support", помните, что если у вас 4ГБайта оперативной памяти, то вам нужно установить значение 64GB.

Управление питанием и опции ACPI

ACPI является механизмом управления питанием в современных машинах семейства x86. APM — более старый стандарт. Если ваша машина не очень старая (ей менее 7 лет), то вам, скорее всего, нужно выключить опцию APM и использовать только ACPI. Если в вашей машине возникают проблемы с приостановкой работы, либо с дисками или памятью, либо если вы не можете пользоваться должным образом кнопкой отключения питания, или не можете считать уровень заряда батареи, то нужно проверить категорию опций ACPI.

Сетевые возможности, ATA, SATA/PATA и SCSI

В этой части — огромное поле для деятельности и, из-за большого объема его трудно адекватно описать. Но если вы начнете с ядра, имеющегося в дистрибутиве, то вы обнаружите, что у вас гораздо больше сетевых устройств, чем вы используете. Команда ifconfig -a укажет вам направление для размышлений.

Рис.2

Но как понять, какие параметры нужно отключить? Это похоже на минное поле (рис. 2), и не для каждой опции можно дать полезный совет вида "Укажите Y, если вы не знаете, что делать" или "Почти все пользователи могут с уверенностью указывать здесь no".

Несколько советов: большинству пользователей, использующих компьютер в домашних условиях, не нужно туннелирование, мультикастинг, ATM или WAN. Любой протокол, помеченный как EXPERIMENTAL (экспериментальный), вероятно, не то, что вам нужно, а большинство параметров, перечисленных под протоколами EXPERIMENTAL, обычно не используются.

Возможно, Appletalk является исключением: вам может потребоваться эта опция, если у вас есть какой-нибудь старый Mac и вы хотите подключиться к нему через сеть. И ближе к концу — опция "QoS and/or fair queueing", которая может быть полезна, если вы хотите улучшить производительность сети при помощи дополнительных настроек.

Драйвера устройств: ATA, SATA/PATA и SCSI

В разделе Device drivers имеется три категории:

  [ ] ATA/ATAPI/MFM/RLL support  --->
      SCSI device support  --->
  [*] Serial ATA (prod) and Parallel ATA (experimental) drivers  --

Опция "ATA/ATAPI/MFM/RLL support" предназначена для старых драйверов, которые использовались в прошлом для устройств IDE. Сейчас она заменена на опцию "Serial ATA (prod) and Parallel ATA (experimental) drivers", которая также пригодна и для SATA устройств, имеющихся в большинстве более новых компьютеров.

Если у вас только SATA устройства, то выбор прост: выключите ATA и используйте только SATA/PATA., Но если у вас есть старый IDE диск или ATAPI CDROM, то у вас есть что выбирать.

PATA и IDE означают почти одно и то же. И, прочитав, что поддержка PATA является экспериментальной, вы можете решить, что это опасно, когда речь идет о жестком диске вашей системы. Но я бы посоветовал в любом случае перейти к драйверам SATA/PATA. В ядрах дистрибутивов они используются уже более года. И, поскольку в их развитие вкладывается больше усилий, старые драйвера ATA/ATAPI в действительности в некотором смысле становятся менее надежными.

Я не рекомендую устанавливать одновременно ATA/ATAPI и PATA/SATA. С драйверами ATA/ATAPI ваш диск будет поименован как /dev/hda, тогда как с драйверами SATA/PATA он будет поименован как /dev/sda. Если в вашем ядре будут оба вида драйверов, то из-за того, что нельзя предсказать, какой драйвер "победит" при загрузке, у вас, возможно, будут проблемы с загрузкой системы.

А что относительно SCSI? Это сравнительно старый протокол работы с дисками. У вас, скорее всего, нет устройств SCSI, но Linux работает с дисковыми устройствами так, как если бы они были SCSI устройствами. Для драйвера SATA/PATA нужен SCSI и тоже самое относится к драйверам для USB дисков и устройств чтения с флеш карт. Так что убедитесь в том, что вы включили опции SCSI generic, диск и CDROM. Вам не нужно указывать конкретные драйвера, такие как RAID, ленточные приводы и транспорты SCSI, либо другие драйвера низкого уровня, если у вас нет этих устройств.

Так что будьте аккуратны в сложных случаях. Помимо этого — читайте Help и пробуйте. И, самый важный совет: всегда делайте копию вашего самого последнего работающего ядра.