Postgresql

將 shared_buffers 設置為超過 320 MB 會阻止 Postgres 重新啟動

  • July 22, 2015

我在具有 4 GB RAM 的 CentOS 5 系統上執行 Postgres 8.1。每當我設置shared_buffers在 320 MB 以上時,它就不會執行。

我檢查過SHMMAX,它是 4294967295,這是 32 位/4 GB 系統允許的最大值。以下是其他一些與記憶體相關的設置:

max_connections = 225
shared_buffers = 327680
work_mem = 524288
max_fsm_pages = 500000
max_fsm_relations = 10000

關於什麼可以改善這一點的任何建議?

我猜只是一個誤會。給定數字的單位是(或緩衝區),而不是您假設的 1 kb。

引用手冊**shared_buffers**

每個緩衝區為8192 字節,除非在建構伺服器時選擇了不同的 BLCKSZ 值。

大膽強調我的。

SELECT pg_size_pretty(327680 *  8192::numeric);

pg_size_pretty
--------------
2560 MB

不是 320 MB。在現代 Postgres 中,首選帶有附加單元的語法:320MB,但我認為這在古代 Postgres 8.1 中還沒有實現。對於 320 MB,將 GUC 設置為:

shared_buffers = 40960

您是否考慮過安裝現代版本的 Postgres?(就像評論中暗示的那樣溫和)。Postgres 8.1 於 10 年前發布。

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