hdparm

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

hdparm
Тип Утилита
Автор Mark Lord[1]
Написана на Си
Операционная система GNU/Linux
Языки интерфейса английский
Последняя версия
Состояние актуальное
Лицензия BSD
Сайт sourceforge.net/projects…

hdparm — утилита командной строки для Unix-подобных операционных систем. Утилита предназначена для регулировки и просмотра параметров жёстких дисков с интерфейсом ATA. Утилита может установить такие параметры как объём кеш-памяти накопителя, спящий режим, управление питанием, управление акустикой и настройки DMA[3].

Ранее входила в пакет hwtools.

Изменение аппаратных параметров от неоптимальных консервативных по умолчанию до оптимальных, может повысить производительность диска. Однако, в настоящее время нет надёжных методов для определения оптимальных параметров для устройства, кроме осторожных проб и наблюдений за ошибками. Также не существует никакой централизованной базы данных, которая могла бы собирать информацию о наблюдениях ряда опытных пользователей hdparm.

hdparm имеет очень серьёзный недостаток: утилита может привести к сбою компьютера и сделать данные на жёстком диске недоступными, после применения сочетания некоторых параметров. Всего доступно приблизительно шестьдесят семь параметров, изменение некоторых из них опасно и может привести к краху файловой системы. Перед использованием hdparm, нужно очень внимательно ознакомиться с руководством по работе с утилитой (выполнив команду man hdparm), иметь полную резервную копию всех файлов на диске.

hdparm является свободным программным обеспечением под BSD-лицензией.

Для просмотра общей информации о жёстком диске используется команда:

hdparm -i /dev/sd<буква>

где <буква> — строчная буква латинского алфавита, соответствующая определённому физическому диску, если их несколько. Если физический диск в компьютере единственный, то ему будет всегда соответствовать файл /dev/sda.

Advanced Power Management

[править | править код]

Отключение функции APM позволяет уменьшить частоту «парковки» головок жёсткого диска, что позволяет снизить уровень шума.[4] Для отключения APM используется команда:

hdparm -B 255 /dev/sd<буква>

или запись в конфигурационном файле /etc/hdparm.conf:

 /dev/sd<буква> {
 apm = 255
 }

Режимы Ultra DMA протокола ATA

[править | править код]

Для включения или выключения IDE DMA вручную может применяться команда hdparm. Современные версии ядра Linux автоматически включают DMA режим, что можно наблюдать в сообщениях отладки (строки вида ata1.00: configured for UDMA/133 или hda: UDMA/33 mode selected). Определить скорость передачи данных можно по таблице:

Режим Мбайт/с UDMA
Mode 0 16.7 UDMA16
Mode 1 25.0 UDMA25
Mode 2 33.3 UDMA33
Mode 3 44.4 UDMA44
Mode 4 66.7 UDMA66
Mode 5 100.0 UDMA100
Mode 6 133.3 UDMA133

Automatic Acoustic Management

[править | править код]

Для снижения шума жёсткого диска с помощью AAM используется ключ -M:

hdparm -M 128 /dev/sda

Значение 128 максимально снижает шум, максимальное значение 256 увеличивает шум и производительность.

Для постоянного задания параметров используется конфигурационный файл /etc/hdparm.conf:

 /dev/sda {
 acoustic_management = 128
 }

Интервал отключения

[править | править код]

С помощью ключа -S можно задать время, которое должно пройти после последнего обращения к диску, по истечении которого диск перейдёт в режим ожидания. Вращение дисков при этом останавливается до следующего обращения к диску. Если параметр лежит в диапазоне от 1 до 240, он умножается на 5 секунд (можно задать время от 5 секунд до 20 минут), от 241 до 251 — из параметра вычитается 240 и результат умножается на 30 минут (можно задать от 30 минут до 5.5 часов)[5]. Следующая команда установит интервал отключения равным 150 сек (30х5):

hdparm -S 30 /dev/sda

можно также задать параметр в конфигурационном файле /etc/hdparm.conf:

/dev/hdb {
spindown_time = 240
}

Многосекторное чтение

[править | править код]

Жёсткие диски способны прочитать более одного сектора за один раз. Значение multicount задаёт количество одновременно читаемых секторов жёсткого диска, управляется ключом -m:

hdparm -m 16 /dev/sda

Для выполнения команды может потребоваться ключ "--yes-i-know-what-i-am-doing". Значение данного параметра лучше ставить равным значению MaxMultSect для данного жёсткого диска.

можно также задать параметр в конфигурационном файле /etc/hdparm.conf:

/dev/hdb {
mult_sect_io = 16
}

Опережающее чтение

[править | править код]

Для повышения производительности жёсткого диска при работе с большими файлами, используется параметр readahead, управляемый с помощью ключа -a:

hdparm -a 32 /dev/sda

Значение параметра лучше всего подбирать, исходя из значения multicount для вашего HDD, для десктопов лучше всего подойдёт (multicount)*2

Можно так же задать параметр в конфигурационном файле /etc/hdparm.conf:

/dev/hdb {
read_ahead_sect = 32
}

Примечания

[править | править код]
  1. автор hdparm. Дата обращения: 30 сентября 2015. Архивировано 2 сентября 2015 года.
  2. hdparm-9.65 is released
  3. Magic and imagination // The Magic of Organization. — 2020. — С. 25–25. — doi:10.4337/9781839106736.00006.
  4. Problem with hard drive clicking — ThinkWiki. Дата обращения: 14 января 2011. Архивировано 11 января 2011 года.
  5. https://www.opennet.ru/cgi-bin/opennet/man.cgi?topic=hdparm&category=8