18

我想在 Heroku 上托管一个静态网站,但不确定从多少 dyno 开始。

它在此页面上说:https ://devcenter.heroku.com/articles/dyno-requests dyno 可以服务的请求数量取决于所使用的语言和框架。但我也在某处读到 1 dyno 一次只能处理一个请求。

这里有点困惑,1 个网络测功机是否足以托管一个流量非常小的静态网站(<1000 次浏览/月,<10/小时)?随着流量开始增加,您将如何估计测功机的额外使用?

希望我的问题措辞正确。非常感谢您的意见,在此先感谢!

4

3 回答 3

50

有点恼火,因为我删除了一个完全有效的答案,但这是另一个尝试。

Heroku dynos 是单线程的,因此它们能够一次处理一个请求。如果您有一个动态页面(php、ruby 等),那么您将查看页面在服务器上响应所需的时间,假设响应时间为 250 毫秒,那么单个测功机每秒可以处理 4 个请求。添加更多测功机会提高并发性而不是性能。因此,如果您有 2 个测功机,在这种情况下,您每秒可以处理 8 个请求。

由于您只是在谈论静态页面,因此它们的响应时间应该比这快得多。确定是否需要更多信息的最佳方法是查看 heroku 日志输出,看看是否有持续的“队列”值水平;这意味着测功机无法跟上,请求正在排队等待处理。

于 2012-05-12T15:55:12.840 回答
3

由于大多数HTTP 1.1 客户端在请求资源时会创建两个到 Web 服务器的 TCP 连接,我有一种预感,如果您启动两个 dyno,您会在单个客户端上看到更好的性能,因此客户端的流水线资源请求也可以流水线处理。

您必须决定是否值得为单个客户的(可能轻微的)性能改进而额外花钱。

如果您预计会有多个客户同时请求信息,那么您可能需要两个以上的测功机,以确保至少有一个可供其他客户使用。

于 2012-05-11T23:29:17.990 回答
3

在这种情况下,如果您使用一个测功机。第一个是免费的,第二个让您超过每月最低限额并开始触发成本。

但是,您还应该意识到,在 Heroku 上使用一个测功机,如果最近没有访问该应用程序,该应用程序将进入睡眠状态(我认为这大约是 30 分钟)。在这种情况下,再次唤醒可能需要 5-10 秒,并且会给您的用户带来非常缓慢的初始体验。

有一些网络服务会 ping 您的站点,测试它的响应并使其保持清醒。 http://www.wekkars.com/例如。

于 2014-06-27T18:21:21.693 回答