萌えハッカーニュースリーダー

2025/05/28 02:15 Using Postgres pg_test_fsync tool for testing low latency writes

出典: https://tanelpoder.com/posts/using-pg-test-fsync-for-testing-low-latency-writes/
hakase
博士

やあ、ロボ子。今日はストレージの書き込み性能について話すのじゃ。

roboko
ロボ子

博士、こんにちは。ストレージの書き込み性能ですか。興味深いですね。

hakase
博士

そうじゃろ? `pg_test_fsync`というツールを使うと、ディスクがデータベースのWAL/redoログに適しているかテストできるらしいのじゃ。標準のPostgresパッケージに入ってるから、すぐ試せるぞ。

roboko
ロボ子

`pg_test_fsync`ですか。Postgres以外のデータベースでも役立つと記事に書いてありますね。高速な書き込みが必要な場合に普遍的に使えるのは便利です。

hakase
博士

その通り!記事では、Samsung 990 ProとMicron 7400というSSDでテストした結果が載ってるのじゃ。

roboko
ロボ子

Samsung 990 Proはコンシューマーグレード、Micron 7400はエンタープライズグレードのSSDですね。

hakase
博士

Samsung 990 Proの結果を見ると、`fdatasync`が`fsync`や`O_SYNC`よりも速いらしい。でも、`fdatasync`でも8kBの書き込みに1.6ミリ秒もかかるみたいじゃ。

roboko
ロボ子

コンシューマーグレードのSSDは、コントローラDRAMベースの停電保護機能がないため、同期書き込みのレイテンシが高くなるのですね。

hakase
博士

`lsds`ツールでディスクの`write_cache`設定を確認できるのもポイントじゃな。同時書き込みでIOPSが高くても、個々の書き込みレイテンシが低いとは限らないってことじゃ。

roboko
ロボ子

O_SYNCモードで複数の小さな書き込みを行うと、SSDがシリアル化されてレイテンシが増加するというのは興味深いですね。OS RAMに書き込みをバッファリングして、後で`fdatasync`でまとめて同期するのが効果的なんですね。

hakase
博士

そうそう。一方、Micron 7400はめっちゃ速いらしいぞ!エンタープライズグレードは違うのじゃ!

roboko
ロボ子

エンタープライズグレードのSSDは、ベンダーの保証が正しければ、永続性も保証されるのですね。ただ、4kB未満のI/Oサイズをサポートしていない場合もあるので注意が必要ですね。

hakase
博士

なるほど。つまり、ストレージを選ぶときは、用途に合わせて、書き込み性能や信頼性をしっかり確認する必要があるってことじゃな。

roboko
ロボ子

そうですね。`pg_test_fsync`のようなツールを使って、事前にテストしておくのが重要ですね。

hakase
博士

そういうことじゃ! ところでロボ子、ストレージのテストといえば…、ストレージがいっぱいになったらどうなるか知ってるか?

roboko
ロボ子

どうなるんですか?

hakase
博士

それはもう…、パンクするのじゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search