作成者: 山本 太郎|Jan 24, 2024 3:00:00 PM
今回はDBサーバー更改において、更改後にどの程度のリソース割り当てが適正かを確認したいとの相談を受け、サイジングをおこなった事例をご紹介します。
相談内容
-
更改後のDBサーバーの適正なリソースサイズを確認したい
-
DBサーバーの業務量が10%、20%、30%と増加した場合のリソースサイズの見積りをしたい
見積りの前提
-
リソースの見積りを行う基礎データは、vCPU使用率・メモリ使用率と現行DBサーバーの業務量データの相関分析を行い使用率の伸びを基に実施する
-
DBサーバーの業務量データは、Oracleの論理DBアクセス回数(コンシステントGET回数とデータベースGET回数の合計値)を使用する
-
実行されるSQL文、処理されるデータサイズなどは、現環境のものと変更が無いものとする
-
業務量増加時の見積りは、10%・20%・30%の増加率で見積りを実施する
Oracle業務量の基準値設定
リソースの見積りを実施する際、ターゲットとなるvCPU使用率とOracle業務量の基準値を設定する必要があるため、現在のvCPU使用率とOracle業務量との相関判定を実施し、vCPU使用率「60%」、Oracle業務量の基準値を「800,000,000回」と設定した。
考察:vCPU
- 現在、vCPU使用率は、60%程度である。Oracle業務量が増加しない場合は、現行のvCPU割り当て数で問題ないと考えられる
- 基準とするOracle全体の業務量を800,000,000回とし、増加量を10%・20%・30%とした場合、業務量は以下の値となる
10%増加→ 880,000,000回
20%増加→ 960,000,000回
30%増加→1,040,000,000回
- 業務量がそれぞれ10%、20%、30%と増加した場合、vCPUの使用率は以下の値となる
10%増加→65%
20%増加→70%
30%増加→75%
- vCPUの使用率を60%程度とする場合、vCPUの割り当ては下記割り当てとなる。
0%増加→変更なし
20%・30%増加→vCPUを「2」増加させる
考察:メモリ
Oracle業務量とメモリ使用率に相関関係は認められなかった。業務量増加が無い場合は、現在のメモリ割り当てサイズで問題ないと考えられる。また、Oracle業務量が10%、20%、30%に増加した場合でもメモリ使用率は80%未満で推移すると考えられる(Oracleに割り当てられているメモリ量は一定のため)。
キャッシュ関連では、現行割り当てにてバッファキャッシュヒット率は良好な状態であり、Oracle業務量増加につれてヒット率が下がる傾向は確認できない。Oracle業務量基準値を目安に、10%・20%・30%と業務量が増加しても現行割り当てサイズで問題ないと考えられる。
Redoログバッファ待ち時間とOracle業務量との相関関係は認められなかった。業務量が少ないタイミングでも待ちが発生していることから、特定処理が実行された際に発生するものと考えられる。また、この際待機イベント「log file switch completion」が発生している。
考察:その他
その他考察として、Oracleバージョンアップ時にSQL処理のパフォーマンス劣化が確認される場合があるため、以下オプティマイザ関連のパラメータ確認・調整を行うようアドバイスを実施。
<パラメータ>
OPTIMIZER_INDEX_COST_ADJ
OPTIMIZER_INDEX_CACHING
OPTIMIZER_DYNAMIC_SAMPLING
【まとめ】
今回は、更改後のDBサーバーの適正なリソース見積り事例を紹介させて頂きました。日頃から収集している各種パフォーマンスデータを利用することで、現在割り当てられているリソース使用状況から更改後の適正なリソース割り当てを判断することが可能となります。また、業務量が増加した場合、どの程度までの業務量であればリソースを増強せずに処理を行えることが可能かを確認することができました。