Почему скорость копирования моих сетевых файлов образует волну?

17

С обновлением до Windows 10 у меня теперь есть этот хороший график при копировании файлов.

Когда я копирую один большой файл, скорость всегда принимает эту достаточно последовательную форму волны. Что вызывает это?

Связь

My PC <- cable -> gigabit switch <- cable -> Netgear ReadyNAS

Файлы копируются через SMB, этот график показывает одну такую ​​копию примерно за минуту:

График скорости копирования из Windows 10

Здесь нет проблем, я просто хочу понять, как все работает.

Gricey
источник
1
Некоторые дополнительные сведения о конфигурации дисков ReadyNAS могут помочь. Используете ли вы RAID 5 на трех дисках? Какова скорость записи на каждом диске? Каков буфер на каждом диске и есть ли кэш, который использует ReadyNAS? Вы пробовали другие инструменты, такие как TeraCopy, чтобы увидеть, отличаются ли ваши скорости передачи? В противном случае может возникнуть проблема с записью в кеш диска, особенно если скорость записи не очень хорошая (например, Seagate Barracuda).
Вс
Вы закрывали все другие процессы, которые могли бы периодически использовать NAS?
Арджан

Ответы:

6

Краткий ответ: запись в кеш

TL; DR: Во-первых, при копировании одного большого файла значительно меньше накладных расходов, чем во многих меньших. Это означает, что ПК и NAS не "тратят" много времени на поиск файлов, обновление файловой таблицы и метаданных файловой системы. Это также означает гораздо более высокую пропускную способность, что может выявить некоторые узкие места пропускной способности в установке.

Пики и впадины на графике пропускной способности, по-видимому, происходят с довольно регулярными интервалами, и учитывая тот факт, что вы копируете один большой файл (максимальная пропускная способность, минимальные издержки), я бы сказал, что вы видите эффект буферизации / кэширования ,

Мне кажется, что вы, вероятно, отправляете данные в NAS с большей скоростью, чем она может записать их на диск. Благодаря записи в кэш / буферы, он все еще может получать его с более высокой скоростью (пики графика), но вы не можете продолжать получать данные, не записывая их на диск.

В конце концов буфер будет заполнен и должен быть записан на диск. Между тем, NAS не может получать данные так же быстро, как раньше, поскольку у него нет места для его хранения (буфер заполнен, а диски работают медленнее). Здесь вы получаете долины графа.

Кажется, Windows сглаживает график пропускной способности. С более точными графиками (скажем, из Performance Monitor) вы можете реально оценить размер буфера записи, анализируя интервалы и передаваемые байты.

Причина, по которой пики и впадины не встречаются с абсолютно равномерными интервалами, возможно, в том, что ПК, NAS или и то, и другое делают что-то еще, пока вы копируете файл.

abstrask
источник
Не приведет ли это к горизонтальной линии с внезапными скачками (примерно до нуля), когда буфер заполнен?
Арджан
График копирования файла выглядит сглаженным, вероятно, для визуальной привлекательности. PerfMon, скорее всего, даст гораздо более точный график. Кроме того, это будет зависеть от алгоритма, используемого для сброса на диск - например, прекратить прием данных до тех пор, пока все не будет записано на диск, и ограничить прием данных более медленной скоростью, что позволяет записывать на диск быстрее, чем поступают новые данные.
Абстраск
17

Трудно ответить авторитетно без большого количества дальнейшего исследования. Спасибо за обновление вашего Вопроса с указанием шкалы времени и протокола.

Это могли бы обычные TCP «гребешки». TCP работает так быстро, как может, пока не будет потеря пакетов. Затем он немного отступает и снова нарастает. Так что он продолжает «биться головой об потолок». Таким образом, максимизируется доступная пропускная способность без ухудшения перегрузки. Я обычно смотрю на гребешки TCP на графике TCPTrace, который немного отличается от этого графика. Я ожидал бы, что на графике такого типа он будет выглядеть более пилообразно, но на этом графике может произойти некоторое сглаживание. И теперь, когда я думаю об этом, гребешки TCP будут в гораздо меньших временных масштабах, чем этот график.

Также может случиться так, что ваш протокол удаленной файловой системы (SMB) считывает файл по частям за раз, и провалы - это когда одно чтение чанка закончилось, а следующий запрашивается.

Spiff
источник
Извините за отсутствие деталей, я не был уверен, что людям нужно знать. Я использую smb, и этот график охватывает период около минуты
Gricey
4
@Gricey: Не комментируйте это: исправьте вопрос !!
Гонки Легкости с Моникой
-1 для ненужного придирки
user541686
@LightnessRacesinOrbit исправлено
Грейси
1
@Gricey Я прошу прощения за то, что так требователен к деталям. Я понимаю мнение, что если вы не знаете, какие подробности понадобятся людям, трудно документировать кучу вещей. Это сложный баланс между необходимостью документировать достаточно, чтобы люди, помогающие, не разочаровались, и ощущением, будто вы тратите время на документирование вещей, которые не будут иметь значения.
Spiff
0

Я думаю, что Microsoft представила эту функцию в индикатор выполнения в Windows 8.

Слева направо показывает прогресс в процентах, а движение вверх-вниз показывает скорость передачи в МБ / с .

Скорость передачи определяется скоростью передачи данных (шина или сеть), количеством и размером файлов, файловой системой, доступностью ресурсов и т. Д.

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

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

Для дальнейшего разъяснения здесь читайте дальше

каламбур
источник
3
Это на самом деле не отвечает на вопрос.
Гонки Легкости с Моникой