diff --git a/doc/src/sgml/wal.sgml b/doc/src/sgml/wal.sgml index 456cc9f8ea2..b3dc889715a 100644 --- a/doc/src/sgml/wal.sgml +++ b/doc/src/sgml/wal.sgml @@ -210,18 +210,13 @@ SCSIドライブであれば -最近のSATAドライブ(ATAPI-6またはそれ以降)はドライブキャッシュの書き出しコマンド(FLUSH CACHE EXT)を提供している一方、 -SCSIドライブでは従来から類似のSYNCHRONIZE CACHEコマンドをサポートしていました。 -これらのコマンドは、直接PostgreSQLに発行されませんが、いくつかのファイルシステム(例えばZFSext4)では、 -それらをwrite-backが有効なドライブへデータを書き出すために使います。 -不幸なことに、このようなwriteバリアを持つファイルシステムは、バッテリバックアップ付き装置 -(BBU)のディスクコントローラと組み合わせた際に、好ましい動作をしません。 -このような処理の流れにおいて、同期コマンドはコントローラキャッシュにあるデータを全てディスクへ強制的に書き込みを行うため、 -BBUのメリットの大半を失わせています。プログラムを -使うことで、あなたの環境が影響を受けるかどうかを確認できます。もし影響を受けるようであれば、 -ファイルシステムのwriteバリアを無効にするか、(オプションがあれば)ディスクコントローラを再設定することで、 -BBUによる性能上の効果を得ることできるでしょう。もしwriteバリアを無効にした場合は、バッテリが -動作していることを確認しておきましょう。バッテリの欠陥はデータロスの可能性に繋がります。 +最近のSATAドライブ(ATAPI-6またはそれ以降)はドライブキャッシュの書き出しコマンド(FLUSH CACHE EXT)を提供している一方、SCSIドライブでは従来から類似のSYNCHRONIZE CACHEコマンドをサポートしていました。 +これらのコマンドは、直接PostgreSQLに発行されませんが、いくつかのファイルシステム(例えばZFSext4)では、それらをwrite-backが有効なドライブへデータを書き出すために使います。 +不幸なことに、このようなwriteバリアを持つファイルシステムは、バッテリバックアップ付き装置(BBU)のディスクコントローラと組み合わせた際に、好ましい動作をしません。 +このような処理の流れにおいて、同期コマンドはコントローラキャッシュにあるデータを全てディスクへ強制的に書き込みを行うため、BBUのメリットの大半を失わせています。 +プログラムを使うことで、あなたの環境が影響を受けるかどうかを確認できます。 +もし影響を受けるようであれば、ファイルシステムのwriteバリアを無効にするか、(オプションがあれば)ディスクコントローラを再設定することで、BBUによる性能上の効果を再び得ることができるでしょう。 +もしwriteバリアを無効にした場合は、バッテリが動作していることを確認しておきましょう。バッテリの欠陥はデータロスの可能性に繋がります。 ファイルシステムやディスクコントローラの設計者が、いずれはこの動作を修正してくれることが望まれます。 @@ -1111,7 +1106,7 @@ WAL出力が大量に行われるシステムでは、XLogInsertRecord プログラムは、一つのWALフラッシュが必要とするマイクロ秒単位の平均時間を計測するために使用可能です。 プログラムが報告する単一の8kB書き込み操作のあとのフラッシュ平均時間の2分の1の値は、しばしばcommit_delayの最も効果的な設定です。 従って、この値は特定の作業負荷のための最適化を行うときに使用するための手始めとして推奨されます。 -WALが高遅延の回転ディスクに格納されているときは、commit_delayのチューニングは特に有効ですが、半導体ドライブまたはバッテリー・バックアップされている書き込みキャッシュ付きのRAIDアレーのような、特に同期時間が高速な格納メディア上であっても大きなメリットがある場合があります。 +WALが高遅延の回転ディスクに格納されているときは、commit_delayのチューニングは特に有効ですが、半導体ドライブまたはバッテリバックアップされている書き込みキャッシュ付きのRAIDアレイのような、特に同期時間が高速な格納メディア上であっても大きなメリットがある場合があります。 しかし、このことは、代表的作業負荷に対してきちんと検証しておくべきです。 commit_siblingsの高い値は、これらの状況で使用すべきで、一方より小さなcommit_siblingsの値は高遅延メディア上でしばしば有用です。 余りにも高い値のcommit_delayを設定すると、トランザクション遅延を増加させかねないことになり、トランザクションの総スループットが低下します。