スマートスタイル TECH BLOG

データベース&クラウド技術情報

Oracle Autonomous Transaction Processing(ATP)の自動スケールによる性能、CPUリソースの相違を確認してみた

Oracle Autonomous Transaction Processing(ATP)で、自動スケールを有効にした場合と無効の場合とで、性能及びCPUリソースの相違を確認してみました。

ATP の自動スケールを有効にすると、ワークロード状況によって設定されているOCPU数の最大3倍およびIOリソースについてもスケーリングさせる事ができます。

検証した環境は以下のようになっています。

▼ATPインスタンス

項目 項目値
OCPU 1
ストレージ(TB) 1
デプロイメント・タイプ サーバーレス

▼ベンチマーククライアント(COMPUTEインスタンス)×3

項目 項目値
SHAPE VM.Standard2.2
OCPU 2
MEMORY 30GB

ベンチマークについて

今回、ベンチマーククライアントを3台用いて マルチコアによるATPのパフォーマンス比較 同様にJdbcRunnerを使用します。
ベンチマーククライアントは1台ずつ時間をずらして、接続数を増やしていきます。

  • ベンチマーククライアント1
    接続数 5 で 5 時間 のベンチマークを実行。(ウォームアップ時間 5 分)
  • ベンチマーククライアント2
    ベンチマーククライアント1の測定開始から 1 時間後に接続数 10 で 4 時間 のベンチマークを実行。(ウォームアップ時間なし)
  • ベンチマーククライアント3
    ベンチマーククライアント1の測定開始から 3 時間後に接続数 20 で 2 時間 のベンチマークを実行。(ウォームアップ時間なし)

※テストキットは Tiny TPC-C を使用し、100 warehouse(約 10GB)のデータ容量とします。

検証結果

▼CPUリソース確認

まずは自動スケールを有効にした場合の測定時のCPU使用率を確認してみたいと思います。
ベンチマーククライアント2を実行した時点(接続数 5 → 15)からCPU使用率が 10% 前後で変動していたのが、40% 前後で推移するようになりました。
また、ベンチマーククライアント3を実行した時点(接続数 15 → 35)からCPU使用率が 100% 付近まで上昇し、その後、80% から 100% の間で推移するようになりました。

対して自動スケールを無効にした場合は、ベンチマーククライアント2を実行した時点(接続数 5 → 15)から測定終了時点まで、CPU使用率はほぼ 100% でした。

上記の内容からも自動スケールが有効に働いている事が確認できますが、サービスコンソール画面の「Number of OCPUs allocated」のグラフからも、自動スケールを有効にした際にOCPUが順にスケールした事が確認できます。

このグラフは1時間ごとに、その1時間で稼働したOCPUの平均値が表示されます。
2:00 に検証を開始し、3:00 までの接続数 5 の時点では、OCPU数は 1 となっています。
接続数 15 となった 3:00 から 5:00 までのOCPU数の平均を表す 4:00, 5:00 では OCPU数は 2 となっています。
接続数 35 となった 5:00 から 7:00 までのOCPU数の平均を表す 6:00, 7:00 では OCPU数は 3 となっています。

▼スループット確認

JdbcRunner では1秒ごとにスループット(TPS)の情報が出力されます。
5種類のトランザクションのうち、New-Order の 各ベンチマークの同じ時間帯の出力結果を合算した TPS は以下のようになりました。
※いづれのトランザクションも同じような傾向となりました。

左側が自動スケールを有効にした場合で、右側が無効の場合となります。
無効の場合は、有効にした場合と比較して、接続数 15 とした時点から TPS が伸びない結果となっています。
(有効にした場合と無効にした場合は、別日の別時間帯の検証となります。)

今回の検証結果からもATPのメリットの一つである自動スケールが、非常に有用に働いている事が確認できました。
ATPを使用する方は是非、自動スケールを活用して、快適なパフォーマンスを堪能してみてください。


Oracle Cloud
Return Top