バックエンドを S3 にした ownCloud をベンチマークしてみる
「ownCloud + オブジェクトストレージのベンチマーク」のベンチマークを取得してみました。
結論¶
今回、計測した条件下では「Sakura VPS のローカル」パターンが最も良い結果となりました。「このパターンが一番、速いだろう」という予想はあったのですが、思った以上に速度差の出る結果となりました。
前提条件¶
テストは以下の環境を利用しました。AWS と Sakura VPS でテストを実施しましたが、OS と ownCloud のバージョンは揃えてあります。ownCloud のバックエンドに利用している MySQL 等、ミドルウェアのバージョン等も出来るだけ、揃えたつもりです。
- テスト PC
- 自宅(日本国内)から接続
- AWS
- Ubuntu 16.04.1
- ownCloud 9.1.4
- ownCloud のバックエンドは MySQL を利用
- ローカルストレージは EBS 20GB、gp2 を利用。IOPS は 100/3000
- Instance Type は t2.micro 〜 t2.medium を利用 (後述)
- Instance は us-east-2 (Region Oregon) に配置
- Saraku VPS
- Ubuntu 16.04.1
- ownCloud 9.1.4
- ownCloud のバックエンドは MySQL を利用
- 2G プラン (vCPU x 2 、メモリ 2G) を利用
クライアント PC は出来るだけ他タスクを実行しないようにテストしましたが、以下は考慮していません。
- キャッシュ
- EBS の BurstBalance
- ネットワークの状態
- テストの時間帯
- テストにかなり時間がかかっている為、最初と最後のテストではかなり実施時間に差があります
テストの実施方法¶
テストは以下のように実施しました。
- dd で指定サイズの空ファイルを 10 個作成
- テスト用スクリプトで 10 ファイルをアップロード
テスト用スクリプト¶
テスト用スクリプトは以下の通りです。curl を使い、CLI から ownCloud にアップロードします。ループを書かずに 10 行、手書きしてしまいました(笑)。結果は time コマンドの real 値を取得しています。ownCloud は External Storage Support を有効にして S3 をマウントし、スクリプト内のアップロード先 URL も併せて調整します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
試験の結果の単位¶
以降全て、試験結果の数値は「秒」を表します。
AWS¶
以下の組み合わせでインスタンスタイプを大きくしながら「ローカルの EBS」と「S3」のパターンを試験しました。
No. | Instance Type | Storage |
---|---|---|
1 | t2.micro | Local (EBS) |
2 | t2.micro | S3 Oregon |
3 | t2.small | Local (EBS) |
4 | t2.small | S3 Oregon |
5 | t2.medium | Local (EBS) |
6 | t2.medium | S3 Oregon |
1MB のファイルアップロード時間¶
結果は以下の通りです。結果を平均すると、どの条件でもあまり差はありませんでした。
No. | (1) t2.micro/Local | (2) t2.micro/S3 Oregon | (3) t2.small/Local | (4) t2.small/S3 Oregon | (5) t2.medium/Local | (6) t2.medium/S3 Oregon |
---|---|---|---|---|---|---|
1 | 2.709 | 4.51 | 4.259 | 4.266 | 4.092 | 4.353 |
2 | 2.732 | 10.747 | 4.622 | 13.026 | 6.985 | 4.906 |
3 | 9.188 | 5.527 | 7.544 | 5.347 | 3.591 | 3.954 |
4 | 4.058 | 4.561 | 4.268 | 7.402 | 3.772 | 5.635 |
5 | 2.733 | 4.367 | 3.232 | 4.668 | 7.814 | 4.527 |
6 | 6.747 | 7.105 | 5.63 | 4.401 | 3.95 | 5.251 |
7 | 2.766 | 4.8 | 6.951 | 4.416 | 2.688 | 7.284 |
8 | 3.578 | 4.435 | 8.981 | 6.023 | 3.006 | 5.215 |
9 | 5.162 | 4.645 | 3.319 | 4.537 | 8.537 | 4.319 |
10 | 2.815 | 4.75 | 3.103 | 4.843 | 2.886 | 4.48 |
Avg. | 4.2488 | 5.5447 | 5.1909 | 5.8929 | 4.7321 | 4.9924 |
10MB のファイルアップロード時間¶
インフラ側は同じ条件で、次は「10MB のファイルアップロード時間」を計測してみました。
No. | (1) t2.micro/Local | (2) t2.micro/S3 Oregon | (3) t2.small/Local | (4) t2.small/S3 Oregon | (5) t2.medium/Local | (6) t2.medium/S3 Oregon |
---|---|---|---|---|---|---|
1 | 12.042 | 14.397 | 25.665 | 35.098 | 8.316 | 19.549 |
2 | 8.543 | 15.179 | 19.341 | 17.72 | 16.301 | 30.7 |
3 | 14.914 | 17.387 | 18.63 | 29.573 | 9.598 | 15.885 |
4 | 11.997 | 11.455 | 18.526 | 21.074 | 13.797 | 17.755 |
5 | 15.34 | 21.92 | 15.691 | 29.966 | 10.098 | 23.267 |
6 | 13.726 | 10.918 | 18.731 | 16.179 | 15.493 | 8.428 |
7 | 19.442 | 12.652 | 17.294 | 14.952 | 8.621 | 23.979 |
8 | 13.702 | 13.775 | 16.293 | 26.177 | 40.439 | 10.425 |
9 | 26.476 | 17.261 | 25.917 | 21.971 | 8.606 | 28.499 |
10 | 17.963 | 9.129 | 9.065 | 23.268 | 19.256 | 53.812 |
Avg. | 15.4145 | 14.4073 | 18.5153 | 23.5978 | 15.0525 | 23.2299 |
AWS vs Sakura VPS¶
以下の組み合わせで AWS と Sakura VPS でストレージを切り替えながら試験しました。
No. | Instance Type | Spec (vCPU / Mem) | Storage |
---|---|---|---|
1 | AWS t2.medium | 2vCPU / 4GB | Local (EBS) |
2 | AWS t2.medium | 2vCPU / 4GB | S3 Oregon |
3 | Sakura VPS | 3vCPU / 2GB | Local |
4 | Sakura VPS | 3vCPU / 2GB | S3 Tokyo |
5 | Sakura VPS | 3vCPU / 2GB | S3 Oregon |
1MB のファイルアップロード時間¶
1MB で試験した結果は以下の通りです。Sakura VPS のローカルファイルシステム利用時が圧倒的に速い結果となりました。
No. | (1) t2.medium/Local | (2) t2.medium/Oregon | (3) Sakura/Local | (4) Sakura/Tokyo | (5) Sakura/Oregon |
---|---|---|---|---|---|
1 | 4.092 | 4.353 | 5.76 | 14.59 | 22.28 |
2 | 6.985 | 4.906 | 1.03 | 17.61 | 26.43 |
3 | 3.591 | 3.954 | 0.86 | 19.41 | 30.94 |
4 | 3.772 | 5.635 | 1.35 | 21.7 | 34.41 |
5 | 7.814 | 4.527 | 0.83 | 24.57 | 39.79 |
6 | 3.95 | 5.251 | 1.91 | 27.46 | 44.61 |
7 | 2.688 | 7.284 | 0.76 | 29.49 | 45.5 |
8 | 3.006 | 5.215 | 0.82 | 32.71 | 55.39 |
9 | 8.537 | 4.319 | 0.74 | 35.87 | 55.83 |
10 | 2.886 | 4.48 | 0.75 | 38.1 | 59.33 |
Avg. | 4.7321 | 4.9924 | 1.481 | 26.151 | 41.451 |
10MB のファイルアップロード時間¶
10MB で試験した結果は以下の通りです。
No. | (1) t2.medium/Local | (2) t2.medium/Oregon | (3) Sakura/Local | (4) Sakura/Tokyo | (5) Sakura/Oregon |
---|---|---|---|---|---|
1 | 8.316 | 19.549 | 5.29 | 40.39 | 70.49 |
2 | 16.301 | 30.7 | 3.98 | 45.55 | 70.79 |
3 | 9.598 | 15.885 | 6.89 | 48.8 | 73.96 |
4 | 13.797 | 17.755 | 12.23 | 49.92 | 77.11 |
5 | 10.098 | 23.267 | 3.51 | 53.24 | 84.37 |
6 | 15.493 | 8.428 | 2.87 | 60.62 | 99.15 |
7 | 8.621 | 23.979 | 3.5 | 59.1 | 96.03 |
8 | 40.439 | 10.425 | 3.88 | 65.42 | 96.73 |
9 | 8.606 | 28.499 | 28.11 | 65.48 | 102.84 |
10 | 19.256 | 53.812 | 4.59 | 66.4 | 106.02 |
Avg. | 15.0525 | 23.2299 | 7.485 | 55.492 | 87.749 |
100MB のファイルアップロード時間¶
100MB で試験した結果は以下の通りです。 この試験だけ、AWS は t2.micro を使いました。 Sakura VPS + S3 パターンは遅すぎて試験出来ませんでした…
No. | (1) t2.micro/Local | (2) t2.micro/Oregon | (3) Sakura/Local | (4) Sakura/Tokyo | (5) Sakura/Oregon |
---|---|---|---|---|---|
1 | 72.96 | 130.362 | 16.44 | - | - |
2 | 175.259 | 168.255 | 38.08 | - | - |
3 | 148.625 | 112.404 | 52.69 | - | - |
4 | 285.194 | 93.081 | 39.28 | - | - |
5 | 89.227 | 96.584 | 17.79 | - | - |
6 | 135.217 | 183.101 | 55.86 | - | - |
7 | 90.909 | 188.184 | 17.57 | - | - |
8 | 58.378 | 221.642 | 35.95 | - | - |
9 | 73.735 | 98.022 | 44.6 | - | - |
10 | 166.72 | 138.151 | 15.77 | - | - |
Avg. | 129.6224 | 142.9786 | 33.403 | - | - |