postgresql.conf の wal_sync_method について

【この記事の所要時間 : 約 4 分

またまた、Postgresqlのパラメータチューニングネタ。
今回は、postgresql.conf の wal_sync_method について。
Postgresql には、バージョン7.1以降は、WAL機能が実装されている。WALとは、Write Ahead Logging の略で、ハードディスクのアクセス回数を減らし、DBのパフォーマンスを向上させるためのログ先行書込機能なわけですが、これのハードディスクへの書込方法を決めるのが、wal_sync_method という項目。
WALのPostgresql内部での動きなどは、以下のサイトを参考にして下さい。
WALとは(Write Ahead Logging)
この項目は、OSによって選択できる値が違い、さらに一概にどれがベストかわからないというちょっとクセのあるパラメータである。
Postgresql開発者で、日本PostgreSQLユーザ会の元理事長である石井達夫氏も以下のように述べている。
PostgreSQLチューニング実践テクニック

データをディスク装置に確実に書き込むために、PostgreSQLでは同期書き込みという方法を使っていますが、同期書き込みにはかなり時間がかかります。同期書き込みの方法はプラットフォームによっていくつか選択肢があり、一概にどれが最適とはいえないため、実際にベンチマークを計測して最適なものを選ぶとよいでしょう。ベンチマークの計測方法としては、contrib/pgbenchを使用するのが手頃です。
次に、これらを使ったベンチマーク計測方法を示します。ベンチマーク用のデータベースは新たに作成することをお勧めします。ここでは「bench」という名前のデータベースを使用しています。

1. ベンチマークデータベースの作成(createdb bench)
2. ベンチマークデータベースの初期化(pgbench -i bench)
3. wal_sync_methodを設定
4. postmasterの再起動、出力されるTPS値を記録
5. ベンチマークを実行(pgbench -c 10 -t 1000 bench)
6. まだ試していないwal_sync_methodがあれば2.へ戻る

これを繰り返し、一番TPS値が大きい書き込み方法を採用してください。なお、プラットフォームによってはサポートされていない wal_sync_methodがあるかもしれません。この場合、postmasterが起動しないので、それについてはあきらめて次の wal_sync_methodに進みます。

という感じで、ベンチマークを使ってテストしながらベストなパラメータを見つけなさいということ。
ここで、石井達夫氏が述べているベンチマークツールのpgbenchは、彼が作成したものである。
使い方などは以下から。
pgbenchの導入
パラメータチューニングも大切ですが、Postgresql を開発/運用するなら、なにはなくとも以下の「PostgreSQL完全機能リファレンス」は1冊手元に置いて頂きたい。
pgbenchについても詳しくのっている。

鈴木 啓修
秀和システム (2006/11)
売り上げランキング: 95605

以下、参考までに。
http://canalize.jp/archives/008035.php

PostgreSQL徹底入門 第3版
PostgreSQL徹底入門 第3版

posted with amazlet at 15.11.20
笠原 辰仁 北川 俊広 坂井 潔 坂本 昌彦 佐藤 友章
翔泳社
売り上げランキング: 97,506
スポンサーリンク
レクタングル(大)広告
  • このエントリーをはてなブックマークに追加
スポンサーリンク
レクタングル(大)広告

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です