【问题标题】:Number of Average Concurrent and Peak Concurrent Users for a Web ApplicationWeb应用的平均并发用户数和峰值并发用户数
【发布时间】:2012-01-25 04:24:27
【问题描述】:

我在 Mongrel 服务器上启动并运行了一个 RoR 2.1 Web 应用程序,现在我想计算该 Web 应用程序的平均并发用户数和峰值并发用户数。

有没有明确的方法来解决这个问题,或者我应该使用什么分析来计算这个?

我的应用程序的后端是 MySQL,我尝试在 Mysql 状态中查找 Threads_connectedThreads_created 的值。此值返回当前打开的连接数和为处理连接而创建的线程数。

这些值是否直接暗示当前连接用户的数量?如果不是,请提出计算这些值的方法。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 web-services web-applications concurrency


    【解决方案1】:

    MySQL 统计数据反映了连接到数据库的进程数量,因此如果您有 10 个 mongrel,您可能会看到 10 个(加上您连接到数据库的任何进程(脚本、守护进程、控制台会话等)) .这不会改变是否有 100 个用户在使用该站点或没有(除非您有扩展进程数量的东西)

    就用户数量而言,谷歌分析可以很好地了解这类事情或分析您自己的日志文件,具体取决于您需要的复杂程度。

    如果最终目标是确定您需要哪些服务器资源,则像 newrelic 或 union central 这样的服务非常好。

    【讨论】:

      【解决方案2】:

      你的并发用户数只能与你拥有的 mongrel 进程一样多,因为 Rails 是单线程的,除非你在配置应用程序时调用 threadsafe(但除非你真的理解其中的含义,否则你永远不应该这样做这样做)。

      【讨论】:

      • 那是并发请求,并不是完全一样的并发用户。如果你有 1000 个人,每个人每 30 秒加载一个页面,我认为这是 1000 个并发用户,但你可以用 10 个 mongrel 来处理这个问题(假设每个可以做 3 个请求/秒)
      • 并发用户假设有平均加载时间、用户将发出的平均请求量等信息,这些信息在问题中都不可用,他正在寻找 MySQL 上的线程,所以我猜他是寻找对他的机器的并发请求。
      • @FrederickCheung :那么你有什么建议来获得应用程序中并发用户的大致数字。是不是和号码一样。杂种进程?如何在给定时间获取混合进程的计数?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-11
      • 2012-11-15
      • 2015-05-06
      • 1970-01-01
      • 2013-04-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多