New automatic concurrency defaults for PHP applications

Change effective on 04 February 2015

Applications on Heroku using the PHP or HHVM runtimes now automatically adjust the number of worker processes/threads spawned at dyno boot time by taking into account the configured memory limit of the application and the memory available to the respective dyno size.

In practice, this means that e.g. changing the memory limit from 128 MB to 64 MB will automatically result in a doubling of the number of PHP-FPM processes or HHVM threads, and scaling from a “1X” to a “2X” dyno size would in turn again double the number of processes or threads.

This automatic setting can be overridden at any time using the WEB_CONCURRENCY environment variable.

A new Dev Center article on optimizing PHP application concurrency contains further information and helpful hints for getting the best performance out of every dyno.