5

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

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

4

3 回答 3

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)
于 2013-04-30T10:37:16.243 回答
1

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

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

于 2013-04-30T10:37:39.587 回答
1

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

JMeter 用户手册

Jmeter 教程

于 2013-04-30T11:07:08.527 回答