Compartir a través de


Optimización del rendimiento de los servidores de archivos NFS

Servicios para el modelo NFS

En las secciones siguientes se proporciona información sobre el modelo de Servicios de Microsoft para el sistema de archivos de red (NFS) para la comunicación de cliente-servidor. Dado que NFS v2 y NFS v3 siguen siendo las versiones más implementadas del protocolo, todas las claves del Registro excepto MaxConcurrentConnectionsPerIp solo se aplican a NFS v2 y NFS v3.

No se requiere ningún ajuste del registro para el protocolo NFS v4.1.

Resumen del servicio para el modelo NFS

Servicios Microsoft para NFS proporciona una solución para compartir archivos a empresas que utilicen un entorno mixto de Windows y UNIX. Este modelo de comunicación consta de equipos cliente y un servidor. Aplicaciones en el cliente solicitan archivos que se encuentran en el servidor a través del redirector (Rdbss.sys) y el minirredirector NFS (Nfsrdr.sys). El minirredirector usa el protocolo NFS para enviar su solicitud a través de TCP/IP. El servidor recibe varias solicitudes de los clientes a través de TCP/IP y enruta las solicitudes al sistema de archivos local (Ntfs.sys), que accede a la pila de almacenamiento.

En la ilustración siguiente se muestra el modelo de comunicación para NFS.

modelo de comunicación nfs

Parámetros de optimización para servidores de archivos NFS

Los siguientes configuraciones del registro REG_DWORD pueden afectar el rendimiento de los servidores de archivos NFS.

  • Lecturas óptimas

    HKLM\System\CurrentControlSet\Services\NfsServer\Parameters\OptimalReads
    

    El valor predeterminado es 0. Este parámetro determina si los archivos se abren para FILE_RANDOM_ACCESS o para FILE_SEQUENTIAL_ONLY, en función de las características de E/S de la carga de trabajo. Establezca este valor en 1 para forzar que los archivos se abran para FILE_RANDOM_ACCESS. FILE_RANDOM_ACCESS impide que el sistema de archivos y el administrador de caché realicen la carga anticipada.

    Nota:

    Esta configuración debe evaluarse cuidadosamente porque puede tener un impacto potencial en el crecimiento de la caché de archivos del sistema.

  • RdWrHandleLifeTime

    HKLM\System\CurrentControlSet\Services\NfsServer\Parameters\RdWrHandleLifeTime
    

    El valor predeterminado es 5. Este parámetro controla la duración de una entrada de caché NFS en la caché de identificadores de archivos. El parámetro hace referencia a las entradas de caché que tienen un identificador de archivo NTFS abierto asociado. La duración real es aproximadamente igual a RdWrHandleLifeTime multiplicada por RdWrThreadSleepTime. El mínimo es 1 y el máximo es 60.

  • RdWrNfsHandleLifeTime

    HKLM\System\CurrentControlSet\Services\NfsServer\Parameters\RdWrNfsHandleLifeTime
    

    El valor predeterminado es 5. Este parámetro controla la duración de una entrada de caché NFS en la caché de identificadores de archivos. El parámetro hace referencia a las entradas de caché que no tienen un identificador de archivo NTFS abierto asociado. Los servicios para NFS usan estas entradas de caché para almacenar atributos de archivo para un archivo sin mantener un identificador abierto con el sistema de archivos. La duración real es aproximadamente igual a RdWrNfsHandleLifeTime multiplicada por RdWrThreadSleepTime. El mínimo es 1 y el máximo es 60.

  • RdWrNfsReadHandlesLifeTime

    HKLM\System\CurrentControlSet\Services\NfsServer\Parameters\RdWrNfsReadHandlesLifeTime
    

    El valor predeterminado es 5. Este parámetro controla la vida útil de una entrada de caché de lectura NFS en la caché de manipuladores de archivos. La duración real es aproximadamente igual a RdWrNfsReadHandlesLifeTime multiplicada por RdWrThreadSleepTime. El mínimo es 1 y el máximo es 60.

  • RdWrThreadSleepTime

    HKLM\System\CurrentControlSet\Services\NfsServer\Parameters\RdWrThreadSleepTime
    

    El valor predeterminado es 5. Este parámetro controla el intervalo de espera antes de ejecutar el subproceso de limpieza en la memoria caché del identificador de archivo. El valor está en tics y no es determinista. Un tic es equivalente a aproximadamente 100 nanosegundos. El mínimo es 1 y el máximo es 60.

  • FileHandleCacheSizeinMB

    HKLM\System\CurrentControlSet\Services\NfsServer\Parameters\FileHandleCacheSizeinMB
    

    El valor predeterminado es 4. Este parámetro especifica la memoria máxima que consumirán las entradas de caché del controlador de archivos. El mínimo es 1 y el máximo es 1*1024*1024*1024 (1073741824).

  • LockFileHandleCacheInMemory

    HKLM\System\CurrentControlSet\Services\NfsServer\Parameters\LockFileHandleCacheInMemory
    

    El valor predeterminado es 0. Este parámetro especifica si las páginas físicas asignadas para el tamaño de caché especificado por FileHandleCacheSizeInMB están bloqueados en la memoria. Establecer este valor en 1 habilita esta actividad. Las páginas están bloqueadas en memoria (no paginadas en disco), lo que aumenta el rendimiento al resolver manejadores de archivos, pero reduce la memoria disponible para las aplicaciones.

  • MaxIcbNfsReadHandlesCacheSize

    HKLM\System\CurrentControlSet\Services\NfsServer\Parameters\MaxIcbNfsReadHandlesCacheSize
    

    El valor predeterminado es 64. Este parámetro especifica el número máximo de identificadores por volumen para la caché de datos de lectura. Las entradas de caché de lectura solo se crean en sistemas que tienen más de 1 GB de memoria. El mínimo es 0 y el máximo es 0xFFFFFFFF.

  • HandleSigningEnabled

    HKLM\System\CurrentControlSet\Services\NfsServer\Parameters\HandleSigningEnabled
    

    El valor predeterminado es 1. Este parámetro controla si los identificadores proporcionados por el servidor de archivos NFS están firmados criptográficamente. Si se establece en 0, se deshabilita la firma del controlador.

  • RdWrNfsDeferredWritesFlushDelay

    HKLM\System\CurrentControlSet\Services\NfsServer\Parameters\RdWrNfsDeferredWritesFlushDelay
    

    El valor predeterminado es 60. Este parámetro es un tiempo de expiración temporal que controla la duración del almacenamiento en caché de datos de escritura INESTABLE de NFS V3. El mínimo es 1 y el máximo es 600. La duración real es aproximadamente igual a RdWrNfsDeferredWritesFlushDelay multiplicada por RdWrThreadSleepTime.

  • CacheAddFromCreateAndMkDir

    HKLM\System\CurrentControlSet\Services\NfsServer\Parameters\CacheAddFromCreateAndMkDir
    

    El valor predeterminado es 1 (habilitado). Este parámetro controla si los identificadores que se abren durante NFS V2, V3 CREATE y los controladores de procedimiento RPC se conservan en la caché de identificadores de archivos. Establezca este valor en 0 para deshabilitar la adición de entradas a la memoria caché en las rutas de acceso de código CREATE y MKDIR.

  • AdditionalDelayedWorkerThreads

    HKLM\SYSTEM\CurrentControlSet\Control\SessionManager\Executive\AdditionalDelayedWorkerThreads
    

    Aumenta el número de subprocesos de trabajo retrasados que se crean para la cola de trabajo especificada. Los subprocesos de trabajo retrasados procesan elementos de trabajo que no se consideran urgentes y que pueden paginar su pila de memoria mientras esperan elementos de trabajo. Un número insuficiente de subprocesos reduce la velocidad a la que se mantienen los elementos de trabajo; un valor demasiado alto consume innecesariamente los recursos del sistema.

  • NtfsDisable8dot3NameCreation

    HKLM\System\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameCreation
    

    El valor predeterminado en Windows Server 2012, Windows Server 2012 R2 y versiones posteriores de Windows Server es 2. En versiones anteriores a Windows Server 2012, el valor predeterminado es 0. Este parámetro determina si NTFS genera un nombre corto en la convención de nomenclatura 8dot3 (MSDOS) para los nombres de archivo largos y para los nombres de archivo que contienen caracteres del conjunto de caracteres extendidos. Si el valor de esta entrada es 0, los archivos pueden tener dos nombres: el nombre que el usuario especifica y el nombre corto que NTFS genera. Si el nombre especificado por el usuario sigue la convención de nomenclatura 8dot3, NTFS no genera un nombre corto. Un valor de 2 significa que este parámetro se puede configurar por volumen.

    Nota:

    El volumen del sistema tiene habilitado 8dot3 de manera predeterminada. Todos los demás volúmenes de Windows Server 2012 y Windows Server 2012 R2 tienen 8dot3 deshabilitado de forma predeterminada. Cambiar este valor no cambia el contenido de un archivo, pero evita la creación de atributos de nombre corto para el archivo, que también cambia la forma en que NTFS muestra y administra el archivo. Para la mayoría de los servidores de archivos, la configuración recomendada es 1 (deshabilitada).

  • NtfsDisableLastAccessUpdate

    HKLM\System\CurrentControlSet\Control\FileSystem\NtfsDisableLastAccessUpdate
    

    El valor predeterminado es 1. Este conmutador global del sistema reduce la carga de E/S de disco y las latencias deshabilitando la actualización de la marca de fecha y hora para el último acceso de archivo o directorio.

  • MaxConcurrentConnectionsPerIp

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rpcxdr\Parameters\MaxConcurrentConnectionsPerIp
    

    El valor predeterminado del parámetro MaxConcurrentConnectionsPerIp es 16. Puede aumentar este valor hasta un máximo de 8192 para aumentar el número de conexiones por dirección IP.