1

Резюме

  • С традиционного (вращающегося диска) жесткого диска
  • прочитайте один большой файл, получите хорошую производительность
  • прочитайте еще один большой файл одновременно, получите общую пропускную способность, разделенную на 5-10. Довольно падение производительности!

Кроме того, головка диска, механически перемещающаяся назад и вперед несколько раз в секунду, может быть услышана и ощущена рукой. Также через несколько часов температура стала выше.

Если это случается редко или в течение короткого периода времени, это нормально. Если это часто или в течение длительного периода времени, не только производительность плоха, и она объявляет более короткую продолжительность жизни.

пример

  • Диск: диск Western Digital объемом 2 терабайта.
  • Пропускная способность при чтении одного большого файла может составлять 50-100 МБ / с.
  • Эффект наиболее экстремальный для больших файлов: видеофайлов (например, размером от 1 до 13 ГБ). Также происходит при чтении файлов необработанных фотографий (~ 25 МБ).
  • Как только другая программа одновременно читает другой файл, общая пропускная способность падает до 5-10 МБ / с.

Дополнительная информация

Это не вопрос фрагментации файла. Если бы файлы были фрагментированы, пропускная способность была бы медленной (намного медленнее, чем номинальные 50-100 МБ / с) даже при чтении только одного файла.

Вопрос

Можно ли что-то сделать, чтобы общая пропускная способность была достаточно высокой при чтении нескольких больших файлов одновременно?

2 ответа2

1

Быстрый ответ

  • (1) Выясните, что является правильным блочным устройством (например, с mount).
  • (2) Получить разрешение root.
  • (3) Настройте read_ahead_kb для устройства.

В моем случае выдаем эту команду:

echo 100000 > /sys/block/sdb/queue/read_ahead_kb

вернул производительность и механическое облегчение в считанные секунды.

Почему это значение?

Значение по умолчанию - 128. Я наблюдал некоторый эффект, увеличивая его сначала до других значений, например 4096, и был удовлетворен при 100000, но я думаю, (1) большая часть эффекта достигается с начальным увеличением, (2) большинство побочных эффектов (если таковые имеются в зависимости от ситуации) как давление памяти) пропорциональны значению, и (3) может быть некоторое значение, выше которого увеличение фактически ничего не меняет.

Но как насчет вашей ситуации?

подробности

Или вы могли бы также использовать источник, Люк:

0

Спойлер: Внизу поста будет ответ ДА

Короткий ответ:
NO.

Ответ среднего размера:
Нет потому что
Есть 2 процесса, которые хотят получить доступ к одному ресурсу (жесткому диску) одновременно. Каждый процесс будет читать разные данные, поэтому руководитель должен перейти к тому месту, где процессу нужны данные с диска. Этот переход занимает много времени и значительно снижает общую пропускную способность вашего жесткого диска!

Длинный ответ,
потому что вам, кажется, не хватает (базового) понимания принципа работы жесткого диска:
Нет потому что
Ваш жесткий диск вращается как книга.

Представьте, что у вас есть книга только с пустыми страницами. Это ваш жесткий диск, когда вы покупаете его. Нет данных, хранящихся на нем.
Затем вы вставляете его в свой компьютер (скажем, как второй диск, поэтому нам не нужно иметь дело с операционной системой здесь).
Когда вы пишете длинный текстовый документ (называемый «текст А») и сохраняете его на диске, это похоже на запись первых 10 страниц (страницы 1–10) в вашей книге. Затем вы копируете изображение jpg на диск, это как рисовать ваш дом на следующих 5 бесплатных страницах вашей книги (с. 11-15).
В содержании вашей книги теперь есть 2 записи:

  • текст А: с. 1-10
  • фото дома: с. 11-15

Все данные на вашем жестком диске могут быть стерты снова, поэтому вы все написали и нарисовали карандашом, а не шариковой ручкой.
Теперь вы пишете список покупок в вашей книге: с. 16-17.
Далее, вам больше не нравится или не нужен этот рисунок, и вы хотите стереть его, поэтому удалите его с помощью резины. Страницы 11-15 пустые.
Ваш TOC выглядит так:

  • текст А: с. 1-10
  • Список покупок: стр. 16-17

Теперь вы хотите нарисовать образ местного супермаркета, который больше вашего дома. Итак, вам нужно 12 страниц. Вы можете начать со страницы 11, что означает, что у вас не будет достаточно последовательных страниц, и вам нужно продолжить в 18, или вы можете начать в 18 и иметь достаточно места, чтобы нарисовать его за один раз.
Большинство или все операционные системы достаточно умны, чтобы выбрать кусок свободного пространства, который достаточно велик для всей информации, но если не достаточно свободного места, ему придется разделить файл на более мелкие части, которые вписываются в существующий свободный области. Это называется фрагментация.
Давайте представим, что вам тоже нужно это сделать. Ваш TOC выглядит так:

  • текст А: с. 1-10
  • рис супермаркета, фрагмент 1 из 2: с. 11-15
  • Список покупок: стр. 16-17
  • рис супермаркета, фрагмент 2 из 2: с. 18-24

Теперь мы начинаем читать книгу.
Вы хотите знать предметы в вашем списке покупок. TOC говорит вам перейти на страницу 16. Вы начинаете читать, пока не достигнете дна с.17. Готово.
Далее: вы хотите увидеть, как выглядит супермаркет, где вы хотите ходить по магазинам. В оглавлении указывается перейти к стр.11 (вы находитесь на стр.18 (= конец стр.17)) и должны просмотреть 7 страниц назад. На жестком диске головке чтения-записи необходимо выполнить прыжок. Затем вы начинаете читать, пока не дойдете до конца стр.15, затем переходите к стр.18 (голова снова прыгает) и продолжаете.

Просмотр в книге занимает меньше времени, чем чтение, но на жестком диске это почти наоборот. Голова не может просто перейти к следующей гусенице / цилиндру, но должна «найти» правильный цилиндр (ускорение, движение, замедление, время установления). Смотрите Википедию. Таким образом, из-за фрагментации ваше чтение занимает больше времени, чем если бы файл хранился последовательно.

И теперь мы читаем с 2 людьми:
Вы хотите увидеть изображение супермаркета, а я хочу прочитать ваш текст А.
Вы переходите на страницу 11 и начинаете читать.
Когда вы прочитаете стр.11, я перехожу к стр.1 и начинаю читать.
Когда я прочитал. стр.1, переходите к стр.12 и продолжайте чтение.
Когда ты прочитал. с.12, я перехожу к п.2 и продолжаю читать.
...
Вы можете себе представить, что чтение страниц занимает намного больше времени только потому, что просмотр страниц занимает так много времени.
То же самое с вашим жестким диском. Вы ничего не можете с этим поделать, но избегаете одновременного доступа, поскольку это всегда делает его медленнее.

Теперь, наконец, ответ ДА:
ДА: купить SSD.
Это электронный диск, и он работает как ОЗУ, поэтому у вас практически нет времени поиска, а общая пропускная способность всегда близка к максимально возможной пропускной способности (если в другом месте нет других узких мест).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .