【问题标题】:How can you predict your rails project system usage?您如何预测您的 Rails 项目系统使用情况?
【发布时间】:2014-02-02 17:45:48
【问题描述】:

有没有办法计算运行我的 rails 应用程序的系统要求? (= 每月费用)

我主要对 Heroku 或 Digital Ocean 感兴趣。

【问题讨论】:

  • 你能预测你会得到多少用户吗?
  • 我有大量的用户,并且知道在什么时间段内窥视。但是,我不是在寻找关于这个特定项目的计算,而是在寻找一个通用公式(不一定要精确,无论如何托管都包含在包中)。
  • 在这种情况下,我建议进行一些性能测试并测量您的应用程序需要哪些资源。这里的任何其他答案都是纯粹的猜测。

标签: ruby-on-rails ruby heroku digital-ocean


【解决方案1】:

我会提出两种方法: 这是简单但不太准确的方法: 1. 在http://httpd.apache.org/docs/2.2/programs/ab.html 下载 Apache 2. 在 5 美元或免费试用的 Digital Ocean droplet 上安装您的应用程序。 3. 在这样动态生成的页面上用估计的用户量运行ab

    ab -n 10 -c 20 http://www.yourdigitaloceanserver.com/hugeerbfromdatabase

其中“n”代表您对“c”个并发用户(在本例中为 20 个)执行的请求数量。然后你拿测试结果,看看你对速度是否满意。如果没有,您需要更大的服务器。

肯定没有一定的规则,因为您的应用程序的性能取决于多种因素,例如并发性、独角兽作品(或其他 Web 服务器)的数量、数据库查询、缓存或不缓存、使用 redis 或 memcached 等等(我可以写一本关于它的书)。

另一种方法可能更准确。使用 mechanize 之类的工具并创建一个线程应用程序,该应用程序在您的站点上执行您希望用户执行的操作并测量响应时间。由于您可以动态扩展 Digital Ocean 实例,因此您可以让它随着流量的增长而增长。

如果您还没有准备就绪的应用程序,只需在 droplet 上安装 Ruby on Rails 并做一个简单的操作:

    rails new mytestapp
    cd mytestapp
    rails g scaffold things name 
    rake db:migrate
    rails c
    100.times do
       Thing.create!(name: "lorem ipsum")
    end
    exit
    rails s

现在从不同的 shell 或计算机上运行:

    ab -n 10 -c 20 http://www.yourdigitaloceanserver.com:3000/things

然后您就会对性能有所了解。您也可以尝试其他服务器,例如 puma 等。 祝你好运

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多