Column
ラッチをCPUより多くする――Oracleパフォーマンス最適化のヒント
Oracleデータベースのパフォーマンス最適化では、「ラッチはCPUの数より増やしても意味がない」とよく言われる。だが、実はそこにはうそが隠れている。どういうことか説明しよう。
「ラッチはCPUの数より増やしても意味がない」とはよく言われることだ。なぜか。CPUの数より多くのラッチを同時に使用することはできないからだ。まったく理にかなっているようだが、実はうそが隠れている。どういうことか説明しよう。
あなたが、札付きの凶暴な囚人が集められた警備の厳重な刑務所の所長だとしよう。部下の看守は20人で、それぞれ20人の囚人を担当している。大規模暴動を防ぐため、これら21人のグループは相互に隔離されている。また、万が一銃撃戦が起こる危険を減らすため、銃は5丁だけ装備され、20人の看守がこれらを共用しなければならない。刑務所長はこのほかに看守長を任命し、5丁の銃を看守に割り振る役割を任せている。看守はどんな状況でも持ち場を離れてはならず、ほかの看守を助けに行くことも許されない。囚人と格闘するのはもってのほかであるため、看守は銃なしでは、暴れる囚人に決して対応してはならず、1度に1人の囚人しか相手にしてはならない。
刑務所長はこうした管理体制に非常に満足していた。各囚人は確実に監視され、暴動の可能性は抑えられており、必要な銃の数は最少限にとどめられていたからだ。しかし、場合によっては、1人の看守が20人の囚人を扱うのが困難になる状況が起こるかもしれなかった。看守が5丁の銃の1丁を手にすることができたとしても、非常に危うい立場にあることに変わりはなかった。
刑務所長はそれを思うと夜もなかなか眠れなかった。彼は心の底では、いずれは看守の1人が20人の囚人に襲われることになるのではないかと心配していた。自分が作った管理体制のせいで看守が命を落とすかもしれないと毎晩悩んだ。そして彼は外部の力を借りようと決断し、高給取りのコンサルタントを起用して助言を求めた。コンサルタントは一言こう言った。「もっと看守を雇ってください」
刑務所長は面食らった。看守は1度に1人の囚人にしか対応してはならず、しかも、それは5丁の銃の1丁を持っている場合に限られるからだ。彼は尋ねた。「看守を増やして銃は増やさないんですか」。高給取りのコンサルタントは、「そうです」とだけ答えた。
刑務所長はすっかり困惑して、コンサルタントに疑問をぶつけた。「そんなばかな。たとえ囚人1人につき1人の看守を雇ったとしても、銃は5丁しかありません。銃がなければ、看守は囚人に対応できないんですよ」
高給取りのコンサルタントは、悠然と長いキューバ葉巻を取り出して火をつけ、ゆっくり2~3服吹かすと、おもむろに言った。「確かにそうです。現状では、もし看守が担当している囚人のうち、2人の『世話』が必要になったら、看守はその1人の世話しかできず、もう1人は放置されることになります。ですが、看守を増やせば、銃を持った看守が、世話が必要な囚人に対応できる確率が上がります」
刑務所長はコンサルタントの知恵に舌を巻き、こう言った。「なるほど。今は、看守が20人の囚人のうち1人に対応していたら、ほかにもう1人を相手にすることはできません。しかし、看守を増やせば、看守の1人が(銃を持って)1人の囚人に対応していても、別の看守が(同じく銃を持って)もう1人の囚人に対応できるわけですね」
こうして問題は解決され、高給取りのコンサルタントは、たっぷりボーナスを受け取った。
では、以上の話が、Oracleのラッチングとどのように関連しているかを見ていこう。この話のそれぞれの銃はCPUを、それぞれの看守はラッチを、それぞれの囚人はメモリ構造(例えば、キャッシュバッファチェーンの1つなど)を表している。この話では、5丁の銃(CPU)しか使用できないのは確かだが、この5丁の銃を、任意の囚人、つまりメモリ構造(例えば、ハッシュバケットチェーンの1つなど)に可能な限り迅速に割り当てるというところがミソだ。
Oracleでは、1つのラッチでメモリ構造の複数の部分(例えば、複数のキャッシュバッファチェーンなど)がカバーされることが多い。これは、2つのプロセスが、近接したメモリ構造にアクセスする必要があっても、1つのラッチで両方がカバーされているため、アクセスできないということを意味する。この問題の1つの解決策は、ラッチの数がCPUの数を大幅に上回るとしても、ラッチを増やすことだ。一般に、メモリ構造の数に対するラッチの数の比率を、1に近づけるのがよいと考えられている。そうすることで、任意のメモリ構造についてラッチが使用可能になる可能性が高まる。高給取りのコンサルタントが、銃が5丁しかないと分かっていても、看守の増員を提案したのはそのためだ。
具体的な例で言えば、ラッチをCPUの数より大幅に増やすのが効果的な場合の1つとして、キャッシュバッファチェーンラッチの場合がある。手短に説明しよう。
詳細は省くが、Oracleが「このブロックはバッファキャッシュにあるか」と問い合わせると、キャッシュバッファチェーンの1つにこの問い合わせが送られる。このチェーンを対象に順次検索が行われ、正しいバッファが探される。Oracle 9から、チェーンの数はブロックバッファの数の2倍強となっている。
キャッシュバッファチェーン(CBC)ラッチの数は、構成可能なインスタンスパラメータだ。各CBCラッチは、1つ以上のキャッシュバッファチェーンを保護する。つまり、カーネルコードは、特定のチェーンにアクセスする前に、そのチェーンをカバーする特定のCBCラッチを取得しなければならない。Oracle 9から、1つのCBCラッチは、場合によっては700以上のキャッシュバッファチェーンをカバーするようになった。複数のプロセスが、同じCBCラッチで保護されている1つ以上のチェーンにアクセスしようとすると、CBCラッチ競合が発生する。その解決策の候補の1つ(ほかにもたくさんある)が、CBCラッチを増やすことだ。
なぜか。ラッチを増やせば、1つのラッチが保護するチェーンの数が減るため、取得しなければならないラッチを取得できる可能性が大きくなるからだ。実のところ、この一般的な解決策は、CPUの数に着目したものではない。複数のプロセスが同じラッチを要求する可能性を減らすという発想に基づいているのである。
従って、Oracleのプロセスは、CPUの数より多くのCBCラッチを要求しないかもしれないが、CBCラッチをCPUの数より増やすのは、非常にいいアイデアだ。
以上の説明が参考になるとともに、Oracleの内部の仕組みに改めて関心を持っていただくきっかけになれば幸いだ。
本稿筆者のクレイグ・シャラハマー氏は、IT業界で18年以上の経験を持つ。オラパブの社長として、Oracleベースのシステムの包括的なパフォーマンス最適化(事前および事後の)を実践し、その方法を教育することで、Oracleパフォーマンス管理者を支援することを目指している。同氏は教育コースの開発、提供に加えてコンサルタントの仕事もしている。コンサルタントとして、画期的なパフォーマンス管理製品の開発にかかわった経験を持つほか、Oracleに関する書籍の出版や技術レビュー記事の執筆、さまざまなOracleカンファレンスでの基調講演を行っている。
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
新着ホワイトペーパー PR
-
製品資料
[株式会社MatrixFlow] 「物流リソース最適化」ガイド:人員・配車・傭車を出庫依頼の確定前に決めきる -
製品資料
[株式会社キーエンス] なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは -
製品資料
[株式会社セールスフォース・ジャパン] 「CRMは設計と無関係」は本当か? PLMとの融合で実現する高速開発 -
事例
[日本ヒューレット・パッカード合同会社] AIエージェントの時代にどう備える? 「新たな働き手」を支える3要素とは -
製品資料
[日本ヒューレット・パッカード合同会社] “横並びの自動化”から脱却、AI活用で生産性と競争力を高める秘訣
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
なぜ「全社配布Copilot」は使われないのか? 失敗に学ぶAI定着
-
2
法務と開発者で「言葉が通じない」問題 トヨタやソニーが語るOSS管理の真実
-
3
なぜ「Gemini 4 Argon」は出遅れたのか? Googleが狙う“逆転のシナリオ”
-
4
損保ジャパンはなぜ「COBOL」を捨てなかったのか? 脱メインフレームの真相
-
5
情シスの約8割が転職や退職を意識 調査で分かった“辞めたくなる最大の理由”
-
6
ChatGPTは“検索しまくり”でGeminiは“淡泊”? データが明かすAIの裏側
-
7
情報漏えいはなぜ繰り返されるのか 今すぐ見直すべき「境界」
-
8
「Wi-Fi 7」経由でWindowsが乗っ取られる? 最高権限奪取の恐怖
-
9
「結局使わなくなる」Microsoft 365 Copilotを半年で定着 キリンの3施策
-
10
「中堅・中小企業のネットワーク・セキュリティ運用実態」に関するアンケート
ホワイトペーパーランキング PR
-
1
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
2
家庭用Wi-Fiルーターの業務利用は危険? 避けるべき理由と具体的な対策
-
3
Microsoft 365を安全に運用 うっかりミスやサイバー攻撃に備えるデータ保護術
-
4
財務部門がAIを最大限に活用する方法 無駄のない戦略的リーダーシップへの道
-
5
LLMが兵器化? 元FBI高官が鳴らす警鐘とセキュリティツール統合のポイント
-
6
「オンプレミス回帰」せざるを得ない“合理的な理由”
-
7
なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは
-
8
生成AIを開発に導入しても効果が見えない? 実証実験で分かった成果と課題
-
9
経産省DX指針から読み解く、受発注業務デジタル化ロードマップ
-
10
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー