TOP設計・移行・活用> 今回のチューニング
今すぐできるPostgreSQLチューニング
今すぐできるPostgreSQLチューニング

第5回:基本的項目のチェックポイントセグメント数
著者:日本PostgreSQLユーザ会  片岡 裕生   2005/8/17
1   2  3  次のページ
今回のチューニング

   PostgreSQLの基本的なチューニングパラメータで、まだ取り上げていないものがあります。チェックポイントセグメント数です。今回はこれを取り上げます。

   ところで、これまで紹介してきたチューニング例をご自身で試された方もいらっしゃると思いますが、テスト用サーバマシンのようには性能が向上できなかった方もいるのではないかと思います。

   チューニングというのは1つの項目を調整すれば必ず性能が向上するというものではなく、複数の調整による相乗効果ではじめて良い結果を示す場合があります。ですから、前回までのチューニングで性能が向上しなったとしても残念に思うことはありません!恐らく今回のチューニングにより何らかの良い結果が得られると思います。


チェックポイントとは

   チェックポイントについては本連載の第3回で解説しましたが、ここでもう一度簡単におさらいしておきます。

   PostgreSQLでは、共有バッファ上のダーティページをすぐにはハードディスクに書き込みません。代わりにトランザクションログを随時ハードディスクに書き込むことにより、障害時のデータの信頼性を確保しています。

   ただし放っておけばトランザクションログが溜まる一方ですから、どこかでトランザクションログを削除しないといけません。それが「チェックポイント」です。

   チェックポイントでは、共有バッファ中のすべてのダーティページをハードディスクに書き出します。こうして未書き込みのデータがなくなったところで、不要になったトランザクションログを削除しています。


チェックポイントの実行タイミング

   チェックポイントはpsqlなどのSQLインターフェースからCHECKPOINT文を実行することでも行えますが、ある条件に達するとPostgreSQL自身でも自動的にチェックポイントを実行します。

   ではどのような条件で実行されるのでしょうか?

   1つはトランザクションログが一定量に達した場合です。これによりトランザクションログが永久に溜まることを防いでいます(図1)。実は今回取り上げる「チェックポイントセグメント数の調整」とは、この一定量を決める作業なのです。

チェックポイントでトランザクションログが書き込まれるイメージ
図1:チェックポイントでトランザクションログが書き込まれるイメージ

   もう1つはチェックポイントの実行間隔です。前回のチェックポイントから一定時間が経過したら、トランザクションログが溜まっていなくてもチェックポイントを実行します。デフォルトは5分です。このデフォルト値は必要十分な長さ(頻度の低さ)ですから、あえてこの値をチューニングする必要はないでしょう。

1   2  3  次のページ


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


INDEX
第5回:基本的項目のチェックポイントセグメント数
今回のチューニング
  チェックポイントの頻度と性能
  テスト用サーバマシンをチューニング