我已经在Heroku上部署了Rails应用程序。它获得了大量的流量,因此滞后了。我想:1)使应用程序运行更快,以及2)使其运行良好,以便该应用程序在任何给定的一天都可容纳大量流量。我了解了Heroku的“ dynos”功能,并有几个问题。这是关于什么是测功的Heroku解释器:
Heroku文档:
The containers used at Heroku are called “dynos.” Dynos are isolated, virtualized Linux containers that are designed to execute code based on a user-specified command. Your app can scale to any specified number of dynos based on its resource demands. Heroku’s container management capabilities provide you with an easy way to scale and manage the number, size, and type of dynos your app may need at any given time.
我的问题:
在此先感谢您的帮助!我是软件开发人员,可以将应用程序部署到虚拟平台上以使其投入生产-但是我对开发运营知之甚少。死了!
答案 0 :(得分:2)
首先,增加dyno计数不会使您的应用程序运行得更快。但是,它可以让您同时处理更多请求,这可能会使您加快应用程序的速度。随着请求的到来,您的应用程序必须执行您的代码并返回响应。如果您的应用程序已经在执行代码,则可能需要等待其他请求才能执行-这样就表现出“响应缓慢”。由于它是一个Rails应用程序,因此您确实要确保将Puma用作Web服务器,并且必须将其配置为使用多个进程(该进程的数量特定于您的应用程序-为此提供了指南)。
使您的应用程序尽可能快地运行,缓存等都有助于保持运行良好,这一点非常重要。此外,没有动态数字可以运行的测功机-这取决于您的流量模式。每秒更多的请求==更多的动态。
您可以选择垂直缩放,这样可以为您提供更多的CPU和更多的RAM,但会增加成本。
此外,除了增加的成本外,扩大规模没有真正的负面影响。不过,我经常看到扩大规模通常是不必要的。它解决了眼前的问题,但增加了成本。通常,优化代码,查询,缓存等是更好的方法。在这里使用NewRelic确实有帮助,因为这表明您在应用程序内部花费了时间。单个Dyno可以给您带来的性能会让您感到惊讶!