Rails生产日志中的性能测量有多准确?

时间:2012-11-14 14:13:15

标签: ruby-on-rails ruby performance

今天我们计划将服务器从本地VPS托管服务转移到storm on demand。迁移的原因是SoD具有令人印象深刻的VPS:es availible,我们希望在具有出色I / O的服务器上安装我们的数据库服务器。在风暴点播服务器上测试一些请求时,我们获得了更高的请求处理时间。

我们预计延迟,因为服务器位于美国,我们位于欧洲,但我们惊讶地发现我们在production.log中获得了更高的测量时间。

以下是生产日志的一些示例输出:

旧设置

1个CPU核心 4GB RAM 100 GB,RAID-10 * SAS 15.000 RPM

PostgreSQL 9.1.5,Rails 3.2.5,Ruby 1.9.3p194

Started GET "/top_list" for 83.249.254.229 at 2012-11-14
10:43:15 +0100 Processing by UsersController#user_toplist as HTML Completed
200 OK in 16ms (Views: 0.5ms | ActiveRecord: 6.0ms)

按需设置风暴

64 CORES 256GB内存 750 GB SSD,RAID 10 SSD

PostgreSQL 9.2.1,Rails 3.2.9,Ruby 1.9.3p327

Started GET "/top_list" for 83.249.254.229 at
2012-11-14 11:26:37 +0100 Processing by UsersController#user_toplist as HTML
Completed 200 OK in 164ms (Views: 0.0ms | ActiveRecord: 114.9ms)

我们还尝试了一个简单的基准:

task :perf_top_list => :environment do
elapsed_time = Benchmark.realtime do
  500.times do
            users = TopRatingUsers.top_rating_users(20)
      end
end
puts elapsed_time

基本上这与上面显示的请求相同,而是作为rake任务执行。 rake任务在旧服务器上大约需要5秒,在新服务器上需要10秒。这使得旧服务器的速度是新服务器的两倍,而生产服务器指示的速度要快十倍。

部署的应用程序在两台服务器上都设置相同,其他因素可能会影响测量?

0 个答案:

没有答案