Tengo dos servidores Dell R515 que ejecutan CentOS 6.5, con uno de los NIC de Broadcom en cada uno directamente conectado al otro. Utilizo el enlace directo para enviar copias de seguridad del servidor principal en el par al secundario todas las noches usando rsync a través de ssh. Al monitorear el tráfico, veo un rendimiento de ~ 2 MBps, que es mucho menos de lo que esperaría de un puerto gigabit. He configurado el MTU en 9000 en ambos lados, pero eso no parece cambiar nada.
¿Existe un conjunto recomendado de configuraciones y optimizaciones que me llevarían al máximo rendimiento disponible? Además, dado que estoy usando rsync sobre ssh (o potencialmente solo NFS) para copiar millones de archivos (~ 6Tb de archivos pequeños, un enorme almacén de correo de Zimbra), las optimizaciones que estoy buscando podrían necesitar ser más específicas para mi caso de uso particular .
Estoy usando ext4 en ambos lados, si eso importa
Gracias
EDITAR: He usado las siguientes rsync
opciones con resultados bastante similares:
rsync -rtvu --delete source_folder/ destination_folder/
rsync -avHK --delete --backup --backup-dir=$BACKUPDIR source_folder/ destination_folder/
Actualmente, estoy viendo el mismo nivel de mal rendimiento cuando lo uso cp
para una exportación NFS, a través del mismo enlace de cable directo.
EDIT2: después de finalizar la sincronización, pude ejecutar iperf
y encontré que el rendimiento era de alrededor de 990Mbits / seg, la lentitud se debió al conjunto de datos real en uso.
fuente
iperf
.Respuestas:
El recuento de archivos y la sobrecarga de cifrado SSH son probablemente las mayores barreras. No vas a ver la velocidad del cable en una transferencia como esta.
Las opciones para mejorar incluyen:
-e "ssh -c arcfour"
. Ej. )dd
, instantánea ZFS envío / recepción , etc.tar
netcat (nc
), mbuffer o alguna combinación.tuned-adm
configuración de CentOS .rsync
comando. ¿Tendría-W
sentido la opción de archivos completos aquí? ¿Está habilitada la compresión?fuente
iperf
para estar seguro.rsync
y no porcp
. ¡He visto quersync
toma mucho más tiempo actualizar un árbol de directorio remoto creado originalmente porcp
: 88GB actualizado con suma de verificación en 1h26m en lugar de 3h! Cómo crear el diseño inicial del disco es fundamental para obtener un buen rendimiento de actualización. El tiempo de CPU es el mismo; El tiempo real puede duplicarse. (La misma actualización sin checkumming se ejecuta en 13 minutos desde un SSD a un Seagate de 200 GB).Como probablemente sepa, copiar una gran cantidad de pequeños archivos (por ejemplo, buzones de correo con formato MailDir o similar) definitivamente no es la mejor opción para aprovechar las interfaces de alto ancho de banda. SSH probablemente tampoco sea el mejor protocolo de transporte para eso. Intentaría usar tar para crear un tarball en el host de origen antes de enviarlo a su host secundario.
Si necesita una copia de seguridad incremental, puede probar las
-g
opciones de tar. Si aún necesita maximizar throuput, intente usar netcat en lugar de ssh.fuente
dd
a través denc
entonces. pero en este momento, estoy atascado con dos copias de seguridad enormes y luego necesitoIntenta burlar los factores contribuyentes:
y probándolos de forma independiente.
He tenido algunas malas experiencias con los controladores Broadcom, por lo que mi primera sugerencia es probar el ancho de banda de red utilizable con:
dd if=/dev/zero bs=1m count=10k | rsh backup_host cat \> /dev/null
fuente