28 votos

Buen rsync en la máquina remota

Cuando se utiliza rsync+ssh para acceder a una máquina remota, ¿hay alguna manera de "agradar" al proceso rsync en la máquina remota (para bajar su prioridad)?

Editar la pregunta para aclararla:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
backups  16651 86.2  0.1   3576  1636 ?        Rs   11:06   0:06 rsync --ser...

(línea rsync recortada)

Se trata de una tarea cron de copia de seguridad que normalmente se ejecuta a las 4 de la mañana, pero cuando resulta que estoy despierto (y cometiendo, o usando Bugzilla alojado en esa misma máquina), mata el rendimiento del servidor, así que quería un "hack" rápido para tratar de arreglarlo un poco.

36voto

Hasturkun Puntos 436

Puede utilizar el --rsync-path opción, por ejemplo

rsync --rsync-path="nice rsync" foo remotebox:/tmp/

19 votos

Puede considerar el uso de ionice también, por ejemplo --rsync-path="ionice -c 3 nice rsync" Aunque los Linux modernos reducen automáticamente la prioridad IO de los procesos nice'd (ver la página man que he enlazado).

0 votos

Ya lo he intentado, pero mi sshd sigue funcionando en nice 0

0 votos

en sistemas similares a FreeBSD en los que no tiene ionice , estableciendo el --bwlimit es buena para un rsync más agradable.

3voto

mblsha Puntos 305

Podría desactivar la compresión a lo largo de la red, al no incluir el -z argumento, que podría ahorrar algo de tiempo de la CPU en ambos lados. O cambiar la forma en que rsync utiliza las sumas de comprobación, mira --checksum

0 votos

He aceptado la respuesta de Hasturkun (ya que respondía a mi pregunta), pero has sacado a relucir un buen punto: he hecho una prueba comparativa con compresión frente a sin compresión, y sólo ha añadido 2 minutos al trabajo. Es que me acostumbré tanto a usar -avz como flag que nunca pensé en dejar de usar -z.

0 votos

Mi costumbre es usar -aPh, rara vez uso -z

2voto

pyhimys Puntos 867

La solución rápida y sucia sería crear un pequeño wrapper script llamado 'rsync' que sombree el $PATH antes del binario real de rsync como:

#!/bin/sh
nice -10 /path/to/proper/rsync $*

O configurar el archivo authorized_keys para que realice el nicing de rsync. (Asumiendo que está usando claves ssh).

ejemplo:

command=”/home/user/bin/nice-rsync.sh" ssh-dss asdf....

Ahora en su /home/user/bin/nice-rsync.sh

#!/bin/sh
case $SSH_ORIGINAL_COMMAND in
  rsync\ --server*)
    nice -10 $SSH_ORIGINAL_COMMAND
    ;;
  *)
    $SSH_ORIGINAL_COMMAND
    ;;
esac

HTH

0voto

Rsync no debería usar mucha CPU. Dudo que puedas forzar una cierta amabilidad desde el otro extremo, pero lo que podrías hacer es limitar el ancho de banda que rsync está utilizando con un firewall, lo que en última instancia reduciría la cantidad de procesamiento que podría hacer en X cantidad de tiempo.

0 votos

Añadido algo de salida de 'ps aux' para mostrar lo que está haciendo en cuanto a la CPU. Voy a través de un enlace lento, por lo que tengo la opción --compress activada, pero también está causando una buena cantidad de acceso al disco, que esperaba reducir mediante el uso de nice (efecto secundario no deseado)

0 votos

Fijar un valor bonito suele afectar también a la bondad de la E/S, que es lo que suele querer alguien.

0 votos

rsync no requiere mucha CPU pero podría aparecer en top sin embargo, dependiendo de si el kernel actual considera la espera de E/S como ocupada. Además, si cualquier otro proceso necesita acceder al almacenamiento y rsync se permite que se ejecute a pleno ritmo, todos los demás procesos se ralentizarán como resultado.

-7voto

Nescio Puntos 12613

No lo creo, necesitas una solución personalizada para eso usa ftp

6 votos

Es una buena idea. ¿Quién necesita todas las características de rsync como ser capaz de ejecutar a través de ssh sin necesidad de un demonio que se ejecuta en la máquina remota (y el cifrado inherente de ssh), la compresión de la transferencia, la reanudación de las descargas, sólo la transferencia de las diferencias ... que es toda la hinchazón característica. ¡Voy a correr a casa ahora mismo y usar mi PS/2 System 60 para FTP algo de anime!

0 votos

Por favor, elimine esta respuesta ya que no responde a la pregunta y ofrece una alternativa significativamente peor que el ejemplo de la pregunta.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: