Жесткие диски на крутых виражах Крис Касперски ака мыщъх Хакер, номер #078, стр. 078-092-2 [hdparm — крутим, вертим, сверлим, клеим] Для достижения наивысшей производительности каждый жесткий диск, установленный в системе, должен быть настроен в соответствии со своим предназначением. Стандартные настройки, принимаемые ядром по умолчанию, ориентированы на абстрактного среднестатистического пользователя и редко совпадают с конкретными требованиями. Учет преобладающего типа запросов к дисковой подсистеме значительно повышает быстродействие (в некоторых случаях чуть ли не на порядок), хотя это оружие работает и в обратном направлении. Бестолковая настройка сваливает производительность в глубокую яму, из которой, впрочем, всегда можно выбраться, применив настройки по умолчанию. Всем этим ведает консольная утилита hdparm, которая входит в комплект штатной поставки большинства (если не всех) Linux'ов и работает из-под root'а. В случае чего взять ее можно здесь: metalab.unc.edu/pub/Linux/system/hardware/hdparm-3.6.tar.gz. Формат вызова следующий: # hdparm опция1 опция2 ... опцияN /dev/жесткий_диск Строго говоря, hdparm настраивает параметры не одного лишь жесткого диска, но также его контроллера и отчасти драйвера. Здесь не будем углубляться в терминологические тонкости и сразу перейдем к конкретным параметрам. Ключ -a устанавливает количество секторов опережающего чтения, которые будут автоматически прочитаны контроллером в надежде, что они все-таки пригодятся пользователю. По умолчанию ядро читает 8 секторов (4 Кб). При последовательном чтении больших слабофрагментированных файлов это значение рекомендуется увеличить в несколько раз, а при хаотичном доступе, работе с мелкими или сильнофрагментированными файлами — уменьшить до 1-2 секторов. Ключ -P задействует механизм аппаратной предвыборки, сообщая приводу, сколько секторов ему необходимо прочитать. Грубо говоря, это то же самое, что и -a, только намного круче. Однако не все приводы поддерживают аппаратную предвыборку. Ключ -m специфицирует количество секторов, обрабатываемых приводом за одну операцию обмена (так называемый multiple sector I/O, или block mode). В зависимости от конструктивных особенностей жесткого диска он может обрабатывать от 2 до 64 (и больше) секторов за раз. Конкретное значение можно узнать с помощью ключа -i (оно находится в графе MaxMultSect). В общем случае скорость обработки данных прямо пропорциональна количеству секторов, однако некоторые приводы (например WD Caviars) при больших значениях -m начинают жутко тормозить. Внимание: запредельные значения -m могут привести к повреждению данных, поэтому не рискуй без необходимости! Выяснить практическое положение дел помогает ключ -t, измеряющий пропускную способность дисковой подсистемы в режиме чтения. |