Postgresql
將 shared_buffers 設置為超過 320 MB 會阻止 Postgres 重新啟動
我在具有 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。
每個緩衝區為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 年前發布。