Disminución de la velocidad de escritura de NFS en caso de un procedimiento COMMIT defectuoso

Disminución de la velocidad de escritura de NFS en caso de un procedimiento COMMIT defectuoso

En primer lugar, perdón por publicar una pregunta de estudio obvia. Sé que este es un mal hábito, pero espero seguir recibiendo ayuda aquí, porque investigué mucho y no pude encontrar ninguna respuesta.

Elguiónes así: un cliente NFS escribe un solo archivo con 50 GB en el servidor NFS. Después de escribir 4 GB con una velocidad media de 125 MByte/s, cae a 12 MByte/s.

Pregunta: ¿Cómo puedes explicar eso?

EldadorespuestaLa pregunta es la siguiente: después de 4 GB de escritura, el servidor no responde al COMMIT y el cliente envía periódicamente COMMIT hasta que el servidor responde, porque el cliente quiere vaciar su caché. En ese periodo de tiempo la Tasa de Datos cae al nivel del elemento más lento.

Todo lo que puedo encontrar sobre el proceso COMMIT es una explicación como esta:

El cliente escribe datos y cuando los datos se transfieren al Servidor, el Cliente envía el COMMIT. El servidor escribe los datos en el almacenamiento estable y responde al COMMIT con la verf-Cookie. Si la cookie NO es diferente de la cookie del cliente, el cliente puede vaciar su caché.

Así que aquí estámi pregunta: ¿Es cierto que si el servidor no responde al procedimiento COMMIT enviando la cookie verf, el cliente envía periódicamente COMMIT y la velocidad de datos cae significativamente? En caso afirmativo, ¿hasta qué nivel cae la tarifa de datos? No puedo concluir de la respuesta hasta qué nivel cae la velocidad de datos.

Respuesta1

Creo que está pasando lo siguiente:

Los datos enviados por el cliente se escriben en la caché de FS en el lado del servidor. Una vez que se envía la solicitud COMMIT, estos datos comienzan a vaciarse en el almacenamiento persistente (DISCO). Dependiendo del rendimiento del disco del servidor, esto puede llevar algún tiempo. Digamos que el rendimiento del disco es de 300 MB/s. Para vaciar 4 GB se necesitarán 13 segundos. Si este tiempo es mayor que el tiempo de espera de NFS, entonces el cliente podría enviar otra solicitud COMMIT, suponiendo que la primera se perdió. El verificador COMMIT/WRITE se utiliza para garantizar que el servidor no se reinicie entre estas operaciones.

En tal escenario, puedes hacer:

  • aumentar el tiempo de espera de NFS en el cliente especificandotiempo =opción de montaje. Aunque esto sóloarreglarreintenté COMMITs.
  • Indique al servidor que comience a vaciar los datos con suficiente antelación y evite retrasos en los registros.

usar

sysctl -w vm.dirty_background_ratio=0
sysctl -w vm.dirty_ratio=0
sysctl -w vm.dirty_background_bytes=67108864
sysctl -w vm.dirty_bytes=536870912

Los tamaños deben ajustarse de acuerdo con el rendimiento de E/S del servidor y la red en todo momento.

Para controlar cuándo el kernel comienza a vaciar datos al disco en el servidor y los envía al servidor en el lado del cliente.

NOTA: estas opciones son globales y afectarán a todos los sistemas de archivos.

información relacionada