Команда hdparm linux
Утилита hdparm позволяет устанавливать и просматривать различные параметры жестких дисков HDD в Linux. Она работает только в командной строке и предоставляет доступ к настройкам кэша диска, режима сна, энергопотребления, уровня его производительности, шума, а также DMA. Возможности этой утилиты используются в GParted.
Изменение стандартных значений для некоторых параметров может очень сильно увеличить производительность диска, однако на данный момент нет точного способа определить оптимальные значения. Это можно сделать только путём проб и ошибок. В этой небольшой статье мы разберемся как работает команда hdparm linux, а также что с помощью неё можно сделать.
Синтаксис команды hdparm
Синтаксис hdparm Linux очень похож на другие подобные команды:
$ hdparm опция значение /dev/имя_файла_диска
Если опцию передать без значения, то как правило, она просто выводит текущее значения параметра, если передать значение, то оно устанавливается вместо старого. Давайте сначала рассмотрим основные опции утилиты, которые мы будем сегодня использовать:
- -a — позволяет включить режим read-ahead, когда чтение выполняется в первую очередь. Этот режим позволяет улучшить производительность чтения больших объемов данных;
- -A — позволяет включить режим read-look-ahead, когда диск просматривается перед чтением. По умолчанию включена;
- -b — остановить жесткий диск до следующего к нему обращения;
- -B — настройка управления питанием Advanced Power Management (APM), чем ниже значение, тем лучше энергосбережение. Чтобы отключить режим полностью установите значение в 255.
- -c — включает 32-битный режим передачи для IDE;
- -C — позволяет посмотреть текущий режим питания IDE;
- -d — включает режим DMA;
- -D — включает обнаружение дефектных областей на диске;
- -E — позволяет установить скорость для CD/DVD привода;
- -f — позволяет записать кэш диска на носитель;
- -i — выводит информацию о диске;
- -I — тоже выводит информацию о диске, но в более подробной форме;
- -m — позволяет указать количество секторов для многосекторного ввода/вывода. Чтобы отключить эту опцию установите её в 0;
- -M — позволяет управлять уровнем шума диска с помощью Automatic Acoustic Management (AAM);
- -n — позволяет включить флаг ignore write errors для игнорирования ошибок записи;
- -r — включает флаг read only. После этого с устройства можно только читать данные, но не записывать;
- -S — устанавливает время неактивности диска для перехода его в режим сна. Если установлено в 0, то диск сразу же отключается;
- -T — выполняет тест скорости чтения из кэша;
- -t — выполняет тест скорости чтения с диска без кэширования;
- -v — выводит все настройки;
- -w — выполняет сброс диска;
- -W — включает или отключает кэш для записи данных на IDE;
- -y — переводит IDE диск в режим низкого энергопотребления, замедляя скорость вращения диска;
- -Y — переводит IDE диск в режим низкого энергопотребления останавливая его;
- -z — просит ядро перечитать таблицу разделов для этого диска;
- -Z — отключает режим энергосбережения диска.
Установка hdparm
Если утилита ещё не установлена в вашей операционной системе, то её можно установить из официальных репозиториев дистрибутива. Например, для установки hdparm Ubuntu / Debian / Linux Mint выполните:
Примеры команды hdparm
И так программу установили, можно и к действиям переходить. Давайте сначала посмотрим информацию о диске с помощью опции -i:
Теперь смотрим более расширенную информацию опцией -I:
Чтобы посмотреть текущие настройки для различных флагов диска используйте опцию -v:
Для теста скорости работы диска с кэшем используйте опцию -T:
Чтобы остановить вращение мотора диска до следующего к нему обращения выполните:
После включения этой опции диск перейдет в режим сна сразу же через пять секунд после завершения операций с ним. Если же вы хотите уменьшить энергопотребление вашего устройства предыдущая команда не совсем подходит. Для этого существует функция управления питанием:
Замедляет обороты диска если к нему не обращались на протяжении определенного времени, доступны значения от нуля до 255, 120 примерно среднее значение.
Разберемся подробнее с опцией -S. Она позволяет останавливает двигатель диска после время бездействия:
Можно также использовать числа в диапазоне от 1 до 255. Значения от единицы до 240 означают время в секундах умноженное на 5. Таким образом можно рассчитать время ожидания от 5 секунд до двадцати минут. Значения от 241 до 251 рассчитывается уже умножением на 30 минут, таким образом можно получить время от тридцати минут до пяти с половиной часов.
Чтобы уменьшить уровень шума от диска можно ещё воспользоваться опцией -M. Она принимает значения от 128 что означает более тихую работу и до 254, которое означает более высокую производительность. Попросим диск работать как можно тише:
Выводы
В этой статье мы рассмотрели как пользоваться hdparm для настройки диска в Linux. Всё выглядит сложным, но зато вы можете немного повысить производительность своего диска, снизить его энергопотребление или шум.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Параметры дисков в Linux – команда hdparm
В системном администрировании порой возникают ситуации, когда необходимо работать с параметрами накопителей. В частности с настройкой жестких дисков, проводить оценку их состояния, производительности, а также в некоторых случаях оптимизировать их режимы работы. Для решения подобных задач в Linux-системах в помощь системным администраторам существует утилита hdparm.
Основные возможности hdparm
В утилиту hdparm изначально заложены широкие возможности для настройки дисков. Она также может использоваться и для безопасного стирания дисков. Но основное её предназначение — это получение информации и параметров жестких дисков. А также управление ими путём взаимодействия со встроенными в устройства микропрограммами. В том числе и S.M.A.R.T.
Командой hdparm легко управлять настройками электропитания, настраивать акустические параметры, получать подробную информацию об устройстве и его состоянии, защищать накопители установкой флага «только для чтения», а также выполнять тесты производительности. Утилита поддерживает работу с устройствами IDE, SATA, SAS, а также SCSI.
Обычно утилита hdparm предустановлена в большинстве систем «из коробки». По крайней мере соответствующий пакет всегда присутствует в репозиториях используемого дистрибутива. Для Dbian-ориентированных систем:
$ sudo apt-get install hdparm
Для RPM-систем (CentOS, Red Hat Linux):
Полное имя пакета может отличаться от приведённого, либо hdparm может включаться в состав метапакетов, как это бывает для серверных систем. Эту информацию следует уточнять для конкретного дистрибутива.
Синтаксис и основные опции
Синтаксис использования команды hdparm следующий:
hdparm [параметры] устройство
Несмотря на то, что hdparm обладает широким функционалом и для команды доступен огромный набор опций. Следует заметить, что подавляющая часть из них предназначена (или по крайней мере особенно полезна) для разработчиков ПО, драйверов, а также тестировщиков. Однако определённый набор опций hdparm часто используется для задач по системному администрированию Linux/UNIX. Это демонстрирует следующая таблица:
Опция | Описание |
-I | Информация о накопителе и его состоянии |
-M значение | Задаёт акустические параметры |
-S значение | Задаёт задержку перед отключением устройства (режим ожидания) |
-y | Немедленно переводит устройство в режим ожидания |
-C | Отправка запросов о текущем состоянии системы электропитания устройства |
-T | Быстрое тестирование пропускной способности устройства (работа с кешем, без чтения с пластин) |
-t | Быстрое тестирование скорости считывания данных с пластин устройства |
К примеру, если нужно проверить, в каком режиме DMA работает жесткий диск, достаточно дать команду:
$ sudo hdparm -I /dev/sdc /dev/sdc: ATA device, with non-removable media Model Number: ST3344888SS Serial Number: 5AA00X77 Firmware Revision: 3.AAC Standards: Supported: 7 6 5 4 Likely used: 7 Configuration: Logical max current cylinders 16383 16383 heads 16 16 sectors/track 63 63 -- CHS current addressable sectors: 16514064 LBA user addressable sectors: 268435455 LBA48 user addressable sectors: 312581808 Logical Sector size: 512 bytes Physical Sector size: 512 bytes device size with M = 1024*1024: 152627 MBytes device size with M = 1000*1000: 160041 MBytes (160 GB) cache/buffer size = 8192 KBytes Capabilities: LBA, IORDY(can be disabled) Queue depth: 32 Standby timer values: spec'd by Standard, no device specific minimum R/W multiple sector transfer: Max = 16 Current = 16 Recommended acoustic management value: 208, current value: 0 DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 Cycle time: min=120ns recommended=120ns PIO: pio0 pio1 pio2 pio3 pio4 Cycle time: no flow control=120ns IORDY flow control=120ns
Данный вывод содержит много и другой полезной информации об устройстве. Но интересующие режимы DMA представлены в секции «Capabilities» в подразделе DMA. Утилита hdparm перечисляет все поддерживаемые режимы и отмечает звёздочкой текущий используемый, что и можно наблюдать в данном выводе. На самом деле в современных системах подходящие режимы DMA устанавливаются автоматически. И данная опция требует настройки в самых редких случаях и может свидетельствовать разве что о наличии неисправностей оборудования или несовместимой конфигурации.
В некоторых случаях требуется настроить акустические характеристики жестких дисков. Которые слишком громко издают щелчки во время перемещения головок. А когда таких дисков много в одном стеке, то такие мероприятия становятся необходимостью. Большинство производителей предусматривают в своих устройствах возможность настройки акустических параметров в целях снижения шума от них. Или может возникнуть обратная ситуация, когда следует отключать возможность регулировки шума устройств (поскольку это может сказываться на производительности), например для изолированных серверных помещений шум особого значения (главное, чтобы при этом не возникало акустических вибраций вследствие резонансных явлений) не имеет. Функция снижения шума от работы накопителей работает довольно просто — приводами головок снижается скорость их перемещения, что и уменьшает существенно громкость тиканья и скрежетов. Все современные накопители (жесткие диски) поставляются по-умолчанию с уже включенной функцией шумоподавления и поэтому, если вдруг понадобилось эту функцию отключить, то нужно выполнить команду hdparm -M 254. Значение 128 включает «тихий режим», 0 — самый громкий и, соответственно, самый быстрый.
Управление питанием
Если необходимо для экономии электроэнергии отключать неактивные какое-то время накопители, то стоит воспользоваться командой:
Данная команда указывает накопителю, что он должен переходить в режим ожидания (замедляя вращения пластин оборотами двигателя) через 10 минут. Тут есть некоторая нелинейность в задании параметра тайм-аута перед отключением после неактивного простоя накопителя. Значения от 1 до 240 умножаются на 5 сек., значения от 241 до 250 — на 20 минут (в некоторых системах на 30), это связано с особенностями кодирования данного параметра для микропрограммы управления накопителем, поэтому в управлении питанием дисков арифметика как нельзя кстати.
Тестирование производительности
Ещё одной полезной опцией hdparm является возможность проведения быстрых тестов скорости работы с передачей данных, причём для режима передачи по шине и непосредственно задействовав физические механизмы накопителя. Например, следующая команда покажет соответствующие скорости работы для накопителя /dev/sdb:
$ sudo hdparm -Tt /dev/sdb /dev/sdc: Timing cached reads: 23646 MB in 2.00 seconds = 11839.11 MB/sec Timing buffered disk reads: 224 MB in 3.02 seconds = 74.11 MB/sec
Данный вывод показывает (и это вполне ожидаемо), что скорость чтения кешированных данных по шине гораздо быстрее, чем во время работы непосредственно с пластинами накопителя. По значению скорости чтения буфера диска (параметр -t) можно судить о том, правильно ли настроен диск. В данном случае диск довольно «старый», поэтому этот показатель невысокий. Хотя и соответствует характеристикам данного накопителя. Для современных же жестких дисков значение скорости чтения данных с пластин должно быть около 100 МБ/сек.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.