Dyno Types
Last updated 17 August 2020
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% | 12x | yes | no |
performance-l | 14 GB | 100% | 50x | 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 only Production-tier dynos (standard
and performance
) can use different Production-tier dyno types for different process types as long as all the dyno types are available on the Production tier. 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
free
one-off dyno - You cannot create one-off
hobby
,standard
orperformance
dynos
Verified accounts
With a verified account, the following limits exist per app:
- 1
free
one-off dyno - Up to 50 concurrent one-off
hobby
dynos - Up to 50 concurrent one-off
standard-1x
dynos - Up to 50 concurrent one-off
standard-2x
dynos - Up to 5 concurrent one-off
performance-m
dynos - Up to 5 concurrent one-off
performance-l
dynos
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
Resources
tab. - 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.