升级后,Heroku Postgres DB速度较慢

时间:2013-07-15 18:36:57

标签: postgresql heroku

2天前,我将Heroku Postgres服务器从Kappa升级到Ronin。我们的数据库高达几GB,我认为额外的RAM将有助于缓存。我使用标准的快速交换技术(创建跟随者,允许转移,促进追随者)。我知道缓存可能需要一些时间来预热,但已经过了几天而且已经缓慢了。

我们较小的数据库运行响应时间约为5毫秒。传输后,新数据库跳转到大约10毫秒(冷缓存)。它已经在10毫秒到20毫秒之间波动。

  • 新数据库运行完全相同的版本(9.2.4)。
  • 我注意到有更多的日志记录(检查点)。
  • 来自旧DB的db cache hit / miss为~0.91,因此更新。新数据库已达到类似命中/未命中状态,因此我预计缓存的温度不再是问题。

是否有一些配置可能会有所不同?我知道每个应用程序都不同,但是缓存现在不应该变暖吗? Kappa& K之间是否有任何未记载的差异?罗宁?

由于

2 个答案:

答案 0 :(得分:4)

我之前见过这个,有一位客户打电话给我寻求紧急帮助。

在与heroku bash进行一些讨论之后,我们最终得出结论,新实例是在特别繁忙的底层服务器上。我们通过跟随者升级到另一台机器进行了故障转移,此时性能大大提高 - 尽管故障转移由于主机问题导致其自身具有挑战性。

据我所知,Heroku的实例是运行LXC容器的Amazon EC2节点(Xen VM),以隔离每个Heroku用户的数据库集群。与完整的VM相比,LXC提供的隔离度相对较低;实例可以争用RAM,磁盘I / O,CPU等,具体取决于使用OpenCZ配置的确切策略,任何控制组策略等。

如果您正处于其他用户没有做太多工作的实例上,并且如果容器允许您的数据库使用当前其他用户不需要的资源,那么您可以轻松地看到稳定高于保证的性能。 / p>

我怀疑更大的heroku计划中的人更有可能实际使用您共享容器的系统资源。

如果您将促销故障转移到更大的实例,其中所有用户都在那里,因为他们确实需要更大机器提供的资源,您实际上可以获得更少的资源,因为每个人实际上都在使用他们的股。

令人沮丧的是,Heroku对运行其数据库的系统提供的可见性很低。很难说它们是如何在容器主机之间进行负载平衡,系统的底层负载是什么等等。

在评论@Forrest pointed out that Heroku have a useful page on their server details中,显示只有较低层是多租户,但较高层不是。这很容易解释这里观察到的性能损失,并且符合我上面的评论,即较低的计划允许Forrest从其他用户那里借用未使用的资源。

答案 1 :(得分:0)

我们刚迁移并发现同样缓慢。但是我没有得到关于支持的官方答复。我的用户在抱怨,此时我对Heroku非常失望。

相关问题