What is an acceptable amount of Dyno load?

Issue

Dashboard Metrics displays Dyno Load, measured as "1m Load Average" and "1m Load Max". The method of taking these measurements is explained on our Dev Center (https://devcenter.heroku.com/articles/metrics#dyno-load), but this does not illustrate what you should expect my application to run at.

Resolution

Load average limits by dyno type

Dynos that consistently see a load average higher than this value will experience CPU contention:

Dyno Type Dedicated cores Load average
free n/a 1.0
hobby n/a 1.0
standard-1x n/a 1.0
standard-2x n/a 1.0
performance-m 1 1.0
performance-l 4 4.0

Dyno load explained

The dyno load metric is a count of tasks actively executing on the CPU as well as tasks waiting for a free CPU. If you only have one physical "dedicated" core and you have a load average of 2, that indicates that you are asking for more CPU resources than the machine has. Exceeding the indicated load average for a consistent stretch of time means that your application is having performance issues.

Note: IO tasks such as reading from disk or making network requests are not counted in dyno-load since they're not actively waiting on the CPU.

Decreasing dyno load

Many applications have a way to tune the number of threads or processes that their application is attempting to use. Different languages have different performance characteristics, for instance, Ruby and Python have a GVL/GIL that prevents concurrent execution of program code by multiple threads. In general, if you are above the listed load, you will want to decrease process and/or thread counts until your application is under the given value.

Physical core count

You can obtain the number of physical cores on a machine by running nproc in a heroku run session and dividing the number by two:

$ heroku run nproc --size=performance-l
8

In this case performance-l dynos have 4 physical cores. The value of nproc shows 8 since it includes hyperthreads.

Note: Physical CPU cores on non-performance dynos are shared across multiple applications and do not represent a dedicated resource to your application.

Ask on Stack Overflow

Engage with a community of passionate experts to get the answers you need

Ask on Stack Overflow

Heroku Support

Create a support ticket and our support experts will get back to you

Contact Heroku Support
Terms of Service Privacy Cookies © 2020 Salesforce.com