PostgreSQL で一時譜類を保存しておく台録。
work_mem
が小さ過ぎると肥大化することがある。temp_file_limit
(PostgreSQL 9.2〜)で容量上限を設定することが出来る。
pgsql_tmp
}{PostgreSQL におけるストレージ容量の圧迫}{肥大化しやすいファイル}{PostgreSQL}(5)pgsql_tmp/
K#F85E/4686-CF8D}PostgreSQL で一時譜類を保存しておく台録。
work_mem
が小さ過ぎると肥大化することがある。temp_file_limit
(PostgreSQL 9.2〜)で容量上限を設定することが出来る。pgsql_tmp/
}{希哲11年7月3日}{work_mem}{希哲11年5月23日}{希哲11年5月24日}{REINDEX}{VACUUM FULL}{ストレージ容量の圧迫}{kt}{PostgreSQL}(10)希哲11年5月23日頃,月庭のデルンで利用している PostgreSQL(kt)で,起動直後は50%程度のストレージ使用量が,ほぼ内容の変更がない状態にもかかわらず起動中に100%まではね上がる現象があり(再起動すると戻る),読み書き速度の遅延も使用に耐えない程度になった。
希哲11年5月24日,VACUUM FULL と REINDEX を試みていったん解消した。挙動からみてインデックスの肥大化か。
ところが,しばらく観察しているとやはりストレージ使用量が際限なく増え続ける現象が再発。インデックスの再構築で速度は大きく改善したものの,根本的な問題は変わらず。容量を使い切った時のメッセージをよく見ると一時ファイルの作成に失敗しているようなので,ファイルを調べてみると,肥大化していたのは pgsql_tmp/ というディレクトリだった。これを制限する temp_file_limit という設定項目は PostgreSQL 9.2 からで版存が古すぎるため work_mem で作業メモリを 1024 から 10240 に増やし,一時ファイルの作成を抑制することにした。ここまでの作業は24日朝までに完了。
今のところ上手くいっている様子。デルンのリアルタイム ログと並べて見ていると,Googlebot に1,000件毎のサイトマップを生成して返すタイミングでストレージ使用量が大きく増減している。一時ファイルの削除よりも求頼が積み重なるのが早くなっていたことが原因か。であればインデックス再構築による速度向上で若干改善したように見えたことも説明出来る。
希哲11年7月3日,しばらく安定していたがまた同様の問題が発生。イチ側の論組に変更は無いため握接状況の変化によるものか。work_mem を 20480 に倍増して様子見。