PostgreSQLサーバーの1つは、一定のデータストリームを受信する複数の(1〜3)データベースをホストしています。データは特に構造化されておらず、現在の時刻とその特定の瞬間のさまざまな観測データになります。データレートはかなり高いです。あるデータベースでは1日に約1ギガバイト、別のデータベースでは約10分の1になります。この率が上がるとは思わない。読み取りパフォーマンスは、はるかに低い優先度であり、現在許容されています。
ログにこのメッセージがあります:
LOG: checkpoints are occurring too frequently (15 seconds apart)
HINT: Consider increasing the configuration parameter "checkpoint_segments".
現在、この値は16に設定されていpgtune
ます。
書き込みパフォーマンスを改善するために考慮すべき設定は何ですか?私は可能な限り安全に保つことを好むでしょう。入ってくるデータの量を考えると、データの大部分が無傷である限り、障害で最近のデータを失うことを受け入れることができます。
編集:今のところPostgreSQL 9.0を使用していますが、9.1にアップグレードする予定です。ハードウェアの詳細は掲載していませんが、その重要性は認識していますが、最終的には非常に多様なハードウェアを持つ複数のマシンでこの最適化を行う必要があります。ハードウェアが答えに不可欠な場合は、一般的な情報を教えてください。異なるハードウェア構成のマシンに答えを適用できます。
checkpoint_segments
推奨どおりに増やしましたか?何が起こった?