免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8817 | 回复: 11
打印 上一主题 下一主题

postgre容量达到多少的时候可以考虑做集群了 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-28 16:29 |只看该作者 |倒序浏览
目前数据库文件已经逼近50G,用户反映系统时快时慢,CPU内存都正常.
vacuum analyze每周都会做的,但是系统还是时快时慢,
是不是到了只有做集群才能解决性能的结点了?
除了vacuum外,还有什么配置参数可以提高性能的?
各位大侠都是在容量到多少的时候做集群的?

论坛徽章:
0
2 [报告]
发表于 2009-07-31 15:08 |只看该作者
问题有所不同,查看机器性能的时候,发现内存和磁盘的占用都在100%.
在windows任务管理器里,有很多的pg进程,而且每个进程占用的内存从8,90M到几M不等,还有pgagent的进程占用了近100M的内存
初步怀疑是PG把服务器的内存耗尽了,从而去读写了虚拟内存(硬盘),造成服务器的内存和磁盘占用100%,系统反映慢,是不是重启PG会把内存释放出来,为什么PG不能自动释放内存呢?
postgresql.conf里的配置都是默认的,针对问题,哪些参数可以做下调整呢?

50G的数据库已经3个多月没有重启过,每周数据的增长在400M,vacuum analyze每周会做一次的.

论坛徽章:
0
3 [报告]
发表于 2009-07-31 16:39 |只看该作者
可能是有死锁的进程,你用下面的命令看看是什么结果

SELECT pg_stat_get_backend_pid(s.backendid) AS procpid,
       pg_stat_get_backend_activity(s.backendid) AS current_query
    FROM (SELECT pg_stat_get_backend_idset() AS backendid) AS s;

select locktype, database, relation, transactionid,pid,mode,granted from pg_locks;

论坛徽章:
5
荣誉会员
日期:2011-11-23 16:44:17CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-09-18 15:15:45未羊
日期:2014-02-25 14:37:19射手座
日期:2014-12-26 22:55:37
4 [报告]
发表于 2009-07-31 16:58 |只看该作者
肯定不是这个思路。什么时候慢?慢的时候系统什么消耗高?

论坛徽章:
0
5 [报告]
发表于 2009-08-01 06:46 |只看该作者
系统变慢时,应该看一下当前运行了那些sql,对比较慢的sql进行分析;分析当前锁的情况。

论坛徽章:
0
6 [报告]
发表于 2009-08-03 15:29 |只看该作者

回复 #3 galylee 的帖子

如果有死锁的话,sql会一直占用的,但是我在pg里看没有一直在执行的sql,都是执行完后,正常关闭了的.

同样的sql,以前执行只要2秒,现在要10秒,这是为什么,系统配置都没有改过,除了数据量每周增加400M,难道就这400M就会把PG拖的那么慢?

论坛徽章:
0
7 [报告]
发表于 2009-08-04 10:38 |只看该作者

回复 #6 XUB78 的帖子

你有reindex吗?你的数据量增长这么多,index会变大,需要reindex

另外默认的参数值比较保守,需要做一些修改
    尤其是 share buffer 设为内存的1/4
    effective_cache_size 设为你的系统有效缓存的大小
    checkpoint_segments的数量变大点,如设为15

论坛徽章:
0
8 [报告]
发表于 2009-08-04 13:54 |只看该作者

回复 #7 galylee 的帖子

effective_cache_size 设为你的系统有效缓存的大小
有效缓存指什么?比如系统内存是4G,这个值设多大合理呢?

论坛徽章:
0
9 [报告]
发表于 2009-08-04 15:45 |只看该作者

回复 #8 XUB78 的帖子

effective_cache_size为实际内存大小的1/2 到 3/4。你先设为2G

论坛徽章:
0
10 [报告]
发表于 2009-09-21 14:19 |只看该作者

回复 #8 XUB78 的帖子

通过修改系统参数是一个方法,另外你也应该做一次全面的分析。

你可以,收集一个星期的系统压力情况,看看系统平时都在做什么,检查什么时候CPU、内存、硬盘的压力出现峰值。
看看是由于什么原因导致系统变慢。

通常系统性能问题会出现在硬盘I/O上,最简单的解决方法就是多加一个独立的硬盘以存放WAL。
另外检查系统运行过程中哪些语句运行得最慢,看看能不能进行优化,有时候针对性地加几个index就可以解决问题了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP