Postgresql

為什麼更多的記憶體不一定會使 Postgres 的性能更高?

  • December 21, 2012

Postgres資源消耗文件狀態,位於shared_buffers

…分配超過 40% 的 RAM 給 shared_buffers 不太可能比較小的數量更好。

為什麼是這樣?我總是被告知伺服器擁有的 RAM 越多,Postgres 的性能就越好。不是shared_buffersPostgres 的典型記憶體設置嗎?如果我只在我的伺服器中分配 3GB 的 12GB(建議的 25% 起點)給shared_buffers,我在哪裡可以期望 Postgres 至少多利用 6GB?

事實上,effective_cache_size加上shared_buffers可以更恰當地被認為是典型的記憶體設置。保持shared_buffers低一點(例如,25%)很有用,因為 Postgres 也依賴於作業系統記憶體,這可能會導致 OP 中其他“6GB”RAM 的使用。

根據Postgres 官方“調整”頁面,設置effective_cache_size為總記憶體的一半被認為是保守的。但是,這不是記憶體分配,而是幫助 Postgres 根據可用內容計劃查詢的指南。

另請注意,稍微低估 Postgres 的資源可能會有所幫助,為未來的擴展留出一些喘息的空間。想像一下,您的 Postgres 伺服器經過優化,可以 100% 地利用您機器中的所有物理資源,然後您達到了伺服器的極限。在這一點上,您幾乎無法避免災難(例如,交換、極端性能下降等),因此當您需要一周的時間來升級伺服器時,留出一點迴旋餘地會派上用場。

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