我正准备推出一个我一直在努力的网站,并且正在与一些博主交流。该网站计划于下周上线,届时媒体将报道它。
但问题是,这是我第一次发布自己编写的代码。我以前创办过一家初创公司,但当时我的角色不是编程。我自学了编程来建立这个。我知道大型博客的典型流量模式是它们会给你带来大量读者,然后流量在第二天就消失了。
我担心流量会激增,因为这是我第一次这样做,我不知道会发生什么。我不想成为那些被覆盖并瘫痪的网站之一。到目前为止,我已经与少数人进行了测试,并没有造成任何问题。我
规格如下:
A. 使用 Heroku 免费托管(1 个测力计)
B. 该服务是一个使用 Ruby on Rails 构建的 Web 应用程序。
C. UI包括:
- 主页:关注人物和标签的 feed。没有做太多查询优化。
- 内容页面:完全利用外部 API 来提供内容。除了小型元数据外,我的服务器不提供任何内容。
有人能就此类问题提供建议吗?我应该运行多少台测功机?我怎么知道什么时候需要扩展?我应该期待什么,我该如何准备?谢谢!
答案1
这里最重要的是查看您的日志(heroku logs -t
)并在您的应用程序中安装 New Relic,因为 Heroku 没有提供自动扩展。
在您的日志中,以下行将是最重要的
2012-06-01T07:48:40+00:00 heroku[router]: GET yourdomain.com/ dyno=web.1 queue=0 wait=0ms service=162ms status=200 bytes=23441
具体来说,就是队列属性的值。如果这个数字开始增加,则意味着您当前的 dyno 级别无法跟上请求的数量,因此它们正在排队,这个数字可能会下降,但如果它处于持续的水平,那么是时候开始增加 dyno 的数量了。您可能需要增加到更高的数量来清除积压,然后再将其降低到比以前更高但低于清除积压所需的数量。
由于您的发布可能比电视广告更分散,因此您可能需要将测功机设置得较高,以便能够应对,而不是在发布后主动监控。New Relic 将在测功机选项卡上显示“积压日志”,它与队列值相同,因此如果您将网站单独放置一段时间,您需要查看它以了解其表现如何。您也可以使用 Progstr (https://addons.heroku.com/progstr) 插件会帮你监视日志,并通知你重要的事情(比如积压日志、超时等)
不要太害怕——我曾在 Heroku 上托管过网站,这些网站在黄金时段的电视广告之后使用率很高,有时甚至运行了近 50 个测功机,但由于不能长时间维持,最终只需要支付几美元的费用。
希望有所帮助。
答案2
我工作过的托管公司通常能够帮助您解决此类问题。如果您遇到高峰而又没有做好准备,这也会给他们带来麻烦,因为他们通常在一小群机器/服务器上托管大量客户。联系他们并询问他们可以为您提供哪些提示或指示可能是明智之举。我们能够将人们转移到不同的服务器,增加可用的内存,甚至将他们转移到他们自己的服务器(如果他们愿意为这项服务和更大的专用服务器付费)。因此,他们很有可能可以帮助您。祝您好运,希望这对您有所帮助。