エンタープライズ:ニュース 2003/05/23 20:51:00 更新


Unbreakableの根本は? カーネルチューニング詳細をミラクル・伊東 氏が語る

Oracle 9iのDBに最適化されているLinuxディストリビューションの1つ「MIRACLE Linux」。レッドハットのエンタープライズ向けパッケージ「Red Hat Enterprise Linux AS」なども、同様なカーネルチューニングが行われている。エンタープライズ仕様=カーネルチューニングが定説となりつつある昨今、ミラクル・リナックス技術部、伊東氏がLinuxWorld Expoで語る。

 国内最大規模のLinuxカンファレンス「LinuxWorld Expo/Tokyo 2003」。最終日の23日には、オラクル ブースで「Unbreakable Linux〜Linuxカーネルの拡張機能〜」と題されたセミナーが開催された。オラクルでは、今カンファレンスでの3日間を通し、ほかのブースとは異なる比較的長い約1時間のセミナーを連ねた。来場者への深い理解を期待した狙いだ。

 「MIRACLE Linux」といえば、「オラクル(DB)向けのチューニングカーネルが採用されている」と知られた存在だが、実際にはどのようなカスタマイズが行われているのだろうか? この疑問に対し明確なポイントが示された講演となった。壇上に立たれたミラクル・リナックス、製品本部技術部チーフアーキテクト、伊東達雄 氏は、同社の最新ディストリビューションバージョン「MIRACLE Linux 2.1」を基に、実装されている各種の機能に触れる。

05230020.jpg

 伊東 氏はまず最初に、「今後のLinuxには可用性、信頼性が求められている。データベースを運用するサーバとしては、UNIXの方が信頼性があるといわれるが、長年のノウハウとカーネルの違いが所以しているためだ」という。さらに、「Linuxは今後、2003年末に予定されるカーネル2.6リリースにより、いっそうのスケーラビリティ向上が予想される」と期待を高める。

 講演では3つのテーマに沿っていくと明確に述べられ、「Linuxカーネルの概要」、「大規模なシステム向けのカーネル拡張について」、「保守管理性について」が順番に解説された。

カーネル2.4で実現されたスケーラビリティ向上が基盤となった

 Linuxカーネル自体について伊東 氏は、従来カーネル2.2に比べ、2.4ではスケーラビリティが向上していることを示す。ベンチマーク「WebBench」での比較がプレゼンされ、1プロセッサではそれほどの差が見られないものの、4プロセッサへの増加では、倍以上のパフォーマンスになることが強調された。これにより、Windows版との比較でも134%のパフォーマンスが記録されたといい、エンタープライズLinuxの可能性が垣間見られた形だ。

05230007.jpg

 さらにLinuxカーネルそのものの概要として、1GBまでのローメモリと1GB以上のハイメモリ空間の関係についてを語る。ダイレクトマッピングについて説明され、Linux 2.4でのGバイト単位のメモリ空間を利用する手法が説明された。

メモリ空間の拡張利用こそがミラクル独自なもの

 セミナー本題となるミラクル独自のカーネル拡張については、「プロセススケジューラの改善」、「非同期I/Oのサポート」、「I/Oリクエストの細分化」、「バウンズバッファ処理の改善」、「ページテーブルのハイメモリ領域利用」の5点が挙げられた。

 スケジューラ機能は、ノーマルなLinuxカーネルではキューが1つなのに対し、MIRACLE Linux採用のカーネルでは「active」と「expired」キューと呼ばれる2つが存在することが示され、プロセッサ数が増えるほどにスケジューラ機能の優位性が発揮されることを強調する。

05230023.jpg

 非同期I/Oアクセスのサポートについては、DBの実データとバッファのアクセスがチェックポイントに時間を要するのに対し、処理が中断されず並行されたアクセスが可能な点に処理高速化の要があるという。これはOracle 9i R2で実現されており、複数プロセスが複数のファイルに対してアクセス可能なことを意味する。これに伴い、I/Oリクエストの細分化も相まっていることが強調され、I/Oリクエストロックと呼ばれる機能(カーネルがI/Oリクエストを制御するためのロック機構)が、競合違反を起こしにくいよう拡張されていることも重ねられた。

05230026.jpg

 バウンスバッファ処理の改善については、通常のI/Oデバイスが直接扱うことのできないデータがメモリ空間にコピーされてから処理されるのに対し、これを省くことでローメモリにコピーする手順無く処理されることが説明された。

大規模なオラクルDB向けのカーネル拡張とは

 オラクルDB向けに拡張された点として、「仮想メモリ空間のアクセス領域拡大」、「ラージページ共有メモリと呼ばれるメモリ拡大」が挙げられた。8MBを4KBごとではなく4MBごとに管理できるよう拡大されているものであり、TLBミスが極力発生しないよう配慮されている。

05230028.jpg
05230029.jpg

 また、「Oracle LVM」と呼ばれる独自な拡張もあり、これはメモリ自体に新たなファイルシステムが採用されたものだ。通常はディスク上に利用されるファイルシステム概念だが、メモリ上に利用することで、大規模なメモリ空間に対応できるよう拡張されている。

05230030.jpg

 最後のポイントとして語られたのが、保守管理性の点だ。日立との協業により拡張されたものとして「LKCD」(Linux Kernel Crash Dump)、「LKST」(Linux Kernel State Tracer)と呼ばれる機能がある。これは、万が一、カーネルクラッシュが起こった場合、速やかに保守ができるようメモリダンプを採取、解析が行えるよう配慮されたものだ。再現性の確認しづらい場合であっても確実に把握できるよう拡張されているという。

 このように、ひと口にカーネル拡張とはいっても、非常に多岐に渡る事項が挙げられた。しかし、ポイントとなっているのは「メモリ空間の利用方法」であり、効率よく高速に扱えることがキーとなっている。基幹でのLinux運用をターゲットとする同社の試みに今後も注目したい。

05230040.jpg

セミナーの疲れを癒してくれるカフェコーナーも常設されていた


関連リンク
▼ミラクル・リナックス
▼日本オラクル

[木田佳克,ITmedia]