はじめに
google Cloud Platform (GCP) の サービス、Google Cloud Storage (GCS) の gsutil cp コマンド(ファイルコピーコマンド)ではオプションでマルチスレッド指定ができますが(rsync にもあるけど)、どのぐらいのパフォーマンスなのか調査する機会があったので、もったいないので共有します。メモレベルです。
条件
- ファイルサイズ:1GB / ファイル
- ファイル数:100 ファイル
- ファイルサイズ合計:100 GB
- バケット種類:リージョナルバケット
- コピーリージョン:USリージョン → 東京リージョン
- Google Compute Engine (GCE) 、Cloud Shell で gsutil cp コマンドを実行
- マルチスレッド処理は、gsutil -m cp コマンドを実行
- GCE インスタンス はマシンタイプ、リージョン・ゾーン以外はデフォルト設定
検証結果
マシンタイプ | リージョン | オプション | コピー時間 |
---|---|---|---|
n1-standard-1 | us-east1 | 無 | 0:43:35 |
Cloud Shell | - | -m | 0:08:49 |
Cloud Shell boost | - | -m | 0:08:36 |
n1-standard-1 | us-east1 | -m | 0:11:35 |
n1-standard-1 | asia-northeast1 | -m | 0:09:03 |
n1-standard-2 | us-east1 | -m | 0:07:11 |
n1-standard-2 | asia-northeast1 | -m | 0:06:06 |
n1-standard-4 | us-east1 | -m | 0:02:55 |
n1-standard-4 | asia-northeast1 | -m | 0:02:10 |
※オプション「-m」:マルチスレッドモード
時間に限りがあり、とりあえずここまでです。
結果の考察
- 当たり前だが、コア数を増やせば、処理が本当に速い。
- ていうか、Cloud Shell が期待してなかった分、めちゃくちゃ速く感じる。要件にもよるが、ほとんど Cloud Shell で十分と思う。
- Cloud Shell の Boost モードが誤差の範囲なのは、Boost がマルチスレッド処理にあまり関係ないのかもしれない。
- コピー先が東京リージョンだが、東京のVMインスタンスの方が若干速い。理由はよくわからない。
終わりに
もう少しパターンをやりたかったですが、機会があれば更新します。