首页
学习
活动
专区
圈层
工具
发布

Profiling
EN

Database Administration用户
提问于 2013-07-24 14:43:22
回答 1查看 2.8K关注 0票数 3

我们有一个用Python2.7、Django、PostgreSQL 9.1和PostGIS 1.5构建的系统。在这个系统中,有一些广泛的验证过程,嗯,是密集的。

我们的机器:

所以: CentOS 6 HW: 8芯,32 HW内存,4Tb硬盘;

对于开发和测试,我们使用的是默认的PostgreSQL配置,我认为这有点错误。我想利用我们的硬件提供的全部能力,到目前为止,我们还没有得到很多流量。当它向公众发布时,将会有很多用户同时使用。

我们的应用程序有一些队列和异步策略来处理负载,但是,主要的问题是:我如何安全地调优PostgreSQL,运行一些测试,并确保调优在某种程度上是有效的?

EN

回答 1

Database Administration用户

发布于 2013-07-25 01:24:55

默认Pg配置几乎肯定不是最优的,这是一个保守的默认,旨在“将运行任何地方”而不是“将很快”。

关于这一点还有很多要说的,请参见http://wiki.postgresql.org/wiki/Tuning_你的_PostgreSQL_服务器http://wiki.postgresql.org/wiki/Performance_优化“PostgreSQL 9.0高性能”(格雷格·史密斯的)。(作为免责声明,我现在在2 nd象限与Greg合作,但在我搬到2 nd象限之前,我向他推荐了他的书)。

我不会重复那些参考文献中已经提到的内容。

我建议您运行pg_test_fsync以查看fsync()性能在I/O子系统上是否可以接受,因为这对于良好的传输处理吞吐量至关重要。对于阅读--大部分是工作负载--这并不重要。如果它很差,可以考虑获得一些高质量的SSD,并提供适当的内置电源故障保护,或者使用带有电池支持的写缓存的RAID控制器。相比之下,我的一台廉价的SSD笔记本电脑在pg_test_fsync中往往达到每秒5000次左右。

还可以使用sysbench来了解磁盘、seq和随机吞吐量是什么样的。当您调整random_page_sizeseq_page_size时,这将是非常有用的。

最重要的是,使用连接池喜欢PgBouncer,而不是把max_connections提高到几百以上。

票数 5
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/46928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档