これまでの2回のチューニングでは、共有バッファとトランザクションログバッファの調整を取り上げました。この2つのチューニング項目はPostgreSQLのディスクI/Oを減らすために重要な役割を果たしています。そのため、これらの設定を適切に調整してあげることで性能を大きく改善(16クライアント時で48tpsから90tps)できました。 さて今回は、PostgreSQL 8.0から導入された「ライタープロセス」を取り上げたいと思います。 PostgreSQLでは共有バッファをディスクキャッシュとして使っています。このためデータの更新は共有バッファ上で行われるのみで、すぐにはハードディスクに書き込まれません。ですがこれは後で必ず書き込まなければならないデータです。共有バッファは「ページ」という8Kバイトの単位で管理されており、後でハードディスクに書き込まなければならないページのことを特に「ダーティ