[pgsql-jp: 40385] max_locks_per_transactionとpg_dumpの関係

川原泰三 t_kawahara-osk @ sdcns.co.jp
2010年 9月 10日 (金) 08:42:32 JST


川原と申します。いつもお世話になっております。

現在 pg_dump を行うと以下のようなメッセージが表示されることがあり
調査を行っております。
ERROR: out of shared memory
HINT:  You may need to increase max_locks_per_transaction.

調査は max_locks_per_transaction を増加させ pg_dump が可能な
限界値を測定することで、関係式は無理やり作りましたが、その
理由がわからないため納得できておりません。

関係式もしくは何かしらの考え方があればご教授頂けないでしょうか。
ちなみに、データベースのバージョンは 8.2.4 になります。

以下、データベースのパラメータと測定した限界値になります。
[固定パラメータ]
(B)max_connections = 128
(C)max_prepared_transactions = 5
shared_buffers = 196608(1024MB)
wal_buffers = 8192(64MB)
max_fsm_relations = 31000
max_fsm_pages = 1000000

[変動パラメータ]
(D)max_locks_per_transaction = 16,32,64,128,256,512,1024

[限界値(同時ロック数)]
(A)max_locks_per_transaction それぞれの値に対して
3548,6593,12607,24693,48932,97362,194129

考えてみた関係式
(A)≒(3.891+1.422*(D))*((B)+(C))

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



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