|||

Video Transcript

X

Container and Runtime Performance Improvements

Today we’re sharing three performance enhancements that we have recently rolled out to apps running in Private Spaces:

  • Dynos upgraded to the latest generation infrastructure for 10-15% perf improvement
  • More consistent performance for Small Private and Shield Space dynos
  • Optimized clock source selection

Heroku is a fully managed platform-as-a-service (PaaS) and we work tirelessly to continuously improve and enhance the experience of running apps on our platform. Unlike lower-level infrastructure-as-a-service systems, improvements are applied automatically to apps and databases and require no action or intervention from app developers to benefit.

That means that no action is required on your part to take advantage of the improved performance: Your app dynos have been switched out for upgraded and optimized ones by Heroku’s automated orchestration systems with no planning, maintenance or downtime for you or your apps. speed of dyno

New Infrastructure Generation

We have gradually upgraded the dyno-compute and networking that powers your apps to the latest generation available from our infrastructure provider. On average, CPU-bound apps should see at least a 10-15% performance improvement although details will vary with workload. Networking and other I/O is also greatly improved.

Consistent Performance for Small Private Space Dynos

The infrastructure powering private-s and shield-s dynos in Private and Shield Private Spaces has been upgraded to have more consistent performance. To give customers the best balance of cost and performance these dyno types previously ran on burstable infrastructure that throttled under heavy load. This behavior was not intuitive and we’re happy to report that now even small dynos in Private Spaces run all-out 100% of the time.

Clocksource Now tsc and kvm-clock

“What time is it?” is something a computer program asks the operating system surprisingly often. Time and date is required to timestamp log lines, trace code performance or to fill in the CREATED_AT column for a database record. And for the operating system, VM and hardware it’s actually not that simple to provide an exact answer quickly. Most systems have several components (“clocksources”) that the operating system can use to help keep track of time and they come with different tradeoffs in terms of accuracy and performance.

Based on user-feedback and after careful testing and validation Heroku recently optimized clocksource selection on our infrastructure to use tsc and kvm-clock. Some customers that made heavy use of the system clock for request performance timing saw latency reductions of up to 50% after the change was introduced (apps that make less aggressive use of the system clock should not expect similar gains). Read Will Farrington’s post on the Engineering Blog for details on how we identified and implemented the clocksource enhancement for details.

Summary

The three performance improvements detailed in this blog post are great examples of the benefits of relying on a managed PaaS like Heroku rather than running apps directly on un-managed infrastructure that has to be laboriously maintained and updated. Because we operate at vast scale we can invest in validating infrastructure upgrades and in systems and processes that perform those upgrades seamlessly and with no downtime to the millions of apps running on Heroku.

Originally published: July 16, 2020

Browse the archives for news or all blogs Subscribe to the RSS feed for news or all blogs.