LINUX.ORG.RU
ФорумTalks

pm-utils: убъем ваш винт за пол года

 ,


11

3

Какой упоротый разработчик запилил вот это:

/usr/lib/pm-utils/power.d/harddrive

# Default values on AC
DRIVE_SPINDOWN_VALUE_AC="${DRIVE_SPINDOWN_VALUE_AC:-0}"
DRIVE_WRITE_CACHE_AC="${DRIVE_WRITE_CACHE_AC:-1}" 
DRIVE_POWER_MGMT_AC="${DRIVE_POWER_MGMT_AC:-254}"
DRIVE_ACOUSTIC_MGMT_AC="${DRIVE_ACOUSTIC_MGMT_AC:-0}"

# Default values on battery
DRIVE_SPINDOWN_VALUE_BAT="${DRIVE_SPINDOWN_VALUE_BAT:-6}" # Парковка головок винта каждые 30 сек неактивности
DRIVE_WRITE_CACHE_BAT="${DRIVE_WRITE_CACHE_BAT:-0}" 
DRIVE_POWER_MGMT_BAT="${DRIVE_POWER_MGMT_BAT:-1}" # Агрессивный метод энергосбережения, винт паркуется сразу после прекращения активности.
DRIVE_ACOUSTIC_MGMT_BAT="${DRIVE_ACOUSTIC_MGMT_BAT:-254}"

Ниже идет хелп, что к чему.

This hook has 8 tuneable parameters:
DRIVE_SPINDOWN_VALUE_AC = time until a drive will spin down on AC
Defaults to 0, which disables drive spindown.
DRIVE_SPINDOWN_VALUE_BAT = time until a drive will spin down on battery
Defaults to 6, which will spin the drive down after 30 seconds of inactivity.

See the -S option on the hdparm manpage for more information.

DRIVE_WRITE_CACHE_AC = Whether the drive caches writes on AC
Defaults to 1, which means that the drive will cache writes internally.
DRIVE_WRITE_CACHE_BAT = Whether the drive caches writes on battery.
Defaults to 0 which means that the drive will not cache writes internally.

See the -W option on the hdparm man page for more information.

DRIVE_POWER_MGMT_AC = Drive Advanced Power Management value on AC
Defaults to 254 for max performance.
DRIVE_POWER_MGMT_BAT = Drive Advanced Power Management value on battery
Defaults to 1 for max power savings.

See the -B option on the hdparm man page

Drive acoustic management:
DRIVE_ACOUSTIC_MGMT_AC = Drive Acoustic Management value on AC
Defaults to 254 for max head speed.
DRIVE_ACOUSTIC_MGMT_BAT = Drive Acoustic Management value on battery
Defaults to 128 for max quietness.

See the -M option on the hdparm man page.
Итог. Ноут взят был в начале декабря. Спустя 3.5 недели на винте было ~7k парковок, а еще спустя 2 недели - 9.5k. Хорошо что догадался проверить винт на предмет наличия «зелености» aka WD Green (свой грин благополучно вылечил:)). Скрипт подправил, но осадочек остался. Есть желание написать на мыло разработчику и послать ему лучи добра. Будьте бдительны, и при покупке новых железяк, в часности винтов, смотрите сразу данные smart.

$subj

P.S. Для тех кто не в теме: ресурс парковок головок ограничен, на разных винтах по разному, но в целом производитель дает гарантию на то, что 300-600k парковок винт отработает.

P.P.S. Gentoo, но есть подозрения, что и в других дистрах та же херня.

UPD: http://cgit.freedesktop.org/pm-utils/tree/pm/power.d/harddrive - значения те же, что и привел выше, буду пинать разрабочиков, думал может гентушние майнтейнеры накосячили

UPD2: https://bugs.freedesktop.org/show_bug.cgi?id=36956 - бага на официальной багзилле.

UPD3: https://bugs.gentoo.org/show_bug.cgi?id=452362 баг на гентушной багзилле

★★★★★

Ответ на: комментарий от carasin

Напиши рецепт, пожалуйста. RFR18, если что. Ноутбуку неделя, а уже вот:

193 Load_Cycle_Count        0x0012   100   100   000    Old_age   Always       -       3440

f1xmAn ★★★★★ ()
Ответ на: комментарий от f1xmAn

В F18 что-то сломали с каким-то апдейтом. Теперь pm-utils бесполезны. Нужно квирк подсовывать уже systemd.

Вот баг-репорт.

Там же и воркэраунд.

carasin ★★★★★ ()
Ответ на: комментарий от f1xmAn

А вот как народ решил проблему с помощью unit'а для systemd. Это более правильное решение, ибо любой quirk — это костыль, который, как можно наглядно убедиться даже в этом треде, может легко отвалиться в любой момент.

carasin ★★★★★ ()

Давно запитал свои несколько Samsung 640GB HM641JI Spinpoint M7E через ataidle(8) на постоянную работу без парковок (ataidle -P 254 /dev/adaXX). Скорость роста количества парковок головок винчестеров резко уменьшилась.

iZEN ★★★★★ ()
Ответ на: комментарий от carasin

спасибо за листинг твоих скриптов, сейчас вот пробую, но хотел бы у тебя спросить

hdparm -S0 /dev/sda

и

touch /var/lock/subsys/local

для чего они служат

NK ★★★★★ ()
Ответ на: комментарий от NK

Первое — что-то про вращение шпинделя (в man'е более подробно написано). Второе — стандартная фигня из rc.local (когда оно ещё существовало в Fedora'е). Кстати, не рекомендую использовать «мои» скрипты в случае, если используется systemd.

carasin ★★★★★ ()
Ответ на: комментарий от carasin

Спасибо

Еще наверно у тебя кое-что спрошу, а зачем через case реализовал, извини, если тупой вопрос, просто не совсем вижу что это дает resume|thaw ?

И, чем было бы плохо, просто скрипт с «hdparm -B254 /dev/sda» ?

NK ★★★★★ ()
Ответ на: комментарий от NK

Я просто взял за образец другой хук, не особо вдаваясь в синтакис. Проверил — работает, вот и всё :) Можно и через скрипт, но мне было лень заморачиваться.

carasin ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.