AWS Engineer Reports PostgreSQL Perf Halved by Linux 7.0, Fix May Not Be Easy
> Source: Hacker_News
Execute Primary Source
// Problem
Linux 7.0におけるカーネルのプリエンプションモードの制限が原因である。これによりロック保持者がプリエンプトされる頻度が高まり、PostgreSQLのユーザー空間におけるスピンスロック待ち時間が大幅に増加、スループットが半減した。
// Approach
カーネル側での修正は不透明であり、代替案としてPostgreSQL側でRestartable Sequences (RSEQ) 拡張を利用し、ロック保持者のプリエンプトによる影響を抑制する手法が提示されている。
// Result
Linux 7.0が安定版としてリリースされる際、PostgreSQL側でRSEQを活用した最適化が行われない限り、特定の環境下で大幅なパフォーマンス低下が継続する可能性がある。
Senior Engineer Insight
> カーネルのスケジューリング変更がアプリケーションの性能に直結する典型例だ。OSの進化に対し、RSEQのような低レイヤの拡張機能をアプリケーション側で適切に活用する適応力が不可欠となる。