2天前,我将Heroku Postgres服务器从Kappa升级到Ronin。我们的数据库高达几GB,我认为额外的RAM将有助于缓存。我使用标准的快速交换技术(创建跟随者,允许转移,促进追随者)。我知道缓存可能需要一些时间来预热,但已经过了几天而且已经缓慢了。
我们较小的数据库运行响应时间约为5毫秒。传输后,新数据库跳转到大约10毫秒(冷缓存)。它已经在10毫秒到20毫秒之间波动。
是否有一些配置可能会有所不同?我知道每个应用程序都不同,但是缓存现在不应该变暖吗? Kappa& K之间是否有任何未记载的差异?罗宁?
由于
答案 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非常失望。