升级后Heroku Postgres DB较慢

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

我们较小的数据库运行大约5毫秒的响应时间。 转移后新的数据库跳到了大约10ms(冷藏)。 此后在10ms和20ms之间波动。

  • 新的数据库运行完全相同的版本(9.2.4)。
  • 我注意到有更多的日志发生(检查点)。
  • 来自旧数据库的数据库缓存命中/未命中是〜0.91,因此更新。 新的数据库已经达到了相似的命中率,所以我期望缓存的温暖不再是问题。
  • 有一些配置可能会有所不同吗? 我知道每个应用程序都是不同的,但缓存现在不应该升温吗? Kappa和Ronin之间有没有无证的区别?

    谢谢


    我以前见过这样的客户,他打电话给我一些紧急的帮助。

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

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

    如果您的实例中其他用户的用处不大,并且容器允许您的数据库使用其他用户当前不需要的资源,则您可以轻松看到稳定高于保证的性能。

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

    如果您将升级故障转移到所有用户都在那里的更大实例,因为他们确实需要更大型机器提供的资源,那么实际上可以整体获得更少的资源,因为每个人都实际使用他们的共享资源。

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

    在评论中,@Forrest指出Heroku在他们的服务器细节上有一个有用的页面,表明只有较低层的是多租户,但更高层不是。 这很容易解释这里观察到的性能损失,并且符合我上面的评论,下面的计划允许Forrest从其他用户借入未使用的资源。


    我们刚刚迁移并注意到同样缓慢。 然而,我没有得到支持的正式答案。 我的用户抱怨,我现在对Heroku很失望。

    链接地址: http://www.djcxy.com/p/79059.html

    上一篇: Heroku Postgres DB slower after upgrade

    下一篇: Rails App on Heroku Cannot Write to PostgreSQL Database, Only Read