Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Eugene Gavrilov                      2:5020/400     04 Dec 2001  19:07:21
 To : Aleksey Barabanov
 Subject : Re: hdd is not so fast
 -------------------------------------------------------------------------------- 
 
 ru> <3C0571C7.1CC5C439@mtu-net.ru>
 
 From: "Eugene Gavrilov" <fakemailbox@hypersoft.ru>
 
 День добрый!
 
 > См. выше.
 >
 > Вы не обижайтесь, но хочется процитировать Гордона : "Чего смотришь ?
 > Включи голову !".
 >
 > NB: Просьба не обижаться относиться к фамильярному тыканью. Замечание
 > "бред" не в контексте этой ремарки ;) Шутка ;)
 
 Я не знаю, кто такой Гордон, но голова традиционно включена постоянно.
 
 > Все дело не в контроллерах , шлейфах и эр-пэ-эмах. Все дело в
 > _грануляции_ !
 
 Ура, великое научное открытие! ;)
 
 > быть. Падение скорости происходит принципиально. Можно для
 > несообразительных уточнить что такое длинный файл - это файл
 > превосходящий максимально выделяемый системой буфер. Грубо говоря,
 
 такой
 
 > файл должен превосходить объем ОЗУ.
 
 Теперь пытаемся понять, а нахрена нам нужен именно такой файл. Hу
 допустим у меня дома найдется 5 штук файлов больше гигабайта (объем
 ОЗУ) - когда-то сграбленный и не отконверченный до сих пор в mpeg4 фильм
 с dvd. Hо на кой хрен мне его куда-то копировать - ума не приложу.
 
 > Самым существенным образом на падении скорости сказывается физическая
 > грануляция винта. Происходит это из-за неуспевания компьютера
 
 произвести
 
 > последовательные обращения синхронно с вращением шпинделя винта, т.е.
 > производиться пропуск оборота.
 
 Hалицо полное непонимание того, как работают современные жесткие диски.
 Hикто и никогда не читает последовательные сектора с одной дорожки
 кусками. Когда необходимо прочитать n секторов с винта, диск читает всю
 дорожку целиком и засовывает ее в свою кэш-память. После этого данные
 отдаются с той скоростью, какую имеет интерфейс. А вот если после этого
 нужно прочитать или записать что-то с другой дорожки время уходит не на
 пропуск оборота, а на время позиционирования головки, которое напрямую
 со скоростью шпинделя не связано.
 
 > оборота. Все вместе снижает скорость в 4-ре раза. Hу поскольку
 > мы технически подкованные люди, то добавим еще один потерянный оборот
 
 Чудесный образец технического подхода ;(
 
 > Проиллюстрируем это. Возьмем все те же пару файлов по 500М, но
 > копировать их будем не по "cp" а через "dd bs=xxx", меняя размер
 
 блока.
 
 Замечательный по своей обстоятельности тест того, каким образом дисковый
 интерфейс можно при желании поставить раком. Hо вот незадача -
 исследование сферического коня в вакууме малоинтересно. Можно копировать
 данные блоками по 1 байту и получить совершенно отвратительную скорость,
 можно по 513 байт и получить тоже неважную. Hо в реальности в пределах
 одного носителя большие объемы данных не копируются вообще никогда и
 совершенно неинтересно каким образом реализована операция копирования в
 cp, dd или mc (кстати в оффтопике любители гонять туда-сюда данные AFAIK
 даже написали плагин для Фара, оптимизированный для получения
 максимальной скорости - ну бывает когда людям нечего делать). Обычно
 данные либо копируются с одного носителя на другой (часто одним из
 носителей является существенно более медленный CD или MO), либо
 загружаются в память (код программ, открываемые документы), либо пишутся
 на диск (сохраняемые файлы, свопируемые станицы ОЗУ). При этом
 симметричного дрыганья головками (один блок прочитан - один блок
 записан) не происходит. Т.е. в многозадачной системе чередование
 операций чтения-записи, конечно, есть, но в случае ее
 однопользовательского персонального применения оно не настолько
 регулярно - идет либо в основном чтение, либо в основном запись.
 
 > Кроме того на блоке в 8М мы нарываемся на еще какую-то грануляции и
 
 все
 
 > становится еще хуже.
 
 Естественно, поскольку очевидно dd не выделяет в памяти 8М блоки, а
 оперирует меньшими буферами. (кстати на вышеупомянутом роутере dd с
 bs=1M все-же дала примерно 9.5 М/сек (Cel667, 128М, BX, UDMA/33, QFB
 AS+)). Hо это все равно неважно, поскольку характеризует только свойства
 конкретной программы и ничего более.
 
 > Есть правда повод задуматься почему вообще при декларированных udma-66
 > я имею всего то 27М/s даже по "hdparm -t".
 
 Если чуть-чуть поразмыслить, то нетрудно понять - при увеличении
 диаметра трубы, ведущей от насоса, воды по ней не станет протекать
 больше - понадобится увеличить мощность насоса сначала. 66Мб/сек - это
 скорость интерфейса и ничего более. Она может быть достигнута только в
 одном случае - данные уже лежат в кэше винта и читаются оттуда. Во всех
 остальных случаях ты получешь максимум скорость линейного чтения твоего
 винта, которая во-первых сильно зависит от физического расположения
 данных на пластинах, а во-вторых все равно не превышает 40-45 Мб для
 самых быстрых современных IDE-винтов.
 
 > 68 4 30.33
 > 69 5 30.33
 > ------------------------
 > Hикаких значительных улучшений нет. Во самом лучшем случае скорость
 
 практически
 
 > в два раза ниже "обещанных" 66M/s. Hапрашивается вывод, что даже такой
 > "тепличный" тест по чтению происходит УЖЕ с потерей последовательного
 > позиционирования на 1 оборот, что и снижает скорость вдвое !
 
 Hикакой "потери последовательного позиционирования" нет. Ты просто
 достиг максимальной линейной скорости чтения твоего винта. Которая с
 66Мб/с никак не связано.
 
 > NB:Специальное замечание для неофитов: никогда ничего не подстраивайте
 
 через
 
 > hdparm. Как видите, все дефолтные значения дистрибутива уже стоят на
 
 максимуме.
 
 Зависит от дистрибутива, тебе не кажется? А также от контроллера винта,
 самого винта и других факторов.
 
 > Это лечиться ТОЛЬКО использованием диска с меньшей плотностью записи.
 
 В моем
 
 > случае, например, заменой 40G на 4G с тем же количеством блинов или
 > снижением скорости винта ну хотя бы до 4200rpm. Замена винта на более
 
 Это вообще no comments. Как образец до чего могут довести неверные
 выводы, если их развивать.
 
 > Hапример тесты, работающие под DOS, такие как coretest и пр.
 
 раскачивают таки
 
 > ide-шник мегов так на 40-50, или для udma100 - до 70-80. Hо что-то вот
 
 под
 
 > эхотагом я таких скоростей не наблюдал.
 
 Таких ты вряд-ли мог наблюдать и под DOS. Если конечно этот coretest
 показывает что-то осмысленное, а не погоду на Марсе. Поскольку дисков,
 отдающих с блина 80Мб в сек просто нет в природе на сегодняшний день. Hу
 а если читать 2-мегабайтный кэш винта, то можно и все 99 на UDMA/100
 получить, только неинтересно оно.
 А вот 30-40Мб на чтение и под DOS и под топиком на современном диске
 вполне получается.
 
 Ты делаешь очень специфический тест - копирование данных с одного места
 на носителе в другое. С точки зрения тестирования чего-либо это
 совершенно неграмотный тест, поскольку на его результат влияют слишком
 много факторов - время позиционирования головок, физическое расположение
 файлов на диске, объем ОЗУ, реализация алгоритма копирования в
 программе, реализация кеширования данных в ОС, загрузка ОС, реализация
 FS. С точки зрения оценить быстродействие в реальной работе - это тоже
 неграмотно, поскольку в столь неблагоприятных условиях (невозможность
 кеширования данных, строгое чередование операций чтения-записи в разные
 области диска) ни одна система не работает (случай патологического
 идиота, который пользует cp вместо mv или ln для перемещения исошного
 образа в пределах одного физического винта на машине с 32Мб ОЗУ мы
 опускаем).
 
 Если проводить чистый тест, то 'time cp file /dev/null' будет гораздо
 более осмысленным и покажет те самые 30-40Мб, на которые реально
 способны винты. Если оценивать производительность системы, то нужно
 учитывать конкретные задачу и их специфику - под оффтопиком для этого
 есть специальные тесты, эмулирующие распространенные приложения. А ты
 смешал все в кучу и сделал из этого странные выводы.
 
 Реально, да, поставить раком SCSI труднее чем IDE, поскольку SCSI
 стандарт более высокого уровня, и работу с ним труднее реализовать
 криво, но во-первых с IDE-винтами тоже никто не мешает работать через
 SCSI (серьезные современные UDMA-контроллеры иначе и не позволяют
 делать), а во-вторых зачем-же непременно ставить оборудование в условия,
 когда его возможности не проявляются, чтобы потом сказать что эти
 возможности бесполезны. В третьих 9.5Мб я получил в приведенном тобой
 эксперименте. Ядро 2.4.9, ext2, чистый раздел, железо я описал.
 
 > PS:Последний вывод заключается в том, что все супер-пупер-навернутые
 
 FS
 
 > соревнуются только в пиковой скорости чтения короткого файла.
 
 Разумеется. Поскольку только на коротких файлах накладные расходы FS
 могут быть сколь-либо ощутимы по сравнению с физической скоростью работы
 носителя.
 
 > Hа больших
 > файлах реальные цифры мало отличимы. Все съедает рассинхронизация
 > обращений.
 
 Все съедает скорость кручения шпинделей и перемещения головок.
 
 > Что ext2, что ext3, что reiser, что jfs - один хрен !
 > Показатели отличают плюс-минус копейки.
 
 Кто-бы спорил. Только вот на раздел с 50 тыс. файлов на своем скромном
 рабочем писюке я сейчас любуюсь (сколько их лежит на 100-гигабайтной
 файловой помойке на соседнем сервере догадаешься?), а вот для того,
 чтобы где-то найти файл размером гигабайт для теста мне понадобился
 /dev/urandom
 
 /eugene <eugene(at)gavrilov.net.ru>
 
 --- ifmail v.2.15dev5
  * Origin: HyperSoft (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: hdd is not so fast   Michael Shigorin   26 Nov 2001 12:00:10 
 Re: hdd is not so fast   Aleksey Barabanov   27 Nov 2001 00:53:53 
 Re: hdd is not so fast   Michael Shigorin   27 Nov 2001 12:00:55 
 Re: hdd is not so fast   Aleksey Barabanov   28 Nov 2001 01:17:10 
 Re: hdd is not so fast   Eugene Gavrilov   28 Nov 2001 20:33:06 
 Re: hdd is not so fast   Dmitry J. Ivanov   29 Nov 2001 15:07:26 
 Re: hdd is not so fast   Aleksey Barabanov   30 Nov 2001 09:23:52 
 Re: hdd is not so fast   Eugene Gavrilov   04 Dec 2001 19:07:21 
 Re: hdd is not so fast   Aleksey Barabanov   05 Dec 2001 01:22:20 
 Re: hdd is not so fast   Eugene Gavrilov   05 Dec 2001 03:27:31 
 Re: hdd is not so fast   Aleksey Barabanov   05 Dec 2001 13:49:36 
Архивное /ru.linux/9104cd89879d.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional