Postgresql

docker 中 postgres 數據庫的 /dev/shm 大小建議

  • September 11, 2020

我們在 docker 容器中有 postgresql 11.7 數據庫。

我們遇到了一個問題"pq: could not resize shared memory segment "/PostgreSQL.XXX" to XXX bytes: No space left on device"在此處進行了描述。

解決方案有幫助,我們不再有問題了。但是我們應該為帶有 Postgres 的 docker 容器的 shm_size 設置哪個大小?

有什麼推薦嗎?我們如何計算 shm_size 的“最佳大小”?

有兩件事使用共享記憶體:

  • 在伺服器啟動時分配的共享記憶體。這由幾個部分組成,但最大的份額是shared_buffers數據記憶體。

因此,您必須擁有比這更多的共享記憶體。

  • 由並行查詢分配的共享記憶體段,用於在並行工作人員之間進行通信。

它們的大小取決於傳輸的數據,並且可以分配其中的幾個,因此這是一種更難控制的資源。

在記憶體受限的系統上,我建議您禁用並行查詢。它使查詢更快,但每個查詢使用更多資源,因此整體吞吐量沒有提高。如果您想在單個查詢上投入大量資源,這很好。

要禁用並行查詢,請設置max_parallel_workers為 0。

引用自:https://dba.stackexchange.com/questions/275378