|
|
前のページ 1 2 3 4 次のページ
|
|
常にI/O負荷が高いデフォルトテーブルスペース
|
テーブルスペースにはデータベースオブジェクトが格納されるのですが、デフォルトテーブルスペースだけは特別で、データベースオブジェクトのほかにPostgreSQLの管理情報など様々な付随データが格納されます。その中でも重要なものがトランザクションログです。
トランザクションログは第2回でも紹介しましたが、データベースのすべての更新内容をログとして保存し続けますので、データ量が非常に多いという特徴があります。
このデータ量の多いトランザクションログがデフォルトテーブルスペースに格納されているわけですから、デフォルトテーブルスペースが載っているハードディスクはI/O負荷が常に高い状態となります。
|
シンプルな負荷分散ポリシーの例
|
このようにデフォルトテーブルスペースはI/O負荷が常に高いので、パフォーマンスという面で考えれば、これ以上の負荷はできるだけ避けたいものです。
このための具体的な方針として考えられるのが、「デフォルトテーブルスペースにはできるだけデータベースを作成しない」ことです。
具体的にはサーバマシンにハードディスクを増設してその上に新しいテーブルスペースを作成し、これを新たなデータベース用のテーブルスペースとして用いるのです。
こうすると、トランザクションログのためのI/O負荷はデフォルトテーブルスペースが載っているハードディスクに、データベースアクセスのためのI/O負荷は増設したハードディスクにと、難しいことを考えなくても簡単にI/O負荷の分散ができます。
ちなみに上記の他にも、テーブルとインデックスを異なるハードディスク上に配置するなど、色々な負荷分散のバリエーションがあります。
より完璧を目指すのであれば、できるだけ実際の使い方に即したベンチマーク試験を繰り返しながら最適な負荷分散パターンを見つけ出すことになりますが、上記の負荷分散ポリシーでもシンプルながら一定の効果が得られますので、デフォルトの負荷分散ポリシーとしてはお勧めです。
|
前のページ 1 2 3 4 次のページ
|
|
|
|
著者プロフィール
日本PostgreSQLユーザ会 片岡 裕生
1995年よりインターウィズという屋号で個人事業を営む。普段はPostgreSQLを用いたウェブアプリケーション開発などを行う。各コンピュータ情報誌にてPostgreSQL関連記事や連載を執筆。日本PostgreSQLユーザ会の創立メンバーの1人で、同会の技術担当理事、PostgreSQLのしくみ分科会座長を経て、2004年度からは理事長を勤める。
|
|
|
|