Skip Navigation
Show nav
Heroku Dev Center
  • Get Started
  • Documentation
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
  • Documentation
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up
View categories

Categories

  • Heroku Architecture
    • Dynos (app containers)
    • Stacks (operating system images)
    • Networking & DNS
    • Platform Policies
    • Platform Principles
  • Command Line
  • Deployment
    • Deploying with Git
    • Deploying with Docker
    • Deployment Integrations
  • Continuous Delivery
    • Continuous Integration
  • Language Support
    • Node.js
    • Ruby
      • Working with Bundler
      • Rails Support
    • Python
      • Background Jobs in Python
      • Working with Django
    • Java
      • Working with Maven
      • Java Database Operations
      • Working with Spring Boot
      • Java Advanced Topics
    • PHP
    • Go
      • Go Dependency Management
    • Scala
    • Clojure
  • Databases & Data Management
    • Heroku Postgres
      • Postgres Basics
      • Postgres Getting Started
      • Postgres Performance
      • Postgres Data Transfer & Preservation
      • Postgres Availability
      • Postgres Special Topics
    • Heroku Data For Redis
    • Apache Kafka on Heroku
    • Other Data Stores
  • Monitoring & Metrics
    • Logging
  • App Performance
  • Add-ons
    • All Add-ons
  • Collaboration
  • Security
    • App Security
    • Identities & Authentication
    • Compliance
  • Heroku Enterprise
    • Private Spaces
      • Infrastructure Networking
    • Enterprise Accounts
    • Enterprise Teams
    • Heroku Connect (Salesforce sync)
      • Heroku Connect Administration
      • Heroku Connect Reference
      • Heroku Connect Troubleshooting
    • Single Sign-on (SSO)
  • Patterns & Best Practices
  • Extending Heroku
    • Platform API
    • App Webhooks
    • Heroku Labs
    • Building Add-ons
      • Add-on Development Tasks
      • Add-on APIs
      • Add-on Guidelines & Requirements
    • Building CLI Plugins
    • Developing Buildpacks
    • Dev Center
  • Accounts & Billing
  • Troubleshooting & Support
  • Integrating with Salesforce
  • Heroku Architecture
  • Dynos (app containers)
  • Dyno Types

Dyno Types

English — 日本語に切り替える

Last updated February 06, 2023

Table of Contents

  • Dyno Feature Support
  • Default Scaling Limits
  • Dyno Tiers and Mixing Dyno Types
  • Setting Dyno Types

Heroku offers a variety of dyno types to support apps of all sizes, from small-scale projects to high-traffic production services.

Memory, CPU share, and other differentiating characteristics for each Common Runtime dyno type are listed below:

Spec Eco Basic Standard-1X Standard-2X Performance-M Performance-L
Memory (RAM) 512 MB 512 MB 512 MB 1024 MB 2.5 GB 14 GB
CPU Share 1x 1x 1x 2x 100% 100%
Compute 1x-4x 1x-4x 1x-4x 4x-8x 12x 50x
Sleeps ✔
Dedicated ✔ ✔

These figures show expected performance based on 99 percent of historical system loads. The performance of apps running on eco, basic, and standard dyno types can vary based on available system resources, as well as limits in your account. Your app’s performance can also vary significantly based on its implementation.

Heroku prorates costs to the second. You can scale down your dynos when they’re not in use. For information about pricing, see Usage & Billing.

Using eco dynos requires a subscription to Eco. Your usage is tracked to the second and consumes from a pool of 1000 dyno hours shared by all eco dynos in your account. See Eco Dyno Hours for more info.

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

Feature Eco Basic Standard-1X Standard-2X Performance-M Performance-L
Deploy with Git or Docker ✔ ✔ ✔ ✔ ✔ ✔
Custom Domain Support ✔ ✔ ✔ ✔ ✔ ✔
Pipelines ✔ ✔ ✔ ✔ ✔ ✔
Automatic OS patching ✔ ✔ ✔ ✔ ✔ ✔
Regular and timely updates to language version support ✔ ✔ ✔ ✔ ✔ ✔
Free SSL and automated certificate management for TLS certs ✔ ✔ ✔ ✔ ✔
Application metrics ✔ ✔ ✔ ✔ ✔
Heroku Teams ✔ ✔ ✔ ✔ ✔
Horizontal scalability ✔ ✔ ✔ ✔
Preboot ✔ ✔ ✔ ✔
Language runtime metrics ✔ ✔ ✔ ✔
Autoscaling for web dynos ✔ ✔
Dedicated compute resources ✔ ✔

Default Scaling Limits

The following limits exist per app:

  • By default, applications are limited to 100 total dynos across all process types.
  • Apps running on eco or basic dynos can have only one dyno running per process type.
  • Apps running on eco dynos are limited to a maximum of two concurrently running dynos. For example, you can have one dyno running for your web process, and one dyno running for worker.
  • 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

  • 1 eco one-off dyno (eco requires a subscription to the Eco dynos plan)
  • Up to 50 concurrent one-off basic 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

Access to performance-m and performance-l dynos is limited to customers with an established payment history

Submit a request to raise this limit for your application.

Dyno Tiers and Mixing Dyno Types

Dyno types are classified into different tiers.

  • Eco tier: An app that uses eco dynos can only use eco dynos for all of its process types.
  • Basic tier: An app that uses basic dynos can only use basic dynos for all of its process types.
  • Professional tier: An apps that uses Professional-tier dynos (standard and performance) can use different Professional-tier dyno types for its processes. For example, an app can run its web process type on performance-m dynos while running workers on standard-1x dynos.

Setting Dyno Types

Setting a new dyno type for a process restarts all affected dynos. If you’re resizing to a larger dyno type, check if you can scale down the number of dynos to optimize resource costs and consumption. See Optimizing Dyno Usage for guidance.

From the Heroku Dashboard

Change the Dyno Tier on Your App

You can choose your app’s dyno tier from the app’s Resources tab on the Heroku Dashboard:

  1. Click the app you want to modify from your apps list.
  2. Click the app’s Resources tab.
  3. Above your list of dynos, click Change Dyno Type.
  4. Choose the dyno tier to switch to: Eco, Basic, or Professional (Standard/Performance).
  5. Click Save.

Change the Dyno Type of Professional-Tier Dynos

To change between dyno types in the Professional tier:

  1. Complete the steps in the previous section to ensure the current dyno tier is set to Standard/Performance.
  2. Click the hexagon shape next to the process type you want to resize.
  3. Choose an option from the drop-down menu: Standard-1X, Standard-2X, Performance-M, or Performance-L.
  4. Click Confirm.

Scale the Number of Dynos

You can scale Professional-tier dynos from the Heroku Dashboard.

From the Heroku CLI

You can use the Heroku CLI to scale or resize the dynos for any process type.

Scale the Number of Dynos

The following command scales the number of web dynos to 3 and preserves the current dyno type.

$ heroku ps:scale web=3

You can’t run more than one eco or basic dyno per process. You can only scale the number of Professional-tier dynos to be larger than one.

Change the Dyno Type of a Process

The following command changes the worker dyno type to standard-2x and preserves the current number of dynos:

$ heroku ps:type worker=standard-2x

You can only choose from dyno types within the same dyno tier as the dynos for your other processes. For example, you can’t resize a worker tostandard-2x when you use eco for your web process. See Dyno Tiers and Mixing Dyno Types for more info.

Change the Dyno Type for All Processes

The following command changes the dyno type for all of an app’s process types to standard-1x and preserves the current number of dynos:

$ heroku ps:type standard-1x

View Your Processes’ Dyno Types

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)

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.

Keep reading

  • Dynos (app containers)

Feedback

Log in to submit feedback.

Scaling Your Dyno Formation Eco Dyno Hours

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Podcasts
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing

Subscribe to our monthly newsletter

Your email address:

  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Heroku Podcasts
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Facebook
  • Instagram
  • Github
  • LinkedIn
  • YouTube
Heroku is acompany

 © Salesforce.com

  • heroku.com
  • Terms of Service
  • Privacy
  • Cookies
  • Cookie Preferences