https 経由で大量のデータを OpenStack Object Storage にアップロードする golang ユーティリティがあります。私は Ubuntu Linux で実行していますが、最大アップロード帯域幅が 2,500KB/s を超えないようにしたいと考えています。できれば同じシステムの他のユーザーに影響を与えないようにしたいと考えています (つまり、イーサネット インターフェイスの速度が低下します)。
できればソースコードを変更せずに、どうすればこれを行うことができますか? これまでにいくつかのアプローチを試しました:
- トラフィック シェーピング:単一のプロセスに影響を与える適切なネットワーク シェーピング手法を見つけることができませんでしたが、 と で可能であることはわかってい
iptables
ますtc
。これを行う方法についてのガイダンスをいただければ幸いです。私のネットワーキングのバックグラウンドはそれほど広範囲ではありません。 - Flowrate Limiting:
flowrate
go でパッケージを使用して、アップロードへの書き込みをレート制限しようとしました。これには目に見える効果はありませんでした。github.com/ncw/swift.ObjectCreateFile.Write()
メソッドは受信したデータをアップロードするのではなく、閉じたときにデータをアップロードするため、これは機能しないと思います。私はこれについて間違っている可能性があります。 - トリクル:コマンドを試しました
trickle
が、golang 実行可能ファイルと互換性がありません (この質問を参照してください)