はじめに
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)。
(★印のある箇所)
[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を繰り返す。
リストアについても、同様に実施。
検証結果
バックアップ所要時間
パラメータ バックアップ所要時間
----------------------- ----------------
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リストア所要時間
パラメータ リストア所要時間
----------------------- ----------------
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プロセスが増え、サーバの負荷が高くなります。
従って、サーバリソースに応じてパラメータの設定値を調整する必要があります。
検証バージョンについて
この記事の内容はVertica 7.1で確認しています。