Lan*_*ard 97 ruby performance heroku
我创建了两个非常简单的Heroku应用程序来测试服务,但是当我第一次访问它时,通常需要几秒钟来加载页面:
我所做的就是创建一个简单的Sinatra应用程序并进行部署.我没有做任何事情来捣乱或测试Heroku服务器.我该怎么做才能缩短响应时间?它现在非常慢,我不知道从哪里开始.如果有帮助,项目的代码在github上.
cly*_*yfe 161
这样做是为了节省服务器资源.如果没有人使用您的应用程序,为什么要保持资源忙碌而不让真正需要使用它们的人?
如果您的应用程序有大量连续流量,则永远不会卸载.
有关于此的官方说明.
sev*_*een 14
您可能还想调查Heroku w/Varnish和Memcached上的缓存选项.这些是独立于动态的持久性.
例如,如果您有一个不变的主页,则可以通过向响应添加Cache-Control标头,在Varnish中长时间缓存该主页.然后,您的用户在他们想要"做某事"而不是他们到达之前不会遇到负载.
您应该查看 Tom Robinson 对“可扩展性:Heroku 是如何工作的?”的回答。在 Quora:http : //www.quora.com/Scalability/How-does-Heroku-work
Heroku 在许多不同的客户/应用程序之间划分服务器资源。您的应用程序被分配了计算能力块。Heroku 分区基于资源需求。当您有一个需要更多功能的流行应用程序时,您可以为更多的“dynos”(应用程序容器)付费,然后作为回报获得更大的一块蛋糕。
但是,在您的情况下,您正在运行一个免费应用程序,很少有人 - 如果您以外的人 - 正在访问/使用。因此,Heroku 通过卸载您的应用程序来减少您获得的资源——本质上是将它置于休眠状态——直到有一个请求发送到您的地址。如果发生这种情况,并且您的应用程序已闲置很长时间,则重新加载需要时间。
如果重新加载时间很重要,请添加 1 个额外的 dyno 以防止您的应用进入睡眠状态。