kozachekx
@kozachekx
Печатаю мавро в любом количестве

Возможно ли программно повысить скорость HDD?

HDD при записи/чтении больших блоков данных делает это со скоростью около 100 МБ/с.
Если пишет мелкие блоки то скорость падает до 1МБ/с.
Всем конечно же очевидно почему такая разница.
Давайте вместе подумаем как в теории возможно повысить скорость.
Прошу ответить почему невозможны предложенные варианты, и достойно аргументировать.
Варианты которые приходят мне на ум (иногда смешные):
- Добавить на один блин еще несколько головок и грамотно организовать их работу. Может, сделать чтоб одна головка работала только на индекс FS.
- Снабдить винчестер оперативной памятью и элементом питания. Писать мелкие блоки в кэш и при уменьшении нагрузки переносить кэшированные данные на диск в автономном режиме, чтоб даже при пропадании питания данные записывались и диск отключался, но поддерживал состояние памяти. Держать индекс FS в оперативке. Собирать запросы от разных программ в единый буфер и высчитывать оптимальный путь головки.

Можно обсудить и SSHD если есть желание.

П.С. SSD не предлагать.
  • Вопрос задан
  • 782 просмотра
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Добавить на один блин еще несколько головок и грамотно организовать их работу

Дорого. Об ухудшении надёжности и без того расходных материалов даже не заикаюсь.

одна головка работала только на индекс FS.

Накопитель понятий не имеет о том, что пишет и что читает. Ему контроллер говорит записать такой-то блок данных на такой-то LBA.

Писать мелкие блоки в кэш и при уменьшении нагрузки переносить кэшированные данные на диск в автономном режиме

Рейд контроллер с батарейкой и кэшом write-back.
SSHD - именно здесь.
Счастье наступает, когда надо протолкнуть на диск данных больше, чем размер кеша.
SSD, кстати, тоже тут. У них поголовно распаян DRAM-кэш, нынче уже под гигабайт. И не у всех моделей есть защитный конденсатор, при пропадании питания могут потерять якобы уже записанные данные.

Держать индекс FS в оперативке. Собирать запросы от разных программ в единый буфер и высчитывать оптимальный путь головки.

Индекс и так в оперативке. Аггрегация запросов планировщиком ввода-вывода называется. Сделано уже очень давно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@asd111
Не парься. Единственное что придумали для быстрой работы HDD — использовать несколько HDD параллельно с помощью RAID.
Ещё для быстрой работы используют RAMDISK - когда вся инфа или её большая часть с жесткого хранится в RAM - дорогое решение.
В ближайшие годы выйдет 3D XPOINT, который заменит HDD и SSD.
geektimes.ru/post/259576
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
Программно нужно оптимизировать софт который у вас пишет, пусть пишет не мелкими файликами , а обьединяет их блобами метров по сто.
Ответ написан
Комментировать
kozachekx
@kozachekx Автор вопроса
Печатаю мавро в любом количестве
Короче, все что могли уже придумали, буду брать ссд).
А про кеш винта то да, както забыл я о нем что он уже есть но маленький, наверное они рассчитали и большой делать мало толку.
Посоветуйте кто знает программы для кеширования IO операций в RAM, такие есть но сложно прочитав описание сделать вывод какая оптимальная. То что читал то кеш хранится и по команде можно его записать на винчестер а чтоб писался автоматически когда не нагружен HDD я как то не нашел.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы