Como limitar a gsutil

Visão geral

Especialmente quando usada com a opção -m (várias linhas de execução), a gsutil pode consumir uma grande quantidade da largura de banda da rede. Em alguns casos, isso pode causar problemas. Por exemplo, se você iniciar uma grande operação de rsync em um link de rede que também é usado por vários outros jobs importantes.

Embora a gsutil não tenha suporte integrado para a limitação de solicitações, várias estratégias e ferramentas disponíveis no Linux e no macOS podem ser usadas para limitar as solicitações da gsutil. Se você costuma usar a opção -m, a primeira etapa para reduzir a largura de banda da rede é remover -m dos seus comandos.

Para limitar ainda mais as solicitações, use a ferramenta Trickle, que está disponível via apt-get em sistemas Ubuntu, e permite limitar a largura de banda que a gsutil consome. Por exemplo, o comando a seguir limita a 100 KBps a largura de banda de upload e de download consumida pela gsutil rsync:

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

Outra ferramenta é o ionice (integrado a muitos sistemas Linux), que permite limitar a capacidade de E/S consumida pela gsutil (por exemplo, para não monopolizar o disco local). Por exemplo, o comando a seguir reduz a prioridade de E/S da gsutil para que não monopolize o disco local:

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

Outra maneira de ajustar o consumo da largura de banda é modificar os valores de parallel_process_count e parallel_thread_count. Esses parâmetros são definidos no arquivo de configuração .boto, mas também podem ser controlados em cada comando usando a opção de nível superior -o.