postgresql 性能
PG的配置文件是數據庫目錄下的postgresql.conf文件,8.0之後的版本可支持K,M,G這樣的參數,只要修改相應參數後從新啓動PG服務就OK了。
shared_buffers
:
這是最重要的參數,postgresql經過shared_buffers和內核和磁盤打交道,所以應該儘可能大,讓更多的數據緩存在shared_buffers中。一般設置爲實際RAM的10%是合理的,好比50000(400M)
work_mem
:
在pgsql 8.0以前叫作sort_mem。postgresql在執行排序操做時,會根據work_mem的大小決定是否將一個大的結果集拆分爲幾個小的和 work_mem查很少大小的臨時文件。顯然拆分的結果是下降了排序的速度。所以增長work_mem有助於提升排序的速度。一般設置爲實際RAM的2% -4%,根據須要排序結果集的大小而定,好比81920(80M)
effective_cache_size
:
是postgresql可以使用的最大緩存,這個數字對於獨立的pgsql服務器而言應該足夠大,好比4G的內存,能夠設置爲3.5G(437500)
maintence_work_mem
:
這裏定義的內存只是在CREATE INDEX, VACUUM等時用到,所以用到的頻率不高,可是每每這些指令消耗比較多的資源,所以應該儘快讓這些指令快速執行完畢:給maintence_work_mem大的內存,好比512M(524288)
max_connections
:
一般,max_connections的目的是防止max_connections * work_mem超出了實際內存大小。好比,若是將work_mem設置爲實際內存的2%大小,則在極端狀況下,若是有50個查詢都有排序要求,並且都使 用2%的內存,則會致使swap的產生,系統性能就會大大下降。固然,若是有4G的內存,同時出現50個如此大的查詢的概率應該是很小的。不過,要清楚 max_connections和work_mem的關係。
歡迎關注本站公眾號,獲取更多信息