Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #51, ФЕВРАЛЬ 2005 г.

*nix-ускорение

Колисниченко Денис

Спецвыпуск: Хакер, номер #051, стр. 051-048-5


# hdparm – t /dev/had

Эту команду нужно вводить от имени пользователя root. Я, например, получил результат 57,64 Мб/с. Такой результат меня устраивает, поэтому я даже не пытался его увеличить, а просто еще раз запустил Hdparm, чтобы просмотреть параметры винчестера.

$ hdparm /dev/hda

У меня все нормально:

* передача нескольких секторов (multcount) за такт включена (16 секторов);

* включена поддержка 32-битного ввода/вывода;

* включено использование DMA.

На старом дистрибутиве (правда, для другого винчестера) я получил следующее:

/dev/hda:

multcount = 0 (off)

I/O support = 0 (default 16-bit)

unmaskirq = 0 (off)

using_dma = 0 (off)

keepsettings = 0 (off)

nowerr = 0 (off)

readonly = 0 (off)

readahead = 8 (on)

Тут полный бардак: Multcount выключен, DMA не используется, поддержка 16-битного ввода/вывода тоже выключена. С такими параметрами винчестер выдавал лишь 3,75 Мб/с. Исправить это помогла команда

# hdparm –d1m8c3u1 /dev/hda1

Теперь разберемся, что же сделала эта команда. Во-первых, мы включили DMA (d1), потом разрешили передавать больше одного сектора за такт (8) и включили 32-битный доступ к диску (команда с3). Кстати, параметр u1 полезен и в тех случаях, когда у тебя начинает "заикаться" xmms во время прослушивания музыки. Можно поэкспериментировать и с другими параметрами Hdparm, узнать о которых можно в справке (man hdparm). Для сохранения параметров контроллера IDE используется команда

# hdparm -k 1 /dev/hda

При перезагрузке системы параметры IDE теряются, поэтому команду "разгона" винчестера нужно поместить в сценарий запуска системы. Просто добавь команду вызова Hdparm в файл /etc/rc.d/rc.local. Этот способ является универсальным, поскольку он позволяет установить отдельные параметры для разных жестких дисков, если их несколько. Второй, менее универсальный способ заключается в редактировании файла /etc/sysconfig/harddisks, в котором можно задать общие параметры для всех жестких дисков. Есть еще один подводный камень: при пробуждении системы в нормальное состояние после "сна" параметры контроллера также сбрасываются. Этого можно избежать, если подправить файл конфигурации демона Apmd, который отвечает за управление питанием. Параметры контроллера IDE, которые устанавливаются при переходе системы в "спящий" режим и при выходе из него, задаются строками HDPARM_AT_SUSPEND и HDPARM_AT_RESUME в файле конфигурации /etc/sysconfig/apmd. Файлы конфигурации, расположенные в каталоге /etc/sysconfig, имеются только в системах, подобных Red Hat -- это Red Hat Linux, Mandrake Linux, SuSE Linux, ASP Linux, Back Cat Linux, ABI Linux и другие.

Перекомпилирование ядра

Подробно рассматривать процесс перекомпилирования ядра не будем – этому посвящено очень много статей. В принципе, ядро можно и не перекомпилировать, но все-таки лучше это сделать. Разработчики дистрибутива не знают, на какой компьютер будет устанавливаться их дистрибутив, поэтому ядра идут универсальные – для процессора 586/686. У тебя же установлен совершенно другой процессор. Поэтому первое, что нужно сделать – это в утилите конфигурирования ядра установить свой тип процессора. Затем пройтись по всем функциям ядра и решить, нужны ли они тебе. Каждая функция "отъедает" кусочек оперативной памяти. Если функция не нужна (или не нужна в ближайшее время), ее можно выключить или, по крайней мере, попытаться включить в состав ядра в виде модуля. В этом случае она не будет занимать память, когда она не нужна, а будет загружаться только по требованию ядра. Наоборот, те функции, которые тебе точно необходимы, нужно стараться включить в ядро (не в виде модуля!). В этом случае они будут работать быстрее. Только тут важно не перестараться, а то можно получить гигантское и неповоротливое ядро.

Назад на стр. 051-048-4  Содержание  Вперед на стр. 051-048-6