Acceso lento a carpetas compartidas y unidades de red en Windows
Nuestros usuarios se quejan de un rendimiento de red muy lento al abrir o guardar archivos en una carpeta compartida de red en Windows. Cuando un usuario abre una carpeta compartida mediante una ruta UNC o mediante una letra de unidad (si la carpeta compartida está asignada como una unidad de red), su contenido se muestra solo en 10 a 60 segundos. Al crear nuevos archivos en una carpeta de red, tampoco se muestran inmediatamente, sino con un retraso prolongado después de 3 o 4 minutos (incluso si actualiza el contenido de la carpeta con el
F5llave). Sin embargo, si especifica manualmente el nombre completo del archivo a través de una ruta UNC (
\\lon-file-srv1\public\new_file.docx), se abrirá, aunque no será visible en el Explorador de archivos.
Windows usa un componente especial de redireccionador de red cuando accede a archivos compartidos y otros recursos de red en computadoras remotas. A partir de SMB v2.x (consulte la tabla con las versiones del protocolo Server Message Block), Network Redirector utiliza un mecanismo de almacenamiento en caché cuando accede a carpetas y archivos compartidos a través de la red. Esto reduce el tráfico y la cantidad de solicitudes SMB entre el cliente y el servidor (especialmente efectivo en redes lentas y poco confiables). De forma predeterminada, este caché se borra cada 10 segundos.
Si experimenta un acceso lento a un recurso compartido de red en un dispositivo cliente de Windows, puede intentar deshabilitar el almacenamiento en caché de metadatos SMB en el lado del cliente o en la configuración de la carpeta compartida.
Puede deshabilitar el almacenamiento en caché de SMB en la configuración de la carpeta compartida. Abra las propiedades de la carpeta compartida y vaya a la pestaña Compartir -> Uso compartido avanzado -> Almacenamiento en caché. Seleccione la segunda opción "Ningún archivo o programa de la carpeta compartida está disponible sin conexión".
O use el comando PowerShell del módulo SMBShare integrado:
Set-SMBShare -Name MySharedDocs -CachingMode NoneEsto deshabilitará tanto el almacenamiento en caché como el acceso sin conexión a esta carpeta compartida (consulte el artículo sobre el uso de archivos sin conexión en Windows).
Hay tres parámetros de registro que administran la configuración de caché de carpetas compartidas de red en el lado del cliente SMB. Microsoft afirma que los valores predeterminados para estas opciones de registro brindan el mejor rendimiento para la mayoría de los entornos. La configuración de caché de SMB se encuentra en la clave de registro HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters.
DirectoryCacheLifetime es la duración de la memoria caché de metadatos de la carpeta compartida (10 segundos de forma predeterminada);
FileNotFoundCacheLifetime: caché de respuesta "Archivo no encontrado" (5 segundos);
FileInfoCacheLifetime: el tiempo de mantenimiento del caché con la información del archivo (10 segundos).
Puede encontrar información sobre estas configuraciones de registro en el artículo sobre cómo optimizar la configuración del servidor de archivos de Windows: https://docs.microsoft.com/en-us/windows-server/administration/performance-tuning/role/file-server/
De forma predeterminada, la vida útil de la memoria caché para una carpeta compartida SMB es de solo 10 segundos. Cuando un cliente actualiza el contenido de una carpeta compartida, el cliente almacena el resultado de la última actualización durante 10 segundos. Al acceder a este recurso compartido de red, todas las aplicaciones primero intentan usar este caché.
En algunos casos, el mecanismo para almacenar datos en caché en carpetas SMB no funciona correctamente (la mayoría de las veces esto sucede con carpetas/unidades de red que contienen miles de archivos y carpetas). En este caso, los usuarios pueden experimentar retrasos significativos al abrir, ver y crear archivos en carpetas compartidas.
Puede deshabilitar el almacenamiento en caché para las carpetas SMB. Para ello, cree un nuevo parámetro DWORD en la clave de registro HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters con el nombre DirectoryCacheLifetime y un valor de 0. También establezca los valores de los parámetros FileInfoCacheLifetime y FileNotFoundCacheLifetime en 0. Puede crear estos parámetros de registro usando
regedit.exeo con el cmdlet de PowerShell New-ItemProperty:
$regpath= "HKLM:\System\CurrentControlSet\Services\LanmanWorkstation\Parameters"
$Name1 = "DirectoryCacheLifetime"
$Name2 = "FileInfoCacheLifetime"
$Name3 = "FileNotFoundCacheLifetime"
New-ItemProperty -Path $regpath -Name DirectoryCacheLifetime -Value 0 -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $regpath -Name FileInfoCacheLifetime -Value 0 -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $regpath -Name FileNotFoundCacheLifetime -Value 0 -PropertyType DWORD -Force | Out-NullDebe reiniciar su computadora para que la configuración surta efecto. Si es necesario aplicar estos parámetros a varias computadoras de dominio, puede usar el GPO para implementar la configuración del registro.
Deshabilitar el almacenamiento en caché de carpetas de red aumenta el tráfico de red y reduce el rendimiento del servidor de archivos.
También puede usar el cmdlet Set-SmbClientConfiguration para ajustar el cliente SMB:
Set-SmbClientConfiguration -DirectoryCacheLifetime 0
Set-SmbClientConfiguration -FileInfoCacheLifetime 0
Set-SmbClientConfiguration -FileNotFoundCacheLifetime 0Puede enumerar la configuración de almacenamiento en caché actual para el cliente SMB de Windows con PowerShell:
Get-SmbClientConfiguration| select *cache*DirectoryCacheEntriesMax : 16
DirectoryCacheEntrySizeMax : 65536
DirectoryCacheLifetime : 0
FileInfoCacheEntriesMax : 64
FileInfoCacheLifetime : 0
FileNotFoundCacheEntriesMax : 128
FileNotFoundCacheLifetime : 0
Después de eso, todos los cambios en el recurso compartido se mostrarán inmediatamente en el cliente (el contenido de la carpeta se actualiza cada vez que se accede a ella y no se utiliza la memoria caché local).
Hay varias otras razones por las que el rendimiento deficiente de la red de las carpetas compartidas, o cuando el contenido de las carpetas puede aparecer lentamente:
Habilitar la opción "Enumeración basada en el acceso (ABE)" en la configuración de la carpeta compartida puede provocar una actualización lenta de la lista de archivos en una carpeta compartida con una gran cantidad de objetos;
Puede experimentar una velocidad de red lenta en máquinas virtuales Hyper-V que se ejecutan en Windows Server 2019 (en comparación con Windows Server 2016/2012R2);
Intente deshabilitar el protocolo NetBIOS heredado en las propiedades de su conexión TCP/IPv4 en los dispositivos unidos al dominio (
ncpa.cpl-> abra la configuración TCP/IPv4 del adaptador de red y seleccione Deshabilitar NetBIOS sobre TCPIP en la pestaña WINS);
Intente restablecer la red y la configuración de la pila TCP/IP en el dispositivo cliente de Windows. En Windows 10+, puede usar la opción Restablecer red en el panel Configuración o usar el comando:
netsh int ip reset



