Підвищення продуктивності жорсткого диска - Linux-сервер своїми руками
4.18. Підвищення продуктивності жорсткого диска
Істотно підвищити продуктивність жорсткого диска допоможе програма hdparm. Я збільшив швидкість операції читання свого жорсткого диска Quantum Fireball ATA66 з 3,75 Мб/с до 14 Мб/с, а жорсткий диск IBM АТА100 (модель не пам'ятаю) вдалося «розігнати» до 30,1 Мб/с!
Розглянемо використання програми hdparm з прикладу. Для початку запустимо її в режимі тесту, зареєструвавшись у системі як root:
# hdparm -t /dev/hda
Timing buffered disk reads: 64 MB за 17.08 seconds = 3.75 MB/sec
Поглянувши на відображену інформацію, можна побачити: «Мало, проте». Щоб зрозуміти, чому так виходить, введемо команду:
і отримаємо у відповідь
multcount = 0 (off)
I/O support = 0 (default 16-bit)
unmaskirq =0 (off)
using_dma = 0 (off)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
З цього можна зробити висновок, що всі параметри вимкнені та використовується шістнадцятирозрядний доступ до диска. Спробуємо трохи «розігнати» наш жорсткий диск.
# hdparm –dlm2c3ul /dev/hda
Тепер розберемося, що ми зробили цією командою. По-перше, ми включили DMA, потім дозволили передавати більше одного слова за такт, а також включили тридцятидвобітний доступ до диска (команда с). До речі, параметр ul корисний і в тих випадках, коли у вас починає заїкатися xmms під час прослуховування музики.
Ось тепер знову запустимо hdparm у режимі тесту. Залежно від жорсткого диска у нас має вийти щонайменше 14 Мб/с. Думаю, порівняно з попереднім показником різниця суттєва.
Можна використовувати параметри Х33 та Х66 для включення режимів передачі даних UDMA33 та UDMA66 відповідно. Якщо привикористання режимів Х33 та Х66 продуктивність знизилася, використовуйте режим Х68. Для збереження параметрів контролера 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 та інші.
За допомогою команди hdparm можна не тільки підвищити швидкість обміну даними, але, як ви помітили, знизити її. Особливо це корисно під час прослуховування аудіо компакт-дисків. Справді, навіщо прослуховувати аудіо компакт-диски на приводі 52х? До того ж високошвидкісний CDROM слухом шумить. Пригальмувати привід можна такою командою:
#hdparm -Е 2 /dev/hdd
У цьому прикладі ми встановлюємо другу швидкість, тобто 300 Кб/с.