Sobre la conexión gigabit, Teracopy tiene 31 MB / s, pero Windows 8 lo hace a ~ 109 MB por segundo.


13

Obtuve mi primer gusto de redes Gigabit hoy en día, entre mi escritorio MacMini 2011 y Windows 8 Pro 2011 conectado a través de Cat.5e a Linksys WRT320N (deportivo dd-WRT).

Después de asegurarme de que la velocidad de línea en ambos sistemas mostrara 1Gbps, procedí a copiar un MP4 de 2.4GB del Mini al escritorio Win 8 (uso compartido SMB). Aunque satisfecho con los 30-34 MB / s que mostraba Teracopy (que fue un aumento adecuado para mí de 10 MB / s), todavía sentía curiosidad por esta enorme diferencia en la velocidad anunciada y en el mundo real.

2 horas de Google me hicieron creer que había otros factores que resultaron en una menor velocidad, siendo SMB uno. Así que, por el simple hecho de hacerlo, iPerfé los dos sistemas y adiviné lo que eso mostró: ¡alrededor de 875mbps en ambos sistemas!

Luego me topé con esta pequeña información después de lo cual apagué Teracopy y copié el mismo archivo a través de la copiadora habitual de Windows 8. 109 MB / s. Cerebros fundidos :)

¿Qué es exactamente lo que está causando esto? ¿Y puedo habilitar tales velocidades a través de Teracopy? Realmente excavo las características adicionales que tiene Teracopy, seguramente las extrañaré ahora: D


2
Lo primero que me viene a la mente es: ¿cómo se copió mediante una teracopia? ¿A / desde una letra de unidad? (que serializa las cosas y es más lento) o en una ruta UNC?
Hennes

Acabo de compartir las carpetas (clic derecho> compartir> Compartir esta carpeta, o equivalente) en ambas computadoras. Accedo a la computadora en red simplemente abriendo "Red" desde el panel izquierdo en Explorer, y en OS X, seleccionando el nombre de la computadora en red desde el panel izquierdo en Finder. En pocas palabras, accedo a los archivos de Mac desde Explorer en Win 8, los copio usando el comando básico Ctrl + C y los pego localmente en el escritorio de la PC.
Gaurang

¿Qué unidades usas? ¿Dos SSD? Esos números de Windows 8 me parecen extraños.
Apache

Respuestas:


16

Sobre la conexión gigabit, Teracopy tiene 31 MB / s, pero Windows 8 lo hace a ~ 109 MB por segundo.

¿Qué es exactamente lo que está causando esto? ¿Y puedo habilitar tales velocidades a través de Teracopy? Realmente excavo las características adicionales que tiene Teracopy, seguramente las extrañaré ahora: D

Dos palabras: verificación y caché

Explicación técnica

Este es el procedimiento general para copiar un archivo con el Explorador de Windows:

  1. Lea una porción de datos de la unidad fuente en la memoria
  2. Enviar el fragmento a través de los sistemas
  3. Escribe el fragmento en la unidad de destino
  4. Si aún no lo ha hecho, regrese al paso 1

Esto parece simple y lo suficientemente corto. Con este algoritmo de transferencia, cada byte del archivo se procesa solo dos veces: una lectura, una escritura.

Pero además, Windows usa memoria (al igual que la unidad) para almacenar en caché algunos datos. Entonces, en lugar de esperar a que el fragmento anterior termine de escribirse, y luego leer el siguiente fragmento, se puede leer un fragmento nuevo mientras el anterior todavía se está escribiendo. Obviamente, esto no puede durar para siempre, pero Windows puede usar toda la memoria libre restante como un búfer temporal para almacenar la mayoría, si no todo, el archivo que se está leyendo en la memoria.

Puede ver el almacenamiento en caché en acción copiando un archivo grande, o una carpeta que contiene muchos archivos, de una unidad a otra, y luego comparando inmediatamente los dos. La comparación será mucho más rápida en ese momento que si lo hace más adelante porque los archivos todavía están en la memoria, por lo que en realidad no los está leyendo desde las unidades.

Dado que la memoria es muy rápida y las velocidades de lectura tienden a ser un poco más rápidas que las velocidades de escritura, la velocidad de transferencia final termina siendo limitada solo por la velocidad de escritura de la unidad de destino.

Teracopy puede hacer dos cosas que pueden ralentizar una transferencia de archivos que Explorer no hace:

  • Renunciar a la memoria caché y leer directamente desde la unidad

  • Verifique que el destino se haya escrito correctamente

A diferencia de Explorer, que solo busca errores básicos durante la transferencia, Teracopy puede verificar que los datos se escribieron correctamente en la unidad de destino para evitar la corrupción de datos que podría ocurrir debido a problemas en los medios de transferencia (red / cable de la unidad / etc. ) o la unidad en sí (sector defectuoso, etc.) Hacer esto significa que tiene que leer el archivo del destino para compararlo con el original.

Dependiendo del algoritmo utilizado y el tamaño del archivo, la verificación se puede optimizar con solo (pero no menos) tres operaciones de unidad para cada archivo / fragmento de archivo en lugar de las dos del Explorador: lea el archivo desde la fuente, escriba el archivo al destino y lea el archivo desde el destino.

Mire lo que sucede cuando copia un archivo con Teracopy (con un algoritmo optimizado para HDD):

  1. Leer un fragmento de la unidad fuente
  2. Hash el fragmento leído desde la unidad fuente
  3. Enviar el fragmento a través de los sistemas
  4. Escríbelo en la unidad de destino
  5. Cachés claros
  6. Lee el fragmento de la unidad de destino
  7. Hash el trozo de la unidad de destino
  8. Comparar hashes
  9. Determinar el siguiente paso
    • Si los hash no coinciden, dar error y solicitar al usuario que tome medidas.
    • Si los hashes coincidieron y no terminaron, regrese al paso 1

El problema es que si almacena en caché los archivos durante la transferencia, la comparación se vuelve inútil porque no está leyendo los datos reales en la unidad de destino, está leyendo la copia almacenada en caché en la memoria desde la fuente. Por lo tanto, para verificar correctamente, debe borrar el caché. Esto se puede hacer después de cada lectura y escritura (que es una operación adicional que terminaría haciendo innumerables veces para archivos de cualquier tamaño significativo), o solo una vez después de que se haya transferido todo el archivo.

Según la captura de pantalla a continuación, TeraCopy realiza la verificación después de que se transfieren los archivos, no durante. Esto significa que utiliza este algoritmo de transferencia optimizado para CPU / RAM en su lugar:

  1. Leer un fragmento de la unidad fuente
  2. Enviar el fragmento a través de los sistemas
  3. Escríbelo en la unidad de destino
  4. Si aún no lo ha hecho, regrese al paso 1
  5. Copia terminada, así que borra los cachés y verifica
  6. Leer un fragmento de la unidad fuente
  7. Hash el trozo de la unidad de destino
  8. Leer un fragmento de la unidad de destino
  9. Hash el trozo de la unidad de destino
  10. Comparar hashes
  11. Determinar el siguiente paso
    • Si los hash no coinciden, dar error y solicitar al usuario que tome medidas.
    • Si los hashes coinciden y no están terminados, regrese al paso 6

Si bien este algoritmo ejerce una presión ligeramente menor sobre la CPU y la RAM, también ejerce mucha más presión sobre la (s) unidad (es) porque ahora cada archivo debe procesarse cuatro veces: lea el archivo completo desde el origen, escríbalo en el destino , luego léalo nuevamente desde el origen y nuevamente desde el destino.

(Si TeraCopy estuviera optimizado para transferencias de red, podría evitar enviar el archivo completo por segunda vez para verificación y enviar solo los hash que son mucho más pequeños, pero ese no parece ser el caso actualmente, y los controladores de red reciben el mismo tratamiento) como unidad local, por lo que en realidad vuelve a leer la fuente).

Por defecto, TeraCopy no verifica ni utiliza el caché. No verificar que aceleraría la transferencia hacia arriba (o más exactamente, no reducir la velocidad hacia abajo), mientras que no se utiliza la memoria caché que reducir la velocidad.

Solicitud

Para determinar sus resultados de velocidad específicos, deberá verificar su configuración para ver si los ha cambiado. Luego, puede intentar aproximar qué tipo de velocidades obtendría con las diferentes configuraciones (tenga en cuenta que probablemente interactuarán, por lo que no se trata simplemente de sumar o restar).

Dicho esto, hagamos un cálculo superficial usando sus números:

  • Transferencia local de archivos: 875 Mbps (es decir, velocidad de la unidad)
  • Velocidad de red: 1 Gbps = 119.21 MBps
  • Copiar a través del Explorador de Windows: 109 MBps
  • Copiar a través de TeraCopy: 34MBps

Inmediatamente, vemos que la transferencia de archivos de Explorer está casi maximizando el rendimiento de su red. Un enlace de 1 Gbps es igual a 1,000,000,000 de bits por segundo, que en unidades binarias de bytes es 119MBps. Explorer registra 109MBps, y los 10MBps restantes (que de manera divertida era su máximo anterior :^Þ) pueden explicarse fácilmente por sobrecarga, carga de fondo y fragmentación.

(Dado que la velocidad de transferencia es casi igual a la velocidad de la red, podemos suponer que la transferencia de archivos de Explorer es unidireccional y que solo se envía una sola copia de cada archivo). Explorer obtiene 110 MBps por dos accesos de archivo por archivo.

Ahora para TeraCopy. Parece que TeraCopy está obteniendo casi exactamente un tercio de la velocidad de Explorer.

Dependiendo de si su diálogo de preferencias indica o no con precisión el algoritmo que usa, TeraCopy podría enviar el archivo fuente completo dos veces para que pueda verificar la copia. De inmediato, esto reduce el rendimiento a la mitad. Si el caché está activado, entonces eso también reduce la velocidad porque tiene que esperar a que termine cada escritura antes de que pueda enviar un nuevo fragmento. Cuando se combina con la verificación, puede derribarlo aún más.

Su velocidad de transferencia de 34 MBps parece razonable si tiene la verificación activada y desactivada. Si desactiva la verificación y el almacenamiento en caché, debería obtener casi lo mismo que Explorer (aún puede obtener un poco menos o incluso un poco más dependiendo de cuán diferente sea el código de transferencia de archivos que usa TeraCopy del que usa Explorer).

Si está de humor para transferir casi 10 GB, entonces también podría intentar alterar la configuración y rehacer la transferencia para cada una de las cuatro permutaciones y anotar las velocidades que obtiene (para estar seguro, ordene de manera que el caché esté fuera entre carreras:) V+C+, V+C-, V-C+, V-C-.


Captura de pantalla del diálogo de preferencias de TeraCopy con la configuración predeterminada


1
En su opinión, ¿recomienda si usa un SSD para habilitar (marcar) el "Usar caché de escritura del sistema" si busca el máximo rendimiento?
Tío Iroh el

1

Sospecho que está relacionado con el hecho de que Windows 8 usa SMB v. 3 y dudo que la teracopia sea compatible con SMB v.3 y vuelva a SMB 2. De manera predeterminada ...


0

No puedo darle una respuesta del 100% a su problema, pero puedo agregar más que podrían ayudar.
Mi razón para cambiar a Teracopy se debió a la forma en que Windows tiene que "calcular" todo antes de hacer algo y este cálculo en sí mismo a veces puede congelar todo el proceso. En otras publicaciones, se mencionó que el tipo de archivo que se copiaba importaba en la copia de Windows, no puedo decirlo con seguridad en Teracopy, ya que no he visto que aparezca. Pero mis intentos hasta ahora me han dejado con menos de lo que obtienes en cualquier caso. Solo estoy copiando tipos de archivos genéricos, no archivos multimedia (es decir, fotos / películas).

Mis pruebas pasaron de un Seagate 3TB NAS con acceso NIC GB en una red 100% GB a un sistema GB. El mejor caso, 14 Gbps. Windows se movió del NAS al HD del sistema obtuvo 12.4GBps y tardó un poco más en iniciarse. Nada se acercó a sus 30-34Mbps, mucho menos que 109Mb / s.

Parte de esto seguramente se debe al control de flujo del NAS incluso en una red GB. Sería extremadamente feliz si pudiera obtener 34 GB / s, aún más feliz si pudiera obtener 109 GB / s. Si encuentra una copiadora de archivos más rápida, ¡publíquela! :)


1
Me gustaría agregar que la configuración para usar el caché de escritura del sistema cuando se usa parece hacer una diferencia significativa en la finalización en tiempo real. Mucho mas rápido.
user1376156

¿Cómo está obteniendo 14 Gbps en la red? Incluso SATA III no admite tales velocidades.
Marzo Ho

0

Esto me ayudó con este problema, entre las NIC del chipset de la placa base Intel.

El TOE (TCP Offload Engine) se introdujo en Windows en 2003, con resultados horribles de los NIC de Broadcom utilizados en la mayoría de los servidores en ese momento, lo que causó daños en los datos si "descargó" la suma de comprobación. Parece que los proveedores de NIC todavía no lo tienen bien, y no se trata solo de Broadcom. La descarga de la red es casi siempre más lenta y aparentemente también es más propensa a errores que hacerlo todo en software. Iría a la configuración de su adaptador y deshabilitaría toda descarga de hardware de cualquier tipo.


2
Si esta fuera la causa, todo el tráfico de red TCP sería lento. No solo la red de teracopias, sí, una copia de exploración rápida.
Hennes

0

Anteriormente tuve un problema idéntico con las transferencias lentas a través de TeraCopy. Celeron J1800 con tarjeta LAN incorporada Realtek Gigabit 8111C. No recibía más de 35-45 megabytes por segundo. Bastante frustrante!

Terminó siendo un mal conductor de la tarjeta LAN.

Windows instalado desde cero con controladores OEM. También hice lo siguiente:

En Administrador de dispositivos / Tarjeta LAN / Configuración avanzada / Desactivar todo excepto CONTROL DE FLUJO.

En Características de Windows, deshabilite la compresión diferencial remota.

Ahora la velocidad promedio está entre 60-70 Mbps

ingrese la descripción de la imagen aquí


-1

También hice varias pruebas con Teracopy 2.3 final y mi Synology Diskstation. De hecho, el proceso de copia es demasiado lento. He copiado archivos con una velocidad promedio de aproximadamente 40 MB / s.

¡El programa original de copia de archivos de Windows 8 es más rápido que Teracopy!

Ahora, actualmente estoy probando Ultracopier, mis velocidades actuales son de alrededor de 80 MB / s, mucho más rápido que la Teracopy. Me gusta Teracopy, pero creo que Teracopy tiene un problema de copia de red.

Como estoy copiando muchos archivos de una unidad de red a otra, debo usar el programa de copia más rápido que pueda obtener, porque el proceso de copia siempre es demasiado largo.


1
Estaba a punto de probar Ultracopier ... Y busqué en Google y wiki dice que es un malware disfrazado como un reemplazo para el archivo del explorador de Windows ... ¡PRECAUCIÓN! ¡TENER CUIDADO! "Ultracopier es un malware que se disfraza como una herramienta para reemplazar la funcionalidad de copia de archivos de Windows Explorer / File Explorer". en.wikipedia.org/wiki/Ultracopier

2
Ultracopier es un malware, no recomiendo usarlo. ( en.wikipedia.org/wiki/Ultracopier )
Art Gertner

44
Si realmente se toma el tiempo de leer el artículo vinculado por esa página wiki , se revela: "Para financiarlo, he puesto un minero de Bitcoin (que usa la GPU al 100%), o una versión sin él pero con un pequeño anuncio en las versiones gratuitas ". Pero es un punto válido acerca de que el software no lo indica claramente en su sitio de descarga.
Mokubai
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.