はじめに
Verticaのバックアップユーティリティ(vbr.py)の構成ファイルには、concurrency_backup と concurrency_restoreというパラメータがあります。これらのパラメータを変更する事で、バックアップ処理の過程で行われるrsyncによるコピー処理のパラレル度を変更する事ができます。(デフォルトは1)
これらのパラメータを大きくする事でバックアップの所要時間がどれだけ短縮化する事ができます。同様にリストアの所要時間についても短縮化する事ができます。
これらの検証結果をご紹介します。
検証環境
構成
Verticaクラスタ :1台構成(HP ProLiant DL360p Gen8)Verticaバージョン:7.1.1-0
使用したパラメータ
バックアップ構成ファイル内にある以下の2つのパラメータ(concurrency_backupとconcurrency_restore)。(★印のある箇所)
1 2 3 4 5 6 7 8 9 |
[Transmission] encrypt = False checksum = False port_rsync = 50000 serviceAccessUser = None total_bwlimit_backup = 0 concurrency_backup = 1 ★ total_bwlimit_restore = 0 concurrency_restore = 1 ★ |
検証方法
1. LINEORDERテーブルに約70GBのCSVをロード。データサイズが約30GBの状態のデータベースを作成。
2. concurrency_backupのパラメータを設定し、フルバックアップを実施。
この時の処理時間を測定。
3. パラメータ値を別の値にして、再度フルバックアップを実施。
※パラメータ値には、1、2、4、8、16、32の6パターンを設定。
パラメータ値を変化させて、手順2と3を繰り返す。
リストアについても、同様に実施。
検証結果
バックアップ所要時間
1 2 3 4 5 6 7 8 |
パラメータ バックアップ所要時間 ----------------------- ---------------- concurrency_backup=1 7m08.836s concurrency_backup=2 4m28.695s concurrency_backup=4 3m07.205s concurrency_backup=8 2m20.097s concurrency_backup=16 1m31.057s concurrency_backup=32 1m16.700s |
リストア所要時間
1 2 3 4 5 6 7 8 |
パラメータ リストア所要時間 ----------------------- ---------------- concurrency_restore=1 6m43.799s concurrency_restore=2 4m24.087s concurrency_restore=4 3m04.351s concurrency_restore=8 2m22.262s concurrency_restore=16 1m30.878s concurrency_restore=32 1m15.601s |
まとめ
本検証では、パラメータ(concurrency_backupとconcurrency_restore)を大きくするほど、バックアップ/リストアの所要時間が短くなる事が確認できました。しかし、大きすぎる設定にするとその分だけrsyncプロセスが増え、サーバの負荷が高くなります。
従って、サーバリソースに応じてパラメータの設定値を調整する必要があります。