アットマーク・アイティ @IT@IT情報マネジメント@IT自分戦略研究所QA@ITイベントカレンダー  
 
 @IT > 「Spotlight on SQL Server」の問題解決力とは?
 
@IT Special

 

PR

SQL Serverから最高のパフォーマンスを引き出す
「Spotlight on SQL Server」の問題解決力とは?

 SQL Serverの大規模システムへの導入が進んでいる。高いパフォーマンスを要求される過酷な運用環境では、「チューニングいらず」といわれるSQL Serverであっても、パフォーマンス劣化を防ぐ対応は必要だ。SQL Serverのパフォーマンス管理・診断ツール「Spotlight on SQL Server」の問題解決力を紹介していこう。

 「Easy to Use」をコンセプトとして登場したSQL Serverは、5年ぶりのバージョンアップを果たした。SQL Server 2005は基幹システムでの利用を想定した数々の機能拡張を行っているが、その背景には前バージョンであるSQL Server 2000の基幹システムへの浸透がある。ここ1〜2年の販売実績を見ると、SQL Server 2000の各バージョンの中でも大規模システム向けの「Enterprise Edition」が最も伸びているのだ。

 基幹系システムで利用するデータベースには、高いパフォーマンスや運用管理のしやすさが求められる。特にパフォーマンスに関しては、システム導入当初は設計どおりであっても、ビジネスの拡大に伴って提供するサービスや利用ユーザー数が増加することで、パフォーマンスが劣化することも往々にしてあるという。

 例えば、CPU占有率が常時80%を超えている、デッドロックや長時間の待ちが頻発する、ユーザーのログイン処理でタイムアウトする。こんな障害は発生していないだろうか?

 パフォーマンスが落ちれば、何らかの対策を施さなくてはならないが、稼働中のアプリケーションを再設計するのはコストの面で現実的ではない。実は多くのケースではデータベースのチューニングで問題を解決できるのだが、パフォーマンス劣化のボトルネックを発見するスキルを持たないユーザーでは、CPUなどハードウェアを増設する、あるいは高性能なマシンへと置き換えるといった対症療法で急場をしのぐ。しかし、データベース側の構成管理に問題がある場合、適切なチューニングによってパフォーマンスの落ち込みを解決しなければ根本的な解決にはつながらず、ハードウェアへの投資は結局無駄になってしまうのだ。

 SQL Serverを理解していないと宝の持ち腐れ

 SQL Serverのイメージとして、「パフォーマンス・チューニングを自動的に行ってくれる」というものがある。そのため、チューニングのノウハウを持ったエンジニアは多くないという。しかし、基幹系やWebシステムなど高負荷の発生するシステムへのSQL Serverの導入が進んでいる米国では、パフォーマンス・チューニングの必要性にマイクロソフト自身が気付き始めているという。

SQL Serverユーザーグループ「PASSJ」の理事を務める熊澤幸生氏

 米マイクロソフトでは、SQL Serverのアーキテクチャに精通したカスタマー・アドバイザリ・チームを州単位で展開させ、パフォーマンスに問題のあるユーザーに対してコンサルティング・サービスを提供している。「この“SQL火消しチーム”が蓄積したノウハウや手順を活用すれば、SQL Serverでもきめ細やかなチューニングは実現可能です」と語るのは、SQL Serverユーザーグループ「PASSJ」の理事を務める熊澤幸生氏(株式会社エイ・エヌ・ティ執行役員兼 CTO)だ。

 熊澤氏によれば、SQL Serverが持つOS機能である「ユーザーモード・スケジューラ(UMS)」を理解しない限り、パフォーマンスは完全に発揮されないという。ユーザーモード・スケジューラは、CPUとメモリの管理や効率的なディスクI/O処理、排他制御とデッドロックの監視、待ち行列制御、セッション単位の消費リソースの把握、メモリ上のキャッシュ管理などを行っている。このOS機能こそがSQL Serverを「チューニング不要」といわしめる最大の特徴であり、同時にチューニングに関しては「ブラックボックス」と思われてきた理由でもある。

 パフォーマンス・チューニングの第一歩となるのは、これらのデータを取得して可視化することから始めなくてはならない。熊澤氏は「これらのデータはSQLDMOオブジェクトモデルとして提供されており、米国内にはこれを可視化するための高性能なサードパーティ製ツールが登場しました。この結果、米国内のSQL Server文化が伸びたのです」という。

 今回取り上げるクエスト・ソフトウェア株式会社の「Spotlight on SQL Server」もSQL Server文化を支えるツールの1つである。Spotlight on SQL Serverは、開発責任者が米国のSQL Serverユーザーグループ「PASS」の理事を務めていることからも分かるように、ユーザーが求めている機能を備えたツールとして支持されている。また、MOM(Microsoft Operation Manager)のトラブルシューティング対応ツールの1つとしても採用されている。

 Spotlight on SQL Serverは止まらないシステムを目指す

 Spotlight on SQL Serverの開発思想には、「システムを止めない」「問題発生時には素早く復旧」「トラブルを未然に防止」の3つの柱がある。パフォーマンスを向上させるためのツールを動作させるためにSQL Serverのパフォーマンスを犠牲にするのであれば、それは本末転倒だろう。そこで、24時間データベースを監視するエージェント常駐型の運用監視ツールではなく、問題発生時のログを収集し稼働中のシステムから切り離した環境で、ハードウェアからアプリケーションまでを精査する診断ツールとして特化したのだ。

クエスト・ソフトウェア 技術本部シニア・プリセールス・コンサルタント 石井洋介氏

 「Spotlight on SQL Serverによって、プロフェッショナルなデータベース管理者(DBA)のアウトソースが実現できます」と語るのはクエスト・ソフトウェアの石井洋介氏(技術本部シニア・プリセールス・コンサルタント)だ。「例えば、米国のシステムエンジニアは、1週間に1回程度、定期的にシステムの使用状況をSpotlight on SQL Serverによってチェックする“健康診断”を行っています。もし、問題になりそうな点が発見されれば事前に対策を行うことが可能になります」。

 金融系や株取引系などではシステムを止めることはできない。Spotlight on SQL Serverの秀逸な点は、データベースのログを再生することで“健康診断”が可能なことだ。ログ再生中は稼働中のデータベースにSpotlight on SQL Serverをつなげていないため、データベースには負荷が掛からない。しかも、チューニング前とチューニング後のパフォーマンスの比較もできる。

 ユーザー・インターフェイスはアニメーションを駆使したグラフィカルなもので、時系列に沿って各コンポーネントの稼働状況が直感的に把握できる。何よりも1つの画面でCPU使用率、メモリ使用状況、ディスクの使用状況、ユーザー数やロックの状況など複数のデータを同時に扱えるダッシュボード表示の使い勝手は、他社の製品では得られない。

複数のデータを同時に扱えるダッシュボード表示の使い勝手は、他社の製品では得られない

 熊澤氏は、「例えば、CPU利用率とT-SQLの関連性を同時に見比べられるなど、どこにボトルネックが生じているのか見当を付けやすい。また、画面上をクリックして項目ごとにドリルダウンした詳細情報が得られるのもすばらしい」と、ダッシュボード表示を非常に高く評価している。

 パフォーマンス・チューニングの決め手はメモリの使い方 

 熊澤氏は「メモリ・キャッシュの扱いがチューニングにおいて最重要です」と断言する。SQL Server 2000が利用可能なメモリは4Gbytes(注)。この限られたメモリをどれだけ有効に活用できるかがチューニングの腕の見せ所であり、SQL Serverのレスポンスに直結する。Spotlight on SQL Serverでは、SQL Serverが標準で提供するパフォーマンスモニタでは取得できないメモリの使用内訳まできっちり取得する。

注:
  32bit版アプリケーションであるSQL Server 2000の標準アドレス空間は4Gbytesに制限される。SQL Server 2000 Enterprise Editionは、AWE(Address Windowing Extensions)のAPIを使用して、例えばWindows 2000 Advanced Serverでは8Gbytes、Windows 2000 Data Centerでは64Gbytesのメモリ容量にアクセスできる(参照:SQL Server 2000 エディション別機能表)。

 AWEメモリを有効にするには、インスタンスのsp_configureオプション「awe enabled」を使用して指定する必要があるが(参照:MSDNSQL Server のアーキテクチャ)、この設定を行わず、せっかく増設した巨大メモリ空間を無効にしたまま運用しているケースも見受けられるという。

 また、メモリの非効率な利用によって、CPUやディスクI/Oにも負荷が掛かってくる。この場合、CPUやストレージの性能を強化しても、根本的な原因であるメモリの利用効率が変わらなければ問題は解決しない。石井氏は、「ノウハウとはトラブルの原因を見抜く目だと思います」という。

 64bitアーキテクチャのSQL Server 2005の登場によって、4Gbytesのメモリ制約はなくなるが、石井氏は「ハードウェアは非常に高性能、だけどパフォーマンスが期待したほどでない、というユーザーが増えるのではないでしょうか?」と懸念する。

 熊澤氏も「既存の問題がクリアされたとしても、新しい問題が浮かび上がってくる可能性があります。32bit環境でたまたまうまく稼働していただけで、64bit環境では新たに顕在化してくる問題があるでしょう」と予測する。

 SQL Server 2000とSQL Server 2005では、システムテーブルの構造などが変わっているものの、根本的な部分で大きな変化はない。それ故、移行もスムーズに行われると予想される。熊澤氏によればSQL Server 2000からでもSQL Server 2005の64bit版に移行するだけで、3割程度のパフォーマンスアップが期待できるという。しかし、チューニングを行わずに運用を続ければ、いずれパフォーマンスのボトルネックが生じてくるのは避けられない。Spotlight on SQL Serverのようなパフォーマンス診断ツールの重要性は今後も増大していくだろう(Spotlight on SQL ServerのSQL Server 2005対応は2005年末にリリース予定)。

 データベースチューニングの専門家を育てたい

 米マイクロソフトの“SQL火消しチーム”のような専門的なノウハウを持ったエンジニアは、現在日本国内では少数しかいないそうだ。熊澤氏によれば、SQL Serverのチューニングに有効なカウンタは34種類も存在する。

SQL Serverのチューニングに有効なカウンタ

 冒頭でも述べたとおり、SQL Serverが大規模システムにおいて活用されるシーンが増えてきている。オンラインサービスでは“コンテンツ命”な部分があり、データベースの運用まで目が行き届かないこともあるという。そこで、ほかのデータベースに比べて運用の手間が掛からないSQL Serverを採用したものの、事業の成長にパフォーマンスが付いていけないというのはもったいない話だ。

 データベース設計時に想定した以上の負荷が掛かるということは、ビジネス的に成功しているということだろう。だからこそパフォーマンス・チューニングが必要になってくるのだ。チューニングによって、追加投資なく既存のハードウェアのままでも業務に十分耐えられるだけの性能を引き出すことも可能だ。

 また、まだまだパフォーマンスには余裕があるものの、将来、ビジネスが大きくなることが予測できるのであれば、事前診断によるチューニングで将来に備えておくのも必要だろう。 Spotlight on SQL Serverは、データベースチューナーの強い味方になってくれるのだ。


提供:クエスト・ソフトウェア株式会社
企画:アイティメディア 営業局
制作:@IT 編集部
掲載内容有効期限:2005年12月31日
 



関連リンク
クエスト・ソフトウェア株式会社

Spotlight on SQL Server

PASSJ


 
@ITトップ@IT Special インデックス会議室利用規約プライバシーポリシーサイトマップ