Benchmarking using wrk the smallest linode (1024 now 2048) serving a page from an untuned Rails application using nginx/passenger getting almost no other traffic. Hard to compare of course given the various other factors, but produced slightly lower performance after the upgrade. Serving a page from nginx directly (no Rails) had no appreciable difference in performance, I guess the Rails web serving is more vCPU bound?
Before Upgrade:
Running 30s test @ http://...
5 threads and 20 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 308.91ms 135.01ms 985.82ms 80.00%
Req/Sec 14.15 4.61 24.00 66.36%
2206 requests in 30.00s, 28.51MB read
Requests/sec: 73.53
Transfer/sec: 0.95MB
After Upgrade:
Running 30s test @ http://..
5 threads and 20 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 321.74ms 102.45ms 957.74ms 87.32%
Req/Sec 12.02 2.18 17.00 80.75%
1858 requests in 30.01s, 24.03MB read
Requests/sec: 61.92
Transfer/sec: 819.98KB
Yeah, you went from 8 vCPU Cores to 2 vCPU Cores on that plan as part of the upgrade. It seems the processor upgrade makes up for that decrease a little bit, but it is a decrease.
It depends on the task. If your Rails app hits the database a lot, memory availability and disk speed will matter a lot, which favors the new Linode style. If your app just does one small query per page and then gets on with its work, then probably CPU is your most important thing (since most of your time will be spent on app logic, runtime housekeeping and rendering templates).
Before Upgrade:
After Upgrade: