我们刚刚在我们的 Web 应用程序上安装了性能监控,我们看到来自 Postgres 8.4 服务器的响应时间出现了尖峰模式。峰值对应于我们的网络应用程序的显着放缓。时间似乎主要在“Postgres commit”中占用:
我们在带有 EBS 的 Amazon EC2 c1.xlarge 实例上自托管 Ubuntu 10.04 上的 Postgres 8.4.3,基本上具有库存设置。是的,我知道 EBS 上的 Postgres 可能不是最好的设置。我们计划在今年晚些时候在 RDS 上迁移到更新的 Postgres DB。
与此同时,有什么明显的东西我应该看一下可以驯服这个尖刺的模式吗?
很难说出你的图表到底在说什么。但是
commit
设计得很慢。默认情况下,Postgres在返回之前等待更改写入磁盘commit
。您可以
commit
使用此选项在将更改写入磁盘之前完成:这肯定有助于分散
commit
更多时间所需的磁盘 I/O。缺点是服务器中断可能导致已完成的事务丢失。