ハードもソフトも知る技術者が語る「データベースチューニングの極意」とは?:データベース高速化のいま(5)(1/3 ページ)
管理ツールだけに頼るのではなく、OSやメモリ、ストレージなどの知識を駆使した現代的なデータベースのチューニングテクニックとは?
本特集では過去数回にわたり最新のデータベース高速化にまつわる技術情報を紹介してきた。本稿では、@IT編集部主催セミナー「@IT DB高速化道場」(2015年9月11日開催)の講演から、富士通 プラットフォーム技術本部 プロダクトソリューション技術統括部 部長 志賀真之氏の「技術が生み出す魔法! 最新ハードウエアとチューニングで激速データベース」を紹介する。講演では、ハードウエアとソフトウエアの両面について、データベースチューニングの基礎知識や間違えやすい点、追跡すべき情報などの解説を聞くことができた。
的確なチューニングと最新ハードウエアの組み合わせがDB高速化の肝
志賀氏は、もともとはハードウエア開発の技術者だが、現在はハードウエアだけでなくOSやソフトウエアを含むシステム全体でのデータベース性能向上に携わっている。システム全体を見てボトルネックを調査することから始め、ソフトウエア側がどうハードウエアを使えば性能を最大化できるか、ソフトウエアの挙動を考慮してハードウエアをどう構成すべきかについて、大局的な視点で見ている人物といえるだろう。
講演では、自身が手掛ける垂直統合型データベースシステムのチューニングで培ってきたノウハウを基にした「DBを高速化するための極意」を披露した。ポイントは以下の3点だ。
- CPUは活用できているか
- メモリを増やして速くする
- ストレージで性能改善する
ここからは、志賀氏が示した「DBを高速化するための極意」をダイジェストで紹介していく。
CPUは活用できているか
「『データベースが遅い』と相談を受けて調査してみたところ、サーバーのCPUリソースが有効に活用されていないケースが多かった。サーバー製品の開発に関わる者としては、せっかく搭載したCPUなのでその能力を使い切ってもらいたい」
志賀氏はこう述べ、「近年のマルチコアCPUでは、データベースソフトウエアが並列処理をうまくこなせないと、せっかくの高性能なCPUも特定のコアばかりに負荷が集中し、全体としてのパフォーマンスが頭打ちになってしまう」と指摘する。
「CPU負荷を平均値で見ると、突出した負荷が発生しているプロセスを見落としてしまう。一つのプロセスに負荷が集中していても、他のプロセスでほとんど負荷がなければ、数値としては表れない」
この場合は、CPU能力をさらに高めるか、並列処理を使う必要があるが、それ以外にも「並列処理を有効にしたつもりが、アップグレードのタイミングで気付かないうちに無効化していた」といった、運用者も気付かないミスによる性能劣化もあり得るという。
また、性能を見る際の注意点として、「ベンチマークツールのSPECintでは、データベースの処理にあまり影響のない量子計算の項目がある。最近のハードウエアではこの量子計算のパフォーマンスが非常に高くなる傾向がある。このため、SPECintベンチマークの数値は、同一アーキテクチャ間での参考値程度に見ておくべき」だとも指摘した。見た目上のベンチマークによるサーバー性能ではデータベースサーバーとしての能力を判断できない点には注意しておくべきだろう。
Copyright © ITmedia, Inc. All Rights Reserved.