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
      • Rails Support
      • Working with Bundler
    • Python
      • Background Jobs in Python
      • Working with Django
    • Java
      • Working with Maven
      • Java Database Operations
      • Working with the Play Framework
      • 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
  • Databases & Data Management
  • Heroku Postgres
  • Postgres Performance
  • Heroku Postgres Production Tier Technical Characterization

Heroku Postgres Production Tier Technical Characterization

English — 日本語に切り替える

Last updated December 15, 2022

Table of Contents

  • Performance Characteristics
  • Burstable vCPU Performance
  • Burstable Disk Performance
  • Architecture, vCPU, RAM, and I/O
  • Data Encryption
  • Technical Characterization of Databases Created Before January 17, 2018

The information in this document is subject to change as Heroku adapts the service to better handle customer database workloads.

Heroku Postgres plans offer different performance characteristics based on their CPU, RAM, and I/O architectures. This article provides a technical description of the implementation of Standard-tier and higher plans, along with important performance characteristics for each plan.

Performance Characteristics

The following table outlines Heroku Postgres Standard-tier and higher plans, along with relevant specifications about the underlying hardware:

Plan vCPU RAM PIOPs Burstable vCPU Connection Limit Disk Size Burstable Disk
standard-0 premium-0 private-0 shield-0 2 4 GB 200 yes, limited 120 64 GB no
standard-2 premium-2 private-2 shield-2 2 8 GB 750 no 400 256 GB no
standard-3 premium-3 private-3 shield-3 2 15.25 GB 1000 no 500 512 GB no
standard-4 premium-4 private-4 shield-4 4 30.5 GB 2000 no 500 768 GB no
standard-5 premium-5 private-5 shield-5 8 61 GB 4000 no 500 1 TB no
standard-6 premium-6 private-6 shield-6 16 122 GB 6000 no 500 1.5 TB no
standard-7 premium-7 private-7 shield-7 32 244 GB 9000 no 500 2 TB no
standard-8 premium-8 private-8 shield-8 64 488 GB 12000 no 500 3 TB no
standard-9 premium-9 private-9 shield-9 96 768 GB 16000 no 500 4 TB no

As of January 17, 2018, the performance characteristics of all plans except standard-0, premium-0, and private-0 have been updated. The previous technical characteristics are detailed here.

Run the pg:info command to check whether your Postgres database has an upgrade available:

$ heroku pg:info
=== HEROKU_POSTGRESQL_RED
Plan         Standard 4
Status       available
…
Improved Standard-4 Plans Available at the same price (2x RAM, 2x vCPU, 2x IOPS)
Learn More: https://blog.heroku.com/new-heroku-postgres-plans
Update Now: https://devcenter.heroku.com/articles/updating-heroku-postgres-databases

All Heroku Postgres plans aside from the Essential tier are single-tenant plans. A customer’s database and related management software are the sole residents of resources on the instance, offering more predictable performance. However, virtualized infrastructure is still subject to some resource contention, and minor performance variations are expected.

Burstable vCPU Performance

All Heroku Postgres plans come with a baseline level of performance, but standard-0, premium-0, private-0, and shield-0 plans are able to burst past that baseline. Unlike a multi-tenancy model, burstable performance plans allow each database to run in isolation as a single-tenant instance. This means that when your database is provisioned, no other customer is running on the same server. In the event that your database bursts for an extended time, it’s brought back to the original baseline level of performance. If a consistent level of performance is needed, a non-burstable Heroku Postgres plan provides fixed levels of performance.

The baseline level of performance is dictated by the plan type:

Plan Load Average
standard-0 premium-0 private-0 shield-0 0.2

Each of these plans can burst past these load averages for a short amount of time. If the database has a sustained load over those amounts, however, it’s brought back to the baseline. Load averages can be found in the Heroku Postgres Server metrics, which are part of your application’s logs.

Burstable Disk Performance

On standard-0, standard-2, premium-0, premium-2, private-0, private-2, shield-0, and shield-2 plans, disk performance is determined by the baseline PIOPS:

Plan PIOPS
standard-0 premium-0 private-0 shield-0 200
standard-2 premium-2 private-2 shield-2 750

Each of these plans can burst past this number of I/O operations per second for a short amount of time. If the database continues to more perform I/O operations per second, then performance is brought back to the baseline PIOPS, which can heavily impact database performance. Both read and write IOPS can be found in the Heroku Postgres Server metrics.

Architecture, vCPU, RAM, and I/O

All Heroku Postgres plans run on 64-bit architectures, ensuring both high performance for internal Postgres operations and interoperability with other features like Forks and Followers across all Standard-tier and higher plans.

vCPU indicates the number of virtual processors on the underlying instance. A larger vCPU count provides higher performance on the virtual server or instance.

RAM is the approximate amount of memory used for data caching. An in-depth discussion on Postgres caching can be found in Understanding Heroku Postgres Data Caching.

All instances are backed by EBS-optimized instances where EBS disks with provisioned IOPs are attached. PIOPs are a measure of how many I/O operations the underlying disks can perform per second. The number of IOPs provisioned for each plan determines its I/O throughput. On write-heavy applications, I/O can be a significant bottleneck, but on read-heavy ones, your hot dataset fits in RAM and can therefore perform well with lower IOPs values.

Data Encryption

All Standard-tier and higher plans are encrypted at rest with AES-256, block-level storage encryption. Keys are managed by Amazon, and individual volume keys are stable for the lifetime of the volume. You can find more detail about EBS encryption here. Heroku doesn’t encrypt anything for you at the Postgres level, so if you wish to encrypt, you can use the PGCrypto extension for your own encryption.

All backup files that are taken using Heroku PGBackups are stored in an encrypted S3 bucket in the US region.

Technical Characterization of Databases Created Before January 17, 2018

Heroku Postgres plans provisioned before January 17, 2018, had the following performance characteristics:

Plan vCPU RAM PIOPs Burstable Connection Limit Disk Size
standard-0 premium-0 private-0 2 4 GB 200 yes, limited 120 68 GB
standard-2 premium-2 private-2 2 8 GB 200 yes, limited 400 256 GB
standard-4 premium-4 private-4 shield-4 2 15.25 GB 1000 no 500 512 GB
standard-5 premium-5 private-5 shield-5 4 30.5 GB 2000 no 500 1 TB
standard-6 premium-6 private-6 shield-6 8 61 GB 3000 no 500 1 TB
standard-7 premium-7 private-7 shield-7 16 122 GB 4000 no 500 1 TB
standard-8 premium-8 private-8 shield-8 32 244 GB 4000 no 500 1 TB

Keep reading

  • Postgres Performance

Feedback

Log in to submit feedback.

Understanding Heroku Postgres Data Caching Increasing Performance of Large Tables on Heroku Postgres Using Partitioning

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