Para empezar, esta pregunta no es realmente un problema que tenga sino más bien una"Por qué es como este". Estoy tratando de regresar a Linux después de varios años en el mundo de Windows, pero he perdido mucho... Así que aquí hay que aprender de nuevo. :)
Tengo una máquina con Windows 10 x64 que actúa como servidor de archivos en mi red. Accedo a los recursos compartidos desde Ubuntu Mate 16.04. El navegador de archivos principal es Caja.
Aquí está la parte buena: Cuando navego por los recursos compartidos de mi red y empiezo a copiar un archivo, la velocidad máxima es de alrededor de 600 Mbit. Pero cuando monto el recurso compartido permanentemente en Fstab con CIFS (segúnhttps://help.ubuntu.com/community/MountWindowsSharesPermanfully) Puedo utilizar mi velocidad de enlace completa (1 Gbit). También puedo utilizar la velocidad completa del enlace cuando uso smbclient a través de Terminal.
¿Alguien puede explicarme por qué este es el caso de Caja (y Nautilus, por lo que sé) y tal vez darme algunos enlaces donde pueda leer más al respecto? ¿No son CIFS y SMB básicamente lo mismo?
¡Gracias!
Actualizar:Estoy usando una NIC Intel I217-V (rev 04).
Respuesta1
SMB es un bloque de mensajes de servidor inventado por IBM para escribir archivos a través de una red LAN. CIFS es un sistema de archivos común de Internet. CIFS es una implementación particular de SMB realizada por Microsoft.
1.) La implementación CIFS de SMB rara vez se utiliza hoy en día. La mayoría de los sistemas de almacenamiento modernos ya no usan CIFS, usan SMB 2 o SMB 3. En el mundo Windows, SMB 2 ha sido el estándar a partir de Windows Vista (2006) y SMB 3 es parte de Windows 8 y Windows Server 2012.
2.) SMB 2 y SMB 3 son actualizaciones masivas con respecto a la implementación de CIFS.
Ahora algo a tener en cuenta (tamaño de la ventana TCP * 8 bits / RTT en milisegundos) = rendimiento máximo de TCP en bps. Si bien es posible que tenga una red Gigabit, es probable que un solo flujo TCP no pueda alcanzar ese nivel.
Ahora para optimizar la configuración de SMB:
[global]
VER:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=798532
strict allocate = Yes
VER:https://lists.samba.org/archive/samba-technical/2014-July/101304.html
allocation roundup size = 4096
Permitir lectura de 65535 bytes en un paquete
leer sin formato = Sí
La firma del servidor ralentiza las cosas.
server signing = No
Admite escritura RAW.
write raw = Yes
"bloqueo estricto = automático" O "bloqueo estricto = no" es aceptable.
strict locking = No
opciones de socket = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072
El "tamaño mínimo del archivo de recepción" se pasará directamente al kernel, recvfile/splice LLAMADA DEL SISTEMA.
min receivefile size = 16384
Utilice una llamada al sistema sendfile() más eficiente
use sendfile = Yes
Samba debe construirse con soporte de archivos asíncronos Soporte de E/S
aio read size = 16384
aio write size = 16384
También en mi caso necesitaba cambiar el orden de las búsquedas de nombres en nsswitch.conf. Resulta que esta configuración contenía una línea como esta.
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
Simplemente agregar "victorias" a la línea de hosts solucionó el problema.
hosts: files wins mdns4_minimal [NOTFOUND=return] dns mdns4