LINUX.ORG.RU
ФорумTalks

Альтернатива для Victoria/MHDD хотя бы для просмотра скорости чтения отдельных блоков

 , ,


0

5

Обе программы требуют переключения винчестера в IDE, работают только в эксклюзивном режиме (т.е. загрузка в MS-DOS), не поддерживают винты >2TB, есть ли что-то в Linux, что сканирует винчестер и показывает скорость чтения отдельных кластеров - даже в текстовом режиме покатит.

Если подумать, то можно написать такую программу руками, но вот сразу встаёт вопрос - как читать с винчестера в обход IO layer, ибо там всякие «полезности», вроде упреждающего чтения (readahead) и кэширования, что сразу делает задачу для меня невыполнимой - обычные pread64()/read64 с /dev/sdX никак не катят.

Edit: Или O_DIRECT будет достаточно? Что-то терзают меня сомнения.

Edit2: Страх: http://www.makelinux.net/ldd3/chp-15-sect-3 - нет, я сам писать не буду.

Edit3: Попробовал read64 на O_DIRECT - скорость такая, что застрелиться можно :-(



Последнее исправление: juk4windows (всего исправлений: 3)

Тоже интересно.

Jaga ★★★
()

ЕМНИП можно делать через O_SYNC, тогда все будет с минимальным оверхедом. Но опять таки, из-за того, что мы делаем все это в юзерспейсе многопользовательской системы, у нас будет неточность.
Если код запихнуть модулем ядра, конечно может и помжет... Но один хрен. MSDOS потому и хорошь, что там ничего и не мешает получать объективные результаты.
P.S. и не забудь, что на современных hdd есть свой кеш на контроллере, причем жирный. ЕМНИП его можно отдельными командами флашить/отключать.
А вообще есть в конце концов offline testing в смарте.

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

P.S. и не забудь, что на современных hdd есть свой кеш на контроллере, причем жирный. ЕМНИП его можно отдельными командами флашить/отключать.

На последовательное чтение новых данных он не влияет - так что пофигу.

juk4windows
() автор топика
Ответ на: комментарий от Kuzz

Через API - конечно, только через API всё очень необъективно получается.

juk4windows
() автор топика

куда написать фичерс квест на mhdd под линукс??

Freiheits-Sender ★★
()
Ответ на: комментарий от juk4windows

Не факт, зависит от физического расположения данных и внутренней логики. На вскидку я могу прикинуть случай, когда он может повлиять.

AiFiLTr0 ★★★★★
()

А вообще, вот тебе мой старый костыль: https://github.com/nekromant/scam-o-matic/blob/master/scam-o-matic.c
Наваял как-то для проверки SD карточек на поддельность, делает все с DSYNC, так что в принципе отражает реальную скорость работы носителя. Но для хороших результатов лучше запускать софтину вместо init'а на голой системе. Сядешь писать - скастуй меня.

AiFiLTr0 ★★★★★
()
Последнее исправление: AiFiLTr0 (всего исправлений: 2)
Ответ на: комментарий от Jaga

whdd - как-то меня смущает: оно работает на высокоуровневом API ( open64/read() ), читает по 512*1024 байт за раз - что-то я не вижу как оно может показывать скорость чтения конкретного сектора.

Лежит оно тут: https://github.com/krieger-od/whdd

juk4windows
() автор топика
Ответ на: комментарий от stevejobs

Были же новости о прошивках китайских накопителей, которые позволяли записать немного побольше, чем объём накопителя. Только с чтением обратно как-то не складывалось.

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

Угу, был прецедент. Купил 4х гиговые microSD с aliexpress, первые ~112 метров нормальны, остальное улетает в /dev/null. Потому запилил тулу, которая забивает все псевдослучайными данными (таусворт), после просчитывает записанное c тем же сидом.
Ну че, открыл диспут, вернули бабло, карточки тоже остались мне. Вин. Теперь жалею, что всего 5 штук взял.

AiFiLTr0 ★★★★★
()
Последнее исправление: AiFiLTr0 (всего исправлений: 1)

Обе программы требуют переключения винчестера в IDE

mhdd не требует (или мне так с железом везло?), victoria не пробовал

dexpl ★★★★★
()
28 июня 2013 г.
Ответ на: комментарий от Jaga

Да, уже посмотрел, к тому же не особо живое.

Оно оживает.

Проект WHDD обзавёлся сайтом http://whdd.org

Опубликована демка и масса прочей инфы о проекте. Реализована работа именно через АТА-команды, кроме изначального режима работы на POSIX API open()+read().

Добавлена функция копирования накопителя, алгоритмы разработаны с упором на сохранение жизнеспособности сбойного диска-источника.

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

Спасибо, это круто.

Пишите новости на лор.

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