TOP設計・移行・活用> 常にI/O負荷が高いデフォルトテーブルスペース
今すぐできるPostgreSQLチューニング
今すぐできるPostgreSQLチューニング

第4回:テーブルスペースで負荷分散
著者:日本PostgreSQLユーザ会  片岡 裕生   2005/8/10
前のページ  1  2   3  4  次のページ
常にI/O負荷が高いデフォルトテーブルスペース

   テーブルスペースにはデータベースオブジェクトが格納されるのですが、デフォルトテーブルスペースだけは特別で、データベースオブジェクトのほかにPostgreSQLの管理情報など様々な付随データが格納されます。その中でも重要なものがトランザクションログです。

   トランザクションログは第2回でも紹介しましたが、データベースのすべての更新内容をログとして保存し続けますので、データ量が非常に多いという特徴があります。

   このデータ量の多いトランザクションログがデフォルトテーブルスペースに格納されているわけですから、デフォルトテーブルスペースが載っているハードディスクはI/O負荷が常に高い状態となります。


シンプルな負荷分散ポリシーの例

   このようにデフォルトテーブルスペースはI/O負荷が常に高いので、パフォーマンスという面で考えれば、これ以上の負荷はできるだけ避けたいものです。

   このための具体的な方針として考えられるのが、「デフォルトテーブルスペースにはできるだけデータベースを作成しない」ことです。

   具体的にはサーバマシンにハードディスクを増設してその上に新しいテーブルスペースを作成し、これを新たなデータベース用のテーブルスペースとして用いるのです。

   こうすると、トランザクションログのためのI/O負荷はデフォルトテーブルスペースが載っているハードディスクに、データベースアクセスのためのI/O負荷は増設したハードディスクにと、難しいことを考えなくても簡単にI/O負荷の分散ができます。

   ちなみに上記の他にも、テーブルとインデックスを異なるハードディスク上に配置するなど、色々な負荷分散のバリエーションがあります。

   より完璧を目指すのであれば、できるだけ実際の使い方に即したベンチマーク試験を繰り返しながら最適な負荷分散パターンを見つけ出すことになりますが、上記の負荷分散ポリシーでもシンプルながら一定の効果が得られますので、デフォルトの負荷分散ポリシーとしてはお勧めです。

前のページ  1  2   3  4  次のページ


日本PostgreSQLユーザ会 片岡 裕生
著者プロフィール
日本PostgreSQLユーザ会  片岡 裕生
1995年よりインターウィズという屋号で個人事業を営む。普段はPostgreSQLを用いたウェブアプリケーション開発などを行う。各コンピュータ情報誌にてPostgreSQL関連記事や連載を執筆。日本PostgreSQLユーザ会の創立メンバーの1人で、同会の技術担当理事、PostgreSQLのしくみ分科会座長を経て、2004年度からは理事長を勤める。


INDEX
第4回:テーブルスペースで負荷分散
  今回のチューニング
常にI/O負荷が高いデフォルトテーブルスペース
  テスト用サーバマシンをチューニング
  チューニングの結果