[pgsql-jp: 41356] Re: baseディレクトリの肥大化

[takapro.com]T.Hashimoto hashimoto @ takapro.com
2013年 2月 21日 (木) 08:16:00 JST


橋本です。回答有難うございます。

ディスク容量の確認はdfで確認しています。
zfs-fuseはI/Oが行われたファイルは自動的に圧縮しますので、実際の使用容量
については、本来より多く使われている事は確認しています。

肥大化前後の確認方法のご提示ありがとうございます。
電源OFF/ONテストを再度行ってみます。

以上、宜しくお願い致します。

引用 kasaharatt @ nttdata.co.jp:

> 笠原と申します。
>
>> 電源のOFF,ONを100回程度繰り返すと、PostgreSQLのデータディレクトリの
>> baseディレクトリの使用領域が増大します。
> 使用領域の増大ですが、具体的にどうやって調べていますか?
> du や df などのコマンドでしょうか?
> # zfs-fuseには詳しくないですが、ファイルシステムの特性で実使用量より
>   多く消費しているように見える、ということがあるかもしれません・・
>
>
> あと、具体的に肥大化しているテーブルやインデックスって
> 分かりそうですか?
> # ちなみに以下のSQL例ではデータベース別に行う必要があります。
>
> -- システムテーブル/インデックスのサイズなど確認
> SELECT t.relname, pg_relation_filepath(t.relid), c.reltuples, c.relpages,
>        pg_table_size(t.relid) as tsize
> FROM pg_stat_sys_tables t, pg_class c
> WHERE t.relid = c.oid ORDER BY tsize DESC;
>
> SELECT relname, indexrelname, pg_relation_filepath(indexrelid),  
> pg_relation_size(indexrelid) as isize
> FROM pg_stat_sys_indexes
> ORDER BY isize DESC;
>
> -- ユーザテーブル/インデックスのサイズなど確認
> SELECT t.relname, pg_relation_filepath(t.relid), c.reltuples, c.relpages,
>        pg_table_size(t.relid) as tsize
> FROM pg_stat_user_tables t, pg_class c
> WHERE t.relid = c.oid ORDER BY tsize DESC;
>
> SELECT relname, indexrelname, pg_relation_filepath(indexrelid),  
> pg_relation_size(indexrelid) as isize
> FROM pg_stat_user_indexes
> ORDER BY isize DESC;
>
>
> 肥大化の前後でオブジェクトのサイズなどを比較してみると、
> 容量を食っているオブジェクトが分かるかもしれません。
>
>> -----Original Message-----
>> From: pgsql-jp-bounces @ ml.postgresql.jp  
>> [mailto:pgsql-jp-bounces @ ml.postgresql.jp] On Behalf Of  
>> [takapro.com]T.Hashimoto
>> Sent: Friday, February 15, 2013 10:45 AM
>> To: pgsql-jp @ ml.postgresql.jp
>> Subject: [pgsql-jp: 41342] baseディレクトリの肥大化
>>
>> 初めて投稿させていただきます。今後とも何卒宜しくお願い致します。
>>
>> 本題となりますが、PostgreSQL9.0.5 を組み込みLinuxシステムに
>> 利用しています。
>> この組み込みシステムは電源OFF,ONのみでシステムを起動、停止する為、
>> pg_ctl stopコマンド等やOS自体の正常なシャットダウン等ができない前提と
>> します。
>>
>> 電源のOFF,ONを100回程度繰り返すと、PostgreSQLのデータディレクトリの
>> baseディレクトリの使用領域が増大します。
>>
>> vacuumやreindex等を行っても容量は変わらず、oid2nameを利用して
>> 該当データベースの使っていないと思われるファイルを手動で削除して
>> みましたが、PostgreSQLが起動できる時、起動できない時の差があります。
>> この時はもちろんディスク容量が減りますが、起動できない時は
>>
>> base/*****/*****
>>
>> 上記のファイルがないとログに出力されます。
>>
>> ご質問となりますが、
>>
>> ・baseディレクトリ以下のファイル管理を確かめる方法はoid2nameより詳細に
>>    調べる事は可能なのでしょうか。
>> ・電源OFF,ONを100回程度繰り返すようなシステム運用で、baseディレクトリ
>>    の肥大化を防ぐ方法はないのでしょうか。
>>
>> この様な用途でPostgreSQLを利用するのはまれだと思いますが、ご意見頂きたく存じます。
>>
>> --
>> 橋本 貴史
>> hashimoto @ takapro.com
>



-- 
[takapro]
郵便番号: 621-0846
京都府亀岡市南つつじヶ丘大葉台2丁目6番3号
 橋本貴史
電話番号: 090-8204-9838
メール: hashimoto @ takapro.com
URL: http://www.takapro.com/


pgsql-jp メーリングリストの案内