如何为此设置配置PostgreSQL?

时间:2015-11-29 10:24:27

标签: performance postgresql

我想调整我的PostgreSQL服务器,但即使在线阅读了一些教程后,我也无法从数据库中获得良好的性能。

我的服务器包含以下规格:

  • Windows Server 2012 R2 Datacenter
  • Intel CPU E5-2670 v2 @ 2.50 GHz
  • 64位操作系统
  • 512 GB RAM
  • PostgreSQL 9.3

我想将postgres用作以下任务的数据存储/聚合系统:

  • 从各种数据源(主要是平面文件)(100GB到1TB之间的卷)读取数据
  • 预处理/清理数据
  • 汇总数据
  • 将聚合或采样数据导入R或python进行建模
  • 仅限10个并发用户

这意味着,我并不关心以下事项:

  • 更新speads(我只批量加载数据)
  • 失败阻力(万一发生故障,我总是可以从输入文件中重新加载)

目前,加载速度很好,但创建索引和聚合数据需要很长时间,几乎不使用任何内存。

这是我目前的postgres.config:http://pastebin.com/KpSi2zSd

1 个答案:

答案 0 :(得分:1)

我认为这里显而易见的一步是大幅增加work_mem和maintenance_work_mem,精细细节是“多少”?

如果您可以控制一次运行多少聚合查询和/或索引创建,那么您可以非常积极地使用这些,但是您可能面临10个并发用户和30GB设置的风险服务器处于内存压力下。

为慢速运行的查询获取一些执行计划真的会让您受益,因为他们会告诉您,例如,“排序方法:外部合并磁盘”需要这么多内存,然后您可以调整设置同时密切关注服务器上的总内存使用情况。

我不排除你必须重新加载你的负载,以便自己进行最耗费资源的运行,同时减少资源密集型操作。

但是,我认为目前您缺少一些可以让您在内存分配上做出正确选择的硬指标。