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