Тюнинг домашнего тукса Денис Колисниченко Хакер, номер #088, стр. 088-094-4 * Режим по умолчанию (noop) – вряд ли подойдет для продвинутого пользователя, не смотря даже на то, что он используется по умолчанию. Суть алгоритма - это простая очередь типа FIFO (First In First Out - Первый Вошел, Первый Вышел). * Упреждающее планирование (Anticipatory Scheduling) – при чтении программой данных с диска ядро пытается предугадать, какие данные программа, вероятно, будет читать при следующей операции чтения. Если ядро правильно угадало "мысли" программы, данный алгоритм позволит существенно повысить производительность системы. Кроме всего прочего, эффективность этого алгоритма сильно зависит и от логики программы. elevator=as * "Справедливая" очередь (Complete Fairness Queuing) – равные права для всех программ. Ядро равномерно планирует операции ввода/вывода для каждой программы, здесь нет каких-либо программ, которые могут монополизировать доступ к диску. Если несколько программ одновременно запросят доступ к диску, все они получат ответ. Данный метод в некоторых случаях позволяет повысить производительность системы, а в некоторых, наоборот, снижает общую производительность – все зависит от конкретных задач. elevator=cfq * Deadline-планирование или планирование крайних сроков (Deadline Queuing) – все приложения, запросившие доступ к диску, ставятся в очередь. Из очереди извлекается одна программа, которая и получает практически монопольный доступ к диску. Пока эта программа работает, все остальные ожидают в очереди. По истечению определенного времени планировщик переводит эту программу в состояние ожидания и переключается на другую программу – следующую в очереди. Теперь вторая программа получает доминирующий доступ к диску. Затем третья, четвертая и т.д. К примеру, данный метод хорош для сервера баз данных. elevator=deadline У каждого алгоритма есть свои преимущества и недостатки. Но только два алгоритма подходят для обычного домашнего компьютера – as и cfq. Для изменения планировщика перекомпиляция ядра не требуется: достаточно передать параметр elevator при загрузке. Чтобы каждый раз вручную не выполнять эту операцию, пропиши в конфигурационном файле своего загрузчика следующие строки: Фрагмент /etc/lilo.conf image=/boot/vmlinuz-2.6.9 label=Linux root=/dev/hda1 append="elevator=as" Фрагмент /boot/grub/grub.conf title My Default Linux root (hd1,0) kernel /boot/vmlinuz-2.6.9 ro root=/dev/hda1 elevator=as В случае с LILO по окончанию редактирования файла не забудь командой "lilo" перезаписать загрузчик. [конфигурирование ядра] Повысить производительность системы может правильно сконфигурированное ядро. При конфигурировании ядра нужно следовать следующим правилам: * Отключай неиспользуемые тобой драйвера устройств, протоколы, реализации и т.д. * Наиболее часто используемые модули можешь включить в ядро. Да, модуль, это хорошо, но если код находится в составе ядра, то не нужно тратить время на его загрузку с диска. Только не переусердствуй - всему есть мера. Можно отключить все и оставить самый минимум, а потом, чтобы подключить Flash-диск приятеля, нужно будет снова перекомпилировать ядро, только зачем тебе это нужно? |