postgresql.confファイルの「max_wal_size」および「min_wal_size」パラメーターのデフォルト値を理解する


16

デフォルト値は、ドキュメントmin_wal_sizeおよびmax_wal_sizeパラメータによる

For max_wal_sizeThe default is 1 GB
For min_wal_sizeThe default is 80 MB

次に、データベース構成から次のパラメーターを探します。

select name, setting, unit 
from pg_settings 
where name in ('min_wal_size', 'max_wal_size')

結果を与える:

name         |  setting | unit
----------------------------------
max_wal_size | 64       | 
min_wal_size | 5        |

2つの質問があります。

1)これらの値がドキュメントに示されているデフォルト値と一致しないのはなぜですか?構成設定をまったく変更しませんでした。

2)unitこれらのパラメーターの列が空/ NULLである理由 この場合、64と5の値はどういう意味ですか?MBGB?または何?

work_memすべてが明確な場合、これがパラメーターの例とは異なる理由 :

name         | setting  | unit
----------------------------------
work_mem     | 4096     | kB

回答:


11

これらはデフォルトで16 MBのWALセグメントです。マニュアル:

システムはこのシーケンスをWALセグメントファイルに物理的に分割します。WALセグメントファイルは通常16MBです(ただし、PostgreSQLの構築時にセグメントサイズを変更できます)

そのため、宣伝されているデフォルト値にすぎません。

select name, setting, setting::int * 16 || 'MB' AS setting_in_mb
from pg_settings 
where name in ('min_wal_size', 'max_wal_size');

unitin pg_settingsは、secondMBのような実際の基本単位の場合に存在します。この場合、「ユニット」は「WALセグメント」になり、Postgresをコンパイルする前に構成できます。これらのunit列はNULLです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.