|
||||||||||||||||||||
| 前のページ 1 2 3 4 | ||||||||||||||||||||
| OSSの開発者もパフォーマンスチューニングには強い関心 | ||||||||||||||||||||
|
さて、長々と商用データベース比較をしてしまったが、一方のOSSの現状はどうなっているだろうか。前回までに引き続きSRAの石井達夫氏に、PostgreSQLを例に伺ってみよう。 「SQL Serverも、Oracle10gも自動化の流れに向かっていますが、PostgreSQLもどちらかというとあまりチューニングの手間をかけないで、できればセルフチューニングするという方針だと思います。バージョンを重ねる中で、オプティマイザもかしこくなって、いいところまでいってると感じています」 石井氏によれば、ハンディになっているのがVACUUMだという。 PostgreSQLは、データベースの種別としては「追記型データベース」になる。つまり、削除・更新したデータがすぐに消えない。このため、データを削除した後、その領域を再利用可能にするにはVACUUMコマンドを使って登録しないといけない。この作業をどのタイミングで、どれくらいの頻度で行うのかが大きなノウハウになっているのだという。 「VACUUMコマンドを流すのは、『結構負荷がかかる=パフォーマンス』に影響を与える作業なので頻繁にやりたくない。しかし、やらないと空き領域が再利用できず、パフォーマンスが低下する。これをいかにバランスよく行うか、タイミングの見極めが管理者の腕の見せ所なのですが、正直いって難しい問題です」 それほどアクセスのないデータベースなら、月1回程度VACUUMコマンドを流せばいいが、大量のトランザクションがあるようなシステムでは、極端な話、1時間に1回なのか10分に1回なのかの見極めが必要だという。 「あと、これはチューニングというより問題点なのですが、Oracleなどではチューニングしていると、『これ以上よくならない地点=チューニング限界』がわかります。そこでCPUがボトルネックになっているのなら、さらに高速のものに変えるとか、メモリが足りなければメモリを足すとか、ある意味わかりやすい解決策がとれました。それがPostgreSQLは、解決策がわかりにくいという難点が今まであったのです」 これまでのバージョンでは、メモリが足りなそうだからとメモリを足してもさして性能上がらないとか、CPUが2個で足りなければ4個にすれば性能が倍になるのかというと、そういうわけでもないという面があったという。その分、「ある意味あやしげな=理論的な裏づけのないノウハウ」を知らないとダメ、みたいなところが多々あったのだとか。 「しかし、今開発中のバージョンでは、そこがかなり改善されています。例えば、バッファ領域を今まで80MBくらいしかとっていなかったのを、必要なだけ増やせばそれなりに性能が上がる。また、CPUを10個以上に増やすとかなり性能が上げられるといったように、ある意味わかりやすくなっています」 OSSの性能改善には開発者の関心が高いことが不可欠だが、パフォーマンスチューニングについてはどうなのだろうか。発展途上のソフトウェアとしては今のところ、データベース本体のブラッシュアップの方などに目が向いているのだろうか。 「OSSの開発者も、みんなチューニングに関心はありますよ。実際、USAのMLでは毎日のようにチューニングを議論しています。しかし問題としては、チューニング技法がきちんと文書化されていない弱みがあります。 理想的には、こういう性能がでないがなぜだろう?といった問い合わせがあったとき、すぐ参照できるチューニングマニュアルのようなものがあれば、該当する項目を適用すればOKみたいにできるのです。しかし今はまだ、ソースコードを見ないとわからないとか、オプティマイザ挙動を見て判断しないといけないとか…そんなことまで見られる人は本当に数が限られています。そんなわけで敷居が高いというところがあります」 あるエンジニア曰く、「チューニングはとにかく経験の積み重ね!」だという。それを考えると、OSS陣営もこれからいかにノウハウを蓄積して、それらを体系化していけるかがテーマになるだろう。商用データベースの自動化も、その背後には膨大な経験値の積み重ねがあってはじめて可能になっているのである。昔から学問に王道なしとはいうが、データベースチューニングも同様なのである。 |
||||||||||||||||||||
|
株式会社SRA 開発サービスカンパニーコンサルティング部 OSSビジネスプロジェクト長 石井達夫氏 マイクロソフト株式会社 サーバープラットフォームビジネス本部 アプリケーションインフラストラクチャ製品グループ シニアプロダクトマネージャ 斎藤泰行氏 (五十音順)
|
||||||||||||||||||||
|
|
||||||||||||||||||||
|
前のページ 1 2 3 4 |
||||||||||||||||||||
|
|
||||||||||||||||||||
|
|
||||||||||||||||||||
|
||||||||||||||||||||
|
|
||||||||||||||||||||
|
||||||||||||||||||||
|
|
||||||||||||||||||||
|
|
||||||||||||||||||||
|
||||||||||||||||||||

