Posted by Matt Soldo
Thousands of Heroku customers have already updated their apps to utilize 2X dynos since they entered public beta on April 5. By providing twice the memory and CPU share, 2X dynos help to improve app performance and efficiency.
2X Dynos enter General Availability today. Starting tomorrow, June 1, 2013, 2X dynos will be billed at the full $0.10 per hour rate.
Heroku customers have used 2X dynos to solve a number of problems:
1. Concurrency for Rails with Unicorn - Rails apps see significant performance improvements using Unicorn. In-dyno queuing allows requests to be served by any available worker. 2X dynos allow more workers per dyno, yielding better-than-linear performance improvements.
2. JVM Languages - The JVM has an explicit memory model designed for multi-threaded concurrency, and has many frameworks explicitly designed to take advantage of this property. Utilizing more threads requires more memory for both the thread stacks and for objects created by these threads. The JVM is fully capable of taking advantage of the vertical scale in a 2X dyno.
3. Memory-intensive background jobs - image processing, big-data crunching, and geospatial processing often need larger dynos. If your app experiences R14 out-of-memory errors, 2X dynos will provide increased head-room.
You can upgrade your app to 2X dynos via the Heroku Toolbelt:
$ heroku ps:resize web=2X worker=1X Resizing dynos and restarting specified processes... done web dynos now 2X ($0.10/dyno-hour) worker dynos now 1X ($0.05/dyno-hour)
If you’re looking to improve concurrency on Rails apps, making use of JVMs or other memory-hungry tasks, 2X dynos can make your app faster. Give them a try.