SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

最新イベントはこちら!

Data Tech 2024

2024年11月21日(木)オンライン開催

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

EnterpriseZine(エンタープライズジン)

EnterpriseZine編集部が最旬ITトピックの深層に迫る。ここでしか読めない、エンタープライズITの最新トピックをお届けします。

『EnterpriseZine Press』

2024年秋号(EnterpriseZine Press 2024 Autumn)特集「生成AI時代に考える“真のDX人材育成”──『スキル策定』『実践』2つの観点で紐解く」

移行前に知っておきたい、Oracle Database 12c新機能のオモテとウラ

12cのマルチテナントは本当に“使える”機能なのか?(後編)

002


 前回はOracle Database 12c(以下、12c)の目玉機能であるOracle MultitenantのUnplug/Plugとクローンにおける内部動作、処理時間について解説しました。今回はOracle Multitenantのリソース制御や現行データベースからマルチテナントに移行する方法について取り上げます。

 

 ※Oracle Multitenantの概要は「連載:徹底解説!Oracle Database 12cのすべて」の中で解説していますので、併せてご参照ください。

マルチテナントのリソース制御はどこまでできる?

 Oracle Multitenantはインスタンスやバックグラウンド・プロセスを共有しながらデータベース層でマルチテナントを実現する機能です。クラウドやデータベースの統合において集約率を高める効果が期待されますが、リソース制御というマルチテナントならではの考慮が必要になります。

 例えば同じサーバ内でA社、B社、C社のデータベースがそれぞれ稼働している場合、A社が負荷の高い処理を実行するとB社とC社にも影響が出てしまいます。このような状況を防ぐためにCPUやメモリ、I/Oといったリソースの上限を設けたり、あるいはデータベースの重要度に合わせて優劣をつけるなどの設定が必要になります。Oracle Multitenantがどのようなリソース制御に対応しているのか、また運用に合わせてどの程度柔軟に調整できるのかを理解しておかなければ、活用シーンは見えてこないでしょう。

 結論から言うと、Oracle Multitenantの機能として実装されているリソース制御は「CPU」、「I/O(Oracle Exadata Database Machineのみ)」、「パラレル実行」の3つです。メモリについてはインスタンスを共有して集約率を高めるという仕組みを採用しているため、プラガブル・データベース(PDB)単位での割り当て制御はできません。重要度の高いPDBとそうでないPDBで使用できるメモリ量に差をつけたい場合、コンテナ・データベース(CDB)を分ける必要があります。

 CPUについてはPDB単位とCDB単位の両方で制御することができ、PDB単位で制御する場合には以下のように「share」と呼ばれる比率を設定します。考え方は非常にシンプルで、例えばshareが1に設定されているPDBと2に設定されているPDBがある場合、CPU使用率が1:2の比率で調整されます。もし運用中にPDBが追加されたとしても、shareの設定値に基づいて比率が再計算されるため、ユーザがその都度設定を変更する必要はありません。

▼PDB単位のCPU制御
PDB単位のCPU制御

CPU制御の裏側では何が起きている?

 このように分かりやすい仕組みで実装されているPDB単位のCPU制御ですが、気になるのはその正確性と即効性です。ソフトウェアの機能で制御しており、ハードウェア面で物理的な制限をかけているわけではないので、こちらの意図どおりにCPUが制御されるかは十分な検証が必要です。また、Oracle Multitenantでは運用中にPDBの追加や削除が発生するため、その場合に速やかな制御が行われるかも気になるところです。

 そこで実際にPDB単位のCPU制御を行ってみた結果が以下のグラフです。CPUバウンドのプログラム(CPUを大量に使用するプログラム)を実行し、PDB2とPDB3をオンラインで追加した際のCPU使用率を色分けしています。PDBが増えると多少ぶれ幅が出てくるものの、ほぼshareの設定どおりにCPUを制御できています。PDBを追加した際も即時に設定が有効化されており、即効性にも優れていることが分かります。

▼各PDBにおけるCPU使用率の推移
各PDBにおけるCPU使用率の推移

 PDB単位のCPU制御は、Oracle Database Resource Managerにより行われており、この時の待機イベントを確認すると「resmgr:cpu quantum」が大量に発生しています。これはデータベースの内部実行キューによってCPU使用率を調整中であるという動作を意味するもので、サーバで有効になっているコア数(今回の検証環境では24)を超えたセッションを待機させています。

▼CPU制御時のアクティブ・セッション数と待機イベント
CPU制御時のアクティブ・セッション数と待機イベント

 動作としてはOSのスケジューラによく似ており、一定の短い時間(100msec)だけプロセスを実行して待機状態にし、別の実行可能なプロセスを選択して実行するという処理を繰り返します。ラウンドロビンのアルゴリズムを採用しているため、特定のプロセスだけが長時間待機してしまうことはありません。また、ロック待ちやI/O待ちが検出されるとすぐに別のプロセスが選択されるため、不要な待機は発生しないようになっています。シンプルでありながら無駄のないCPU制御ができる仕組みと言えます。

次のページ
CDB単位のCPU制御は2種類ある

この記事は参考になりましたか?

  • Facebook
  • X
  • Pocket
  • note
移行前に知っておきたい、Oracle Database 12c新機能のオモテとウラ連載記事一覧

もっと読む

この記事の著者

関 俊洋(セキ トシヒロ)

株式会社アシスト データベース技術本部 データベース・エバンジェリストデータベース・システムの構築や運用トラブルの解決といったフィールド・サポート業務を経験し、その後は新製品の検証やソリューションの立ち上げに従事。現在はデータベースの価値や魅力を伝えるための執筆や講演活動を行っている。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/5559 2014/03/20 15:20

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング