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


17

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

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

Связь

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

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

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

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


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

Вы закрывали все другие процессы, которые могли бы периодически использовать NAS?
— Арджан

Ответы:


6

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

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

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

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

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

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

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


Не приведет ли это к горизонтальной линии с внезапными скачками (примерно до нуля), когда буфер заполнен?
— Арджан

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

17

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

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

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


Извините за отсутствие деталей, я не был уверен, что людям нужно знать. Я использую smb, и этот график охватывает период около минуты
— Gricey

4
@Gricey: Не комментируйте это: исправьте вопрос !!
— Гонки Легкости с Моникой

-1 для ненужного придирки
— user541686

@LightnessRacesinOrbit исправлено
— Грейси

1
@Gricey Я прошу прощения за то, что так требователен к деталям. Я понимаю мнение, что если вы не знаете, какие подробности понадобятся людям, трудно документировать кучу вещей. Это сложный баланс между необходимостью документировать достаточно, чтобы люди, помогающие, не разочаровались, и ощущением, будто вы тратите время на документирование вещей, которые не будут иметь значения.
— Spiff

0

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

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

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

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

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

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


3
Это на самом деле не отвечает на вопрос.
— Гонки Легкости с Моникой
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.