如何查看我的应用每秒可处理的请求数量?

时间:2013-04-30 10:22:26

标签: ruby-on-rails performance request performance-testing newrelic

我创建了一个新的应用程序,我计划添加缓存,cdn和其他性能改进方法。我想检查当前的性能,并且在每种方法之后我想再次检查性能。 这是一个Rails应用程序。

我应该怎么做?有没有我可以用来检查这个的命令?我需要进行测试吗?怎么样? 从我所看到的情况来看,似乎新的遗物提供了大量的信息,但在我看来,这仅仅是关于实时数据,我想测试应用程序可以处理的最大值(例如之前和之后)执行上述更改)以及监控实时数据。

3 个答案:

答案 0 :(得分:6)

一种简单的方法是使用apache bench

ab -n 2000 -c 200 http://yourdomain.com/

其中n是要发出的请求数,c是要使用的客户端数。

您将收到类似

的报告
Document Path:          /
Document Length:        36153 bytes

Concurrency Level:      200
Time taken for tests:   4.544 seconds
Complete requests:      2000
Failed requests:        0
Write errors:           0
Total transferred:      72732000 bytes
HTML transferred:       72306000 bytes
Requests per second:    440.17 [#/sec] (mean)
Time per request:       454.366 [ms] (mean)
Time per request:       2.272 [ms] (mean, across all concurrent requests)
Transfer rate:          15632.19 [Kbytes/sec] received

Connection Times (ms)
          min  mean[+/-sd] median   max
Connect:       72   77  59.1     73    1075
Processing:   160  357  96.3    325     636
Waiting:       73  196  95.9    165     488
Total:        234  434 109.9    398    1340

Percentage of the requests served within a certain time (ms)
  50%    398
  66%    419
  75%    440
  80%    468
  90%    607
  95%    671
  98%    688
  99%    700
 100%   1340 (longest request)

答案 1 :(得分:1)

New Relic还允许您存储数据。根据您的帐户类型,您可以获得无限制的数据保留。标准类型帐户为您提供7天的数据保留期。这应该足以达到你的目的。

然后,您可以使用负载测试应用程序,例如jMeter或Apache bench。还有基于网络的工具,如blitz.io和Loadimpact。

答案 2 :(得分:1)

配置有点复杂,但我建议 jMeter 。 您可以在其中构建HTTP(或其他受支持的)请求,设置参数,标头。这样您就可以加载测试特定页面。 ab 对于静态页面可以是可靠的,但如果您的网站有数据库交互,您可能希望在负载测试中模拟这些用户交互。

JMeter User Manual

Jmeter Tutorial