По гигабитному соединению Teracopy работает со скоростью 31 МБ / с, а в Windows 8 - со скоростью ~ 109 МБ в секунду?


13

Сегодня я почувствовал, как у меня тягостные мысли о гигабитных сетях, между моим настольным компьютером MacMini 2011 и Windows 8 Pro, подключенным через Cat.5e к Linksys WRT320N (спортивный dd-WRT).

Убедившись, что скорость линии в обеих системах составляла 1 Гбит / с, я приступил к копированию 2,4 ГБ MP4 с Mini на рабочий стол Win 8 (совместное использование SMB). Несмотря на удовлетворение 30-34 МБ / с, которое показала Teracopy (для меня это был правильный шаг по сравнению с 10 МБ / с), мне все же было любопытно узнать об этой огромной разнице в рекламируемой и реальной скорости.

Два часа работы в Google заставили меня поверить, что есть другие факторы, которые привели к снижению скорости, одним из которых является SMB. Так что просто ради этого я iPerf запустил обе системы и угадаю, что это показывает - около 875 Мбит / с в обеих системах!

Затем я наткнулся на эту небольшую информацию, после чего я отключил Teracopy и скопировал тот же файл через обычный копировальный аппарат Windows 8. 109 МБ / с. Расплавленный мозг :)

Что именно вызывает это? И можно ли включить такие скорости через Teracopy? Я действительно копаю дополнительные функции, которые есть у Teracopy, теперь я точно буду по ним скучать: D


2
Первое, что приходит в голову: как вы копировали с помощью теракопии? В / из буквы диска? (который сериализует вещи и медленнее) или к UNC-пути?
Hennes

Я только что поделился папками (щелкните правой кнопкой мыши> общий доступ> Поделиться этой папкой или эквивалентный) на обоих компьютерах. Я получаю доступ к сетевому компьютеру, просто открывая «Сеть» на левой панели в Explorer и в OS X, выбирая имя сетевого компьютера на левой панели в Finder. Проще говоря, я получаю доступ к файлам Mac из Проводника в Win 8, копирую их с помощью базовой команды Ctrl + C и вставляю их локально на рабочий стол ПК.
Гауранг

Какие диски вы используете? Два SSD? Эти цифры Windows 8 выглядят странно для меня.
Apache

Ответы:


16

По гигабитному соединению Teracopy работает со скоростью 31 МБ / с, а в Windows 8 - со скоростью ~ 109 МБ в секунду?

Что именно вызывает это? И можно ли включить такие скорости через Teracopy? Я действительно копаю дополнительные функции, которые есть у Teracopy, теперь я точно буду по ним скучать: D

Два слова: проверка и кеш

Техническое объяснение

Это общая процедура для копирования файла с помощью проводника Windows:

  1. Считать порцию данных с исходного диска в память
  2. Отправить чанк через систему (ы)
  3. Запишите чанк на целевой диск
  4. Если это еще не сделано, вернитесь к шагу 1

Это кажется простым и достаточно коротким. С помощью этого алгоритма передачи каждый байт файла обрабатывается только два раза: одно чтение, одна запись.

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

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

Поскольку память очень быстрая, а скорость чтения, как правило, немного выше скорости записи, конечная скорость передачи в конечном итоге ограничивается только скоростью записи целевого диска.

Teracopy может делать две вещи, которые могут замедлить передачу файлов, что не делает Explorer:

  • Откажитесь от кеша и читайте прямо с диска

  • Убедитесь, что пункт назначения был написан правильно

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

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

Посмотрите, что происходит, когда вы копируете файл с помощью Teracopy (с алгоритмом, оптимизированным для жесткого диска):

  1. Прочитать чанк с исходного диска
  2. Хэш чанка прочитанного с исходного диска
  3. Отправить чанк через систему (ы)
  4. Запишите это на целевой диск
  5. Очистить кеши
  6. Прочитать чанк обратно с целевого диска
  7. Хэшируйте чанк с целевого диска
  8. Сравните хэши
  9. Определите следующий шаг
    • Если хэши не совпадают, выведите ошибку и предложите пользователю выполнить действие
    • Если хэши совпадают и не завершены, вернитесь к шагу 1

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

Согласно скриншоту ниже, TeraCopy выполняет проверку после передачи файлов, а не во время. Это означает, что вместо этого он использует оптимизированный для CPU / RAM алгоритм передачи:

  1. Прочитать чанк с исходного диска
  2. Отправить чанк через систему (ы)
  3. Запишите это на целевой диск
  4. Если это еще не сделано, вернитесь к шагу 1
  5. Копирование завершено, поэтому очистите кэши и проверяйте
  6. Прочитать чанк с исходного диска
  7. Хэшируйте чанк с целевого диска
  8. Прочитать кусок с целевого диска
  9. Хэшируйте чанк с целевого диска
  10. Сравните хэши
  11. Определите следующий шаг
    • Если хэши не совпадают, выведите ошибку и предложите пользователю выполнить действие
    • Если хэши совпадают и не завершены, вернитесь к шагу 6

Хотя этот алгоритм создает немного меньшую нагрузку на процессор и оперативную память, он также значительно увеличивает нагрузку на накопитель (и), поскольку теперь каждый файл должен обрабатываться четыре раза: прочитать весь файл из источника, записать его в место назначения. , затем прочитайте его снова из источника и снова из пункта назначения.

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

По умолчанию TeraCopy не проверяет и не использует кэш. Не проверки ускорит передачу вверх (или , точнее, не замедлить его вниз), а не используя кэш бы замедлить его.

заявка

Чтобы определить конкретные результаты по скорости, вам необходимо проверить свои настройки, чтобы увидеть, изменили ли вы их. Затем вы можете попытаться приблизиться к тому, какую скорость вы получите с различными настройками (помните, что они, скорее всего, будут взаимодействовать, поэтому сложнее или сложнее сложить).

Тем не менее, давайте сделаем краткий расчет, используя ваши числа:

  • Локальная передача файлов: 875 Мбит / с (т. Е. Скорость диска)
  • Скорость сети: 1 Гбит / с = 119,21 Мбит / с
  • Копирование через проводник Windows: 109 МБ / с
  • Копирование через TeraCopy: 34 Мбит / с

Сразу же мы видим, что передача файлов в Explorer практически увеличивает пропускную способность вашей сети. 1Gbps ссылка равна 1000000000 бит в секунду, что в бинарных единиц в байтах , является 119MBps. Explorer работает на частоте 109 МБ / с, а оставшиеся 10 МБ / с (что было довольно забавно, было вашим предыдущим максимальным значением :^Þ ), можно легко учесть по накладным расходам, фоновой загрузке и фрагментации.

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

Теперь для TeraCopy. Кажется, что TeraCopy набирает почти одну треть скорости Explorer.

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

Ваша скорость передачи 34 Мбит / с кажется разумной, если у вас есть проверка и кеширование. Если вы выключите проверку и включите кэширование, вы получите примерно то же самое, что и Explorer (вы все равно можете получить немного меньше или даже чуть больше в зависимости от того, насколько отличается код передачи файлов, используемый TeraCopy, от кода, который использует Explorer).

Если вы хотите передать почти 10 ГБ, то вы также можете просто попробовать изменить настройки и повторить передачу для каждой из четырех перестановок и записать скорости, которые вы получаете (для безопасности, закажите, чтобы кэш был между пробегами:) V+C+, V+C-, V-C+, V-C-.


Снимок экрана: диалоговое окно настроек TeraCopy с настройками по умолчанию


1
По вашему мнению, рекомендуете ли вы использовать SSD для включения (проверки) «Использовать системный кэш записи», если ищете максимальную производительность?
Дядя Иро

1

Я подозреваю, что это связано с тем, что Windows 8 использует SMB v. 3, и я сомневаюсь, что teracopy совместим с SMB v.3 и по умолчанию возвращается к SMB 2. Просто предположение ...


0

Я не могу дать вам 100% ответ на ваш вопрос, но могу добавить еще, что может помочь.
Моя причина перехода на Teracopy была связана с тем, что Windows должна «вычислить» все перед тем, как что-либо делать, и сам этот расчет иногда может заморозить весь процесс. В других публикациях упоминалось, что тип копируемого файла имеет значение для копии Windows, я не могу сказать наверняка в Teracopy, поскольку я не видел, чтобы этот файл появлялся. Но мои собственные попытки до сих пор оставили мне меньше, чем вы получаете в любом случае. Я просто копирую общие типы файлов, а не файлы мультимедиа (т.е. фото / видео).

Мои тесты прошли путь от сетевого хранилища Seagate 3 ТБ с доступом к сетевому адаптеру GB в сети 100% ГБ до системы GB. Лучший вариант, 14 Гбит / с. Переход Windows с NAS на систему HD получил 12,4 Гбит / с, и для его запуска потребовалось немного больше времени. Ничто не приблизилось к вашим 30-34 Мбит / с, намного меньше, чем 109 Мбит / с.

Частично это связано с управлением потоком данных даже в сети GB. Я был бы чрезвычайно счастлив, если бы я мог получить 34 ГБ / с, еще счастливее, если бы я мог получить 109 ГБ / с. Если вы найдете более быстрый копировальный файл, пожалуйста, напишите! :)


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

Как вы получаете 14 Гбит / с по сети? Даже SATA III не поддерживает такие скорости.
Март Хо,

0

Это помогло мне решить эту проблему между сетевыми платами Intel для чипсетов.

TOE (TCP Offload Engine) был введен в Windows в 2003 году, и его ужасные результаты были получены от сетевых адаптеров Broadcom, используемых на большинстве серверов в то время, что приводило к повреждению данных, если вы «выгружали» контрольную сумму. Похоже, что поставщики сетевых карт все еще не правы, и это не просто Broadcom. Разгрузка сети почти всегда медленнее и, по-видимому, также более подвержена ошибкам, чем выполнение всего этого программно. Я бы зашел в настройки вашего адаптера и отключил бы любую аппаратную разгрузку любого рода.


2
Если бы это было причиной, весь сетевой трафик TCP был бы медленным. Не только сеть теракопий, но и быстрый исследовательский экземпляр.
Хенн

0

Ранее у меня была идентичная проблема с медленными переводами через TeraCopy. Celeron J1800 со встроенной сетевой картой Realtek Gigabit 8111C. Я получал не более 35-45 мегабайт в секунду. Довольно расстраивает!

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

Установил windows с нуля с OEM драйверами. Также я сделал следующее:

В разделе «Диспетчер устройств» / «Карта LAN» / «Дополнительные настройки» / «Отключить все, кроме управления потоком»

В разделе «Функции Windows» отключите удаленное разностное сжатие.

Сейчас средняя скорость составляет 60-70 Мбит / с

введите описание изображения здесь


-1

Я также сделал несколько тестов с Teracopy 2.3 final и моей Synology Diskstation. На самом деле процесс копирования слишком медленный. Я скопировал файлы со средней скоростью около 40 МБ / с.

Оригинальная программа для копирования файлов Windows 8 работает быстрее, чем Teracopy!

Сейчас я пробую Ultracopier, мои текущие скорости составляют около 80 МБ / с, что намного выше, чем у Teracopy. Мне нравится Teracopy, но я думаю, что у Teracopy есть проблема с сетевым копированием.

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


1
Я как раз собирался попробовать Ultracopier ... И я поискал в Google, и вики заявляют, что это вредоносная программа, замаскированная под замену файла Windows Explorer ... ВНИМАНИЕ! BEWARE! «Ultracopier - это вредоносная программа, маскирующаяся под инструмент для замены функций копирования файлов в Проводнике Windows / Проводнике». ru.wikipedia.org/wiki/Ultracopier

2
Ultracopier - это вредоносная программа - я не рекомендую ее использовать. ( en.wikipedia.org/wiki/Ultracopier )
Арт Гертнер,

4
Если вы действительно потратите время на прочтение статьи, связанной с этой вики-страницей, она будет раскрыта: «Чтобы ее финансировать, я поставил майнер биткойнов (использующий графический процессор на 100%) или версию без нее, но с небольшой рекламой в бесплатные версии. " Но это верная точка зрения о том, что программное обеспечение не содержит четких указаний на своем сайте загрузки.
Мокубай
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.