Dyno Types
Last updated 30 September 2019
Heroku offers a variety of dyno types to support apps of all sizes, from hobbyist side projects to high-traffic production services. Memory, CPU share, and other differentiating characteristics for each Common Runtime dyno type are listed below:
| Dyno Type | Memory (RAM) | CPU Share | Compute | Dedicated | Sleeps |
|---|---|---|---|---|---|
| free | 512 MB | 1x | 1x-4x | no | yes |
| hobby | 512 MB | 1x | 1x-4x | no | no |
| standard-1x | 512 MB | 1x | 1x-4x | no | no |
| standard-2x | 1024 MB | 2x | 4x-8x | no | no |
| performance-m | 2.5 GB | 100% | 11x | yes | no |
| performance-l | 14 GB | 100% | 46x | yes | no |
These figures show expected performance based on 99 percent of historical system loads. The performance of apps running on free, hobby, and standard dyno types can vary somewhat based on available system resources. Note that your app’s performance can also vary significantly based on its implementation.
For information about pricing, see Usage & Billing.
Apps running in Private Spaces or Shield Private Spaces have different sets of available dyno types. See this article for information on these enterprise-specific dyno types.
Dyno feature support
All dyno types support the following features:
- Deploying with Git and Docker
- Specifying custom domains
- Pipelines
- Automatic OS patching
- Regular and timely updates to language version support
Hobby-tier dynos and above also support the following:
- Free SSL and automated certificate management for TLS certs
- Application metrics
- Heroku Teams
Standard-tier dynos and above also support the following:
Performance-tier dynos also support the following:
- Autoscaling for web dynos
- Dedicated compute resources
Mixing dyno types
If an app uses free dynos, it can use only free dynos for all of its process types.
If an app uses hobby dynos, it can use only hobby dynos for all of its process types.
Apps that use standard and performance dynos can use different dyno types for different process types. For example, an app can run its web process type on performance-m dynos while running workers on standard-1x dynos.
Default scaling limits
Apps running on free or hobby dynos can have only one dyno running per process type. Additionally, apps running on free dynos are limited to a maximum of two concurrently running dynos.
By default, applications are limited to 100 total dynos across all process types. Additionally, a single process type that uses performance dynos can’t be scaled to more than 10 dynos.
Submit a request to raise this limit for your application.
Concurrent one-off dyno limits
Unverified accounts
With an unverified account, the following limits exist per app:
- You can run 1
freeone-off dyno - You cannot create one-off
hobby,standardorperformancedynos
Verified accounts
With a verified account, the following limits exist per app:
- 1
freeone-off dyno - Up to 50 concurrent one-off
hobbydynos - Up to 50 concurrent one-off
standard-1xdynos - Up to 50 concurrent one-off
standard-2xdynos - Up to 5 concurrent one-off
performance-mdynos - Up to 5 concurrent one-off
performance-ldynos
Submit a request to raise this limit for your application.
Setting dyno types
Setting a new dyno type will restart all affected dynos.
From the Heroku CLI
You can use the Heroku CLI to scale or resize the dynos for any process type. The following command scales the number of web dynos to 3 (while preserving the current dyno type):
$ heroku ps:scale web=3
The following command changes the worker dyno type to standard-2x (while preserving the current scale):
$ heroku ps:type worker=standard-2x
The following command changes the dyno type for all of an app’s process types to standard-1x (again, while preserving the current scale):
$ heroku ps:type standard-1x
If you’re resizing to a larger dyno type, you might also want to scale down the number of dynos. See Optimizing Dyno Usage for guidance.
To view the current dyno type for each process type, use the ps command:
$ heroku ps
=== web (standard-2x): `bundle exec puma -C config/puma.rb`
web.1: up 2015/03/27 14:27:58 (~ 6h ago)
web.2: up 2015/03/27 14:47:04 (~ 6h ago)
web.3: up 2015/03/27 15:08:23 (~ 5h ago)
=== worker (standard-1x): `bundle exec rake worker:job`
worker.1: up 2015/03/27 14:39:04 (~ 6h ago)
worker.2: up 2015/03/27 15:08:24 (~ 5h ago)
worker.3: up 2015/03/27 14:30:55 (~ 6h ago)
From the Heroku Dashboard
You can scale and resize your app’s dynos from the app’s Resources page on the Heroku Dashboard:
- Select the app you want to modify from your apps list.
- Navigate to the app’s
Resourcestab. - Above your list of dynos, click
Change Dyno Type. - Select the dyno size you would like to switch to (Free, Hobby, or Standard/Performance).
- Click
Save.
To further resize Professional/Performance dynos:
- Complete the steps above to make sure the current dyno type is set to Standard/Performance.
- Click the hexagon shape next to the process type you want to resize.
- Choose an option from the drop-down menu (Standard-1X, Standard-2X, Performance-M or Performance-L).
- Click
Confirm.
Professional and Performance dyno types can also be scaled from the Heroku Dashboard.
Setting one-off dyno types
You can set the dyno type for memory-intensive one-off dynos. To learn more, see One-Off Dynos.
Scheduler
The Scheduler add-on uses one-off dynos, and as such it supports all one-off dyno types that your app can provision.