destino rsync ionice

14

Para evitar que rsync muera de hambre el sistema y la red que usamos ionicecuando iniciamos rsync y establecemos el --bwlimitparámetro. Por ejemplo:

ionice -c2 -n7 rsync -aH --bwlimit=30000 /foo [email protected]:/

De hecho, esto ayuda a garantizar que el servidor de origen siga respondiendo. Sin embargo, el servidor de destino se vuelve muy lento debido al disco io al 100% (como lo ve la atoputilidad).

¿Es posible usar de alguna manera ioniceen el servidor de destino también? ¿Quizás a través de la -eopción rsync ? Prefiero no ejecutar el demonio rsync si es posible.

Jason Smith
fuente

Respuestas:

11

Cambiar el comando rsync o envolverlo en un script de shell para incluir el comando / parámetros ionice es una opción. Además, puede aprovechar la --rsync-pathopción, que le dice a rsync qué comando ejecutar en el servidor remoto. Algo así --rsync-path="ionice -c2 -n7 rsync"asegurará que el ionice se ejecute en el destino.

Agregaré que ionice no siempre es efectivo, dependiendo de la configuración del servidor. Solo funciona con el elevador de E / S CFQ predeterminado . Si ha realizado algún ajuste en el sistema de almacenamiento, este enfoque puede no ser aplicable.

¿Puede dar un ejemplo de la carga o ayudar a explicar cómo comenzaron los sistemas para obtener recursos durante la copia? Tendería a profundizar más y ver por qué un rsync, especialmente limitado a la baja tasa que mencionó en su ejemplo, podría causar tantos problemas.

¿Qué estás copiando? ¿Qué es la configuración de hardware / SO?

ewwhite
fuente
Tenemos varios hosts OpenVZ. Estas son máquinas Xeon de 16 núcleos con CentOS. Cada noche copiamos todos los contenedores OpenVZ a otros hosts. Dado que nuestras direcciones IP son enrutables a todos los hosts, esto nos permite activar rápidamente un VPS de respaldo en caso de que falle un host.
Jason Smith
¿Qué tan alto llega la carga? ¿Son estas copias locales a locales? ¿Se han realizado cambios en los elevadores de E / S de almacenamiento?
ewwhite
Por lo que he visto, limitar el ancho de banda de la red no limita el disco io (se deben escanear miles de directorios, incluso si no ha cambiado ningún archivo). ¿Debería --bwlimit también limitar la E / S de disco?
Jason Smith
Según atopel disco, io está constantemente explotando al 100%. No estoy seguro de lo que quiere decir con "elevadores de E / S de almacenamiento", ¿así que probablemente ejecuto los valores predeterminados?
Jason Smith
2

Su comando rsync también inicia el rsynccomando en el destino remoto.

Intente poner lo siguiente en el usuario raíz del servidor de destino .bashrc, en otras palabras /root/.bashrc

alias rsync="ionice -c2 -n7 rsync"
Janne Pikkarainen
fuente
A ~/.bashrcsolo se obtiene para sesiones interactivas y no espero que establecer un alias allí modifique cómo se ejecuta rsync.
HBruijn