gsutil drosseln

Übersicht

gsutil kann insbesondere bei Verwendung der Option -m (Multi-Threading) eine erhebliche Menge an Netzwerkbandbreite verbrauchen. In einigen Fällen kann dies zu Problemen führen, z. B. wenn Sie einen großen rsync-Vorgang über eine Netzwerkverbindung starten, die auch von einer Reihe anderer wichtiger Jobs verwendet wird.

Obwohl gsutil die Drosselung von Anfragen nicht nativ unterstützt, stehen Ihnen unter Linux und macOS mehrere Vorgehensweisen und verschiedene Tools zur Verfügung, mit denen gsutil-Anfragen gedrosselt werden können. Wenn Sie normalerweise die Option -m verwenden, besteht der erste Schritt zum Reduzieren Ihrer Netzwerkbandbreite einfach darin, -m aus den Befehlen zu entfernen.

Wenn Sie Ihre Anfragen weiter drosseln möchten, bietet sich das trickle-Tool an, das auf Ubuntu-Systemen über „apt-get“ verfügbar ist. Mit diesem Tool können Sie die von gsutil genutzte Bandbreite begrenzen. Der folgende Befehl begrenzt beispielsweise die von „gsutil rsync“ genutzte Upload- und Downloadbandbreite auf 100 Kbit/s:

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

Ein weiteres Tool ist ionice, das in viele Linux-Systeme eingebunden ist. Sie können damit die von gsutil genutzte E/A-Kapazität begrenzen und beispielsweise vermeiden, dass gsutil Ihr lokales Laufwerk monopolisiert. Der folgende Befehl reduziert z. B. die E/A-Priorität von gsutil, sodass gsutil nicht Ihr gesamtes lokales Laufwerk beansprucht:

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

Eine weitere Möglichkeit zum Anpassen der Bandbreitennutzung besteht darin, die Werte für parallel_process_count und parallel_thread_count zu ändern. Diese Parameter werden in der .boto-Konfigurationsdatei festgelegt, können aber auch pro Befehl mithilfe der Top-Level-Option -o gesteuert werden.