Limitación de gsutil

Descripción general

gsutil puede consumir una cantidad significativa de ancho de banda de red en particular cuando se usa con la opción -m (varios subprocesos). En algunos casos, esto puede causar problemas, por ejemplo, si inicias una operación rsync grande a través de un vínculo de red que también se usa para algunos otros trabajos importantes.

gsutil no posee compatibilidad integrada para limitar solicitudes, pero existen varias herramientas disponibles en Linux y macOS que se pueden usar para limitarlas.

Una de las herramientas es trickle (disponible a través de apt-get en los sistemas Ubuntu), que te permitirá limitar cuánto ancho de banda consume gsutil. Por ejemplo, con el siguiente comando, se limitaría el ancho de banda de carga y descarga que consume gsutil rsync a 100 KBps:

trickle -d 100 -u 100 gsutil -o "GSUtil:parallel_process_count=1" \
  -o "GSUtil:parallel_thread_count=1" rsync -r ./dir gs://some bucket

Ten en cuenta que se recomienda no usar la marca -m con gsutil cuando se ejecute a través de trickle, ya que esto puede provocar que falten recursos y evitar que el comando finalice.

Otra herramienta es ionice (integrada en muchos sistemas Linux), que te permitirá limitar la capacidad de E/S que consume gsutil (p. ej., para evitar que monopolice el disco local). Por ejemplo, con el siguiente comando, se reduciría la prioridad de E/S de gsutil para que no monopolice el disco local:

ionice -c 2 -n 7 gsutil -m rsync -r ./dir gs://some bucket