[心缘地方]同学录
首页 | 功能说明 | 站长通知 | 最近更新 | 编码查看转换 | 代码下载 | 常见问题及讨论 | 《深入解析ASP核心技术》 | 王小鸭自动发工资条VBA版
登录系统:用户名: 密码: 如果要讨论问题,请先注册。

[转帖]postgresql 記憶體優化(内存优化)

上一篇:[备忘]spring多环境配置方法
下一篇:[备忘]测试scheduleWithFixedDelay的代码

添加日期:2021/3/1 18:17:54 快速返回   返回列表 阅读870次
原文:http://myblog-maurice.blogspot.com/2011/12/postgresql_1627.html

PG的設定檔是資料庫 目錄下的postgresql.conf檔,8.0以後的版本可支援K,M,G這樣的參數,只要修改相應參數後重新開機PG服務就OK了。

   shared_buffers:這是最重要的參數,postgresql通過shared_buffers和內核和磁片打交道,因此應該儘量大,讓更多的資料緩存在shared_buffers中。通常設置為實際RAM的10%是合理的,比如50000(400M)
------------------另有这样的说法----
shared_buffers设置的合理范围
1.windows服务器有用范围是64MB到512MB,默认128MB
2.linux服务器建议设置为25%
----------------------
   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的關係。
 

评论 COMMENTS
没有评论 No Comments.

添加评论 Add new comment.
昵称 Name:
评论内容 Comment:
验证码(不区分大小写)
Validation Code:
(not case sensitive)
看不清?点这里换一张!(Change it here!)
 
评论由管理员查看后才能显示。the comment will be showed after it is checked by admin.
CopyRight © 心缘地方 2005-2999. All Rights Reserved