標籤:
postgresql 設定檔最佳化
設定檔
預設的配置設定檔是儲存在/etc/postgresql/VERSION/main目錄下的postgresql.conf檔案
如果想查看參數修改是否生效,可以用psql串連到資料庫後,用<show 選項名> 來查看。
如果要修改shared_buffers, 在ubuntu下可能需要執行命令<sysctl -w>Managing Kernel Resources
主要選項
選項預設值說明是否最佳化原因
max_connections100允許用戶端串連的最大數目否因為在測試的過程中,100個串連已經足夠
fsyncon強制把資料同步更新到磁碟是因為系統的IO壓力很大,為了更好的測試其他配置的影響,把改參數改為off
shared_buffers24MB決定有多少記憶體可以被PostgreSQL用於快取資料(推薦記憶體的1/4)是在IO壓力很大的情況下,提高該值可以減少IO
work_mem1MB使內部排序和一些複雜的查詢都在這個buffer中完成是有助提高排序等操作的速度,並且減低IO
effective_cache_size128MB最佳化器假設一個查詢可以用的最大記憶體,和shared_buffers無關(推薦記憶體的1/2)是設定稍大,最佳化器更傾向使用索引掃描而不是順序掃描
maintenance_work_mem16MB這裡定義的記憶體只是被VACUUM等耗費資源較多的命令調用時使用是把該值調大,能加快命令的執行
wal_buffer768kB日誌緩衝區的大小是可以降低IO,如果遇上比較多的並發短事務,應該和commit_delay一起用
checkpoint_segments3設定wal log的最大數量數(一個log的大小為16M)是預設的48M的緩衝是一個嚴重的瓶頸,基本上都要設定為10以上
checkpoint_completion_target0.5表示checkpoint的完成時間要在兩個checkpoint間隔時間的N%內完成是能降低平均寫入的開銷
commit_delay0事務提交後,日誌寫到wal log上到wal_buffer寫入到磁碟的時間間隔。需要配合commit_sibling是能夠一次寫入多個事務,減少IO,提高效能
commit_siblings5設定觸發commit_delay的並發事務數,根據並發事務多少來配置是減少IO,提高效能
postgresql 設定檔最佳化