К сожалению настройки по-умолчанию для IDE жёстких дисков сделаны с уклоном
в надёжность работы, в том числе на некачественом оборудовании. На большинстве
же современных материнских плат и жёстких дисков можно заметно увеличить
производительность IDE подсистемы, причём это не потребует много времени.
Для получения характеристик IDE устройства выполните команду:
``hdparm -i /dev/hda``
Вместо /dev/hda можно указать любое другое IDE устройство
/dev/hda:
Model=IC35L120AVVA07–0, Fw Rev?=VA6OA52A, Serial No?=VNC602A6G9A19A
Config={ Hard Sect? Not MFM? Hd Sw?>15uSec Fixed DTR>10Mbs }
Raw CHS?=16383/16/63, Trk Size?=0, Sect Size?=0, ECCbytes=52
Buff Type?=Dual Port Cache?, Buff Size?=1863kB, Max Mult Sect?=16, Mult Sect?=8
Cur CHS?=16383/16/63, Cur Sects?=16514064, LBA=yes, LBAsects=66055248
IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 *udma2 udma3 udma4 udma5
Advanced PM?=yes: disabled (255) Write Cache?=enabled
Drive conforms to: ATA/ATAPI-5 T13 1321D revision 1: 2 3 4 5
Model=CD-W58E, Fw Rev?=1.0A, Serial No?=
Config={ Fixed Removeable DTR<=5Mbs DTR>10Mbs nonMagnetic }
Raw CHS?=0/0/0, Trk Size?=0, Sect Size?=0, ECCbytes=0
Buff Type?=unknown, Buff Size?=0kB, Max Mult Sect?=0
(maybe): Cur CHS?=0/0/0, Cur Sects?=0, LBA=yes, LBAsects=0
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: sdma0 sdma1 sdma2 mdma0 mdma1 *mdma2
Advanced PM?=no
Запустив другую команду, вы получите дополнительную информацию:
Результат работы команды:
/dev/hda:
Коротко...
ПРЕДУПРЕЖДЕНИЕ! Неправильная настройка может привести к потере данных на
жёстком диске, а возможно и самого дика.
-с0 — установка 16-и битного режима (по-умолчанию)\\
-c1 — установка 32-х битного режима (обычно то, что вам нужно)\\
-c3 — установка 32-х битного синхронного режима (мне не известно, когда именно это над
Количество секторов передаваемых сразу (одним блоком). Степень двойки,
максимальное число — параметр Max Mult Sect? в выводе hdparm -i. Чаще всего
вам именно его и нужно указывать.
Большинство современных чипсетов и HDD поддерживают DMA под линуксом. Для
некоторых самых новых чипсетов в данный момент поддержки DMA может не быть,
однако это не так часто бывает. Обычно в течении нескольких недель после
выхода нового чипсета появляется его поддержка в последнем ядре, так что
если DMA у вас не включается, то следует, скорее всего, обновить ядро.
-d0 — запрещение DMA\\
-d1 — включение DMA
Самая опасная настройка — её неправильное использование чаще всего приводит
к повреждению данных или оборудования.
-X<число> — установка режима PIO или DMA
Режимы multiword DMA:
32 (базовое число) + номер режима:
-X32 — mdma0
-X33 — mdma1
-X34 — mdma2
Для PIO базовое число 8, для Ultra DMA? 64.
-X64 — udma0
-X65 — udma1
-X66 — udma2
-X67 — udma3
-X68 — udma4
-X69 — udma5
На сколько чекторов вперёд читать при запросе. Ускоряет производительность
при чтении файлов большого размера, однако замедляет работу с файлами
небольшого размера.
Лучше всего установить то же значение, что и для multicount.
-aN — опережающее чтение N секторов
Для тестирования наберите:
hdparm -t <имя устройства>
Желательно это делать, когда заметной дисковой активности нет.
Потом попробуйте какой-нибудь вариант конфигурации, например:
hdparm -u1c1d1m8a8 <имя устройства>
После чего опять повторите:
hdparm -t <имя устройства>
И сравните результаты.
По результату этого теста не стоит подбирать опции -a и -m, для этого лучим
тестом будут реальные приложения, исполняемые на вашей машине. Если это
домашняя машина, а не боевой сервер, на котором важна свертонкая подстройка
(но на таких серверах редко оказываются IDE-диски, о которых здесь идёт речь),
то тогда параметр multicount (-m) ставите на максимум, а параметр read-ahead (-a)
равным multicount.
Настройки hdparm задаются в файле /etc/sysconfig/harddisk/hd*
hdparm(8)
!! TODO -S (время пассивной работы до выхода в standby) !!
(C) Денис Смирнов <mithraen@freesource.info>