今天,我们计划将我们的服务器从本地 VPS 托管服务转移到按需风暴。迁移的原因是 SoD 有非常令人印象深刻的 VPS:es 可用,我们希望将我们的数据库服务器放在具有出色 I/O 的服务器上。在 Storm on Demand 服务器上测试一些请求时,我们会得到明显更长的请求处理时间。
我们预计会有延迟,因为服务器位于美国而我们位于欧洲,但惊讶地发现我们在 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)
Storm on Demand 设置
64 核 256GB RAM 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 秒。这使得旧服务器的速度是新服务器的两倍,而 production.log 显示的速度是新服务器的十倍。
部署的应用程序在两台服务器上都有相同的设置,还有哪些其他因素可能会影响测量结果?