Rendimiento NAS: NFS vs Samba vs GlusterFS

31

Estoy planeando mi nueva infraestructura de almacenamiento compartido para una pequeña granja de servidores web. Por lo tanto, realicé muchas pruebas con muchos sistemas de archivos NAS. Al hacerlo, obtuve algunos resultados inesperados y me gustaría saber si alguien aquí puede confirmar esto.

En resumen: Samba es mucho más rápido que NFS y GlusterFS para escrituras de archivos pequeños.

Aquí lo que hice: ejecuté un simple "rsync benchmark" con muchos archivos para comparar el rendimiento de escritura de archivos pequeños. Para una reproducción más fácil, lo volví a ejecutar ahora mismo con el contenido del actual wordpress tar.gz.

  • GlusterFS replicado 2: 32-35 segundos , alta carga de CPU
  • GlusterFS individual: 14-16 segundos , alta carga de CPU
  • Cliente GlusterFS + NFS: 16-19 segundos , alta carga de CPU
  • Servidor kernel NFS + cliente NFS (sincronización): 32-36 segundos , muy baja carga de CPU
  • Servidor kernel NFS + cliente NFS (asíncrono): 3-4 segundos , muy baja carga de CPU
  • Samba: 4-7 segundos , carga media de CPU
  • Disco directo: <1 segundo

No soy absolutamente un gurú de samba (creo que mi último contacto fue con samba 2.x), por lo que no optimicé nada aquí, solo una configuración lista para usar (paquete debian / squeeze). Lo único que agregué "sync always = yes", que se supone que impone la sincronización después de la escritura (pero viendo esos resultados ...). Sin él, las pruebas fueron aproximadamente 1-2 segundos más rápidas.

Todas las pruebas se ejecutaron en la misma máquina (autoensamblada, es exportación de NAS), por lo que no hay demoras en la red: puro rendimiento del protocolo.

Nodo lateral: como sistema de archivos utilicé ext4 y xfs. Los resultados anteriores son con ext4. xfs funcionó hasta un 40% (menos tiempo) mejor. Las máquinas son instancias EC2 m1.small. La exportación NAS está en volúmenes EBS, fuentes (tar extraído) en disco efímero.

Así que aquí vamos: ¿Alguien puede explicarme por qué la samba es mucho más rápida?

Además: ¿Se supone que el rendimiento de NFS con el servidor de kernel es tan horrible (superado por el servidor NFS de GlusterFS) en modo de sincronización? ¿Alguna idea de cómo ajustar esto?

Gracias l

Linus Ardberk
fuente
Olvidé: las medidas de NFS son las mejores de una pareja, donde jugué con rsize, wsize, noatime, noac, udp vs tcp, etc.
Linus Ardberk
3
+1 para investigación y puntos de referencia!
Bigbio2002
1
Hemos observado las mismas diferencias en el rendimiento de CIFS frente a NFS durante el desarrollo y las pruebas de SoftNAS. Puedo confirmar que NFS asíncrono es mucho más rápido que sincronizar NFS, y Samba supera a NFS para los puntos de referencia que hemos ejecutado utilizando el software de referencia ATTO.
3
Por cierto, ¿reiniciaste cada máquina entre pruebas para borrar el caché de lectura del disco?
Matt

Respuestas:

5

Usamos Samba ampliamente, y siempre he encontrado que suele ser más rápido que NFS en casi todos los casos (y solo digo casi porque no los he comparado lo suficiente).

Por lo que he visto después de un par de capturas de paquetes, el protocolo SMB puede ser hablador, pero la última versión de Samba implementa SMB2 que puede emitir múltiples comandos con un paquete y emitir múltiples comandos mientras espera un ACK del último comando para volver. Esto ha mejorado enormemente su velocidad, al menos en mi experiencia, y sé que me sorprendió la primera vez que también vi la diferencia de velocidad - Resolución de problemas de velocidades de red - La investigación antigua

Univ426
fuente