今日、サーバーをローカルの VPS ホスティング サービスからストーム オン デマンドに移行する予定です。移行の理由は、SoD には非常に優れた VPS:es が利用可能であり、優れた I/O を備えたサーバーにデータベースサーバーを配置したいからです。ストーム オンデマンド サーバーでいくつかのリクエストをテストすると、リクエストの処理時間が大幅に長くなります。
サーバーは米国にあり、私たちはヨーロッパにあるため、遅延を予想していましたが、production.log で測定時間が非常に長くなったことに驚きました。
本番ログからの出力例を次に示します。
古いセットアップ
1 CPU コア 4 GB RAM 100 GB、RAID-10 * SAS 15.000 RPM
PostgreSQL 9.1.5、レール 3.2.5、ルビー 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 コア 256 GB RAM 750 GB SSD、RAID 10 SSD
PostgreSQL 9.2.1、レール 3.2.9、ルビー 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 秒かかります。これにより、product.log が示した 10 倍の速度と比較して、古いサーバーは新しいサーバーの 2 倍の速度になります。
デプロイされたアプリケーションは両方のサーバーで同じ設定になっていますが、測定に影響を与える可能性のある他の要因は何ですか?