Skip to content

0.144.0

Compare
Choose a tag to compare
@shalako shalako released this 03 Feb 01:35
· 2621 commits to develop since this release

Performance Improvements in this Release

Here is a report demonstrating the performance improvements made in this release.

Performance Improvements: 0.143.0 vs 0.144.0

Notice in the third graph, titled "Headroom plot" that at 5s latency, throughput has increased from ~1000 requests per second to more than 3000 requests per second!

The report is generated using a Jupyter Notebook provided with our Routing Performance Release.

Raw results for the performance tests can be found in the following files:

The report can be regenerated from the test results by following instructions in the README for Routing Performance Release.

The tests were run against a standalone Gorouter and a static app running on a raw VM, not against a full Cloud Foundry deployment. The test environment was comprised of two deployments on AWS:

  • We use a modified cf-release manifest to deploy Gorouter and NATS only. Gorouter is run on our default VM type of c3.large.
  • Load was generated using the Routing Performance Release, which also includes the static backend, and a job that registers a configurable number of routes. The report above shows results of a test with one route in the routing table.

Release Enhancements

Enhancements that have improved performance of Gorouter throughput and latency

  • Gorouter now supports idle keepalive connections, and operators can control the maximum idle connections details
  • Gorouter now uses Uber's Zap library for logging, instead of cloudfoundry/lager details
  • Dropsonde bumped from d802ac9 to 37777ab details
  • Copying of response from backend to client has been optimized in Gorouter details

Misc

  • Gorouter and Route-registrar jobs will now consume nats properties from BOSH via Links if provided
  • HAProxy in TCP Router has been upgraded to 1.5.19 and PCRE to 8.40 details
  • Manifest generation for routing release no longer fails when cf-release manifest does not contain properties.databases details
  • Gorouter can now be run in garden-runc containers details
  • Gorouter now logs status code of non-200 responses from route services details
  • Gorouter logs now contain messages start-pruning-routes and finished-pruning-routes instead of start-pruning-droplets and finished-pruning-droplets details
  • Route-registrar logs now contain the NATS server hostname and port for disconnected and reconnected events, and when NATS is unavailable on initial connect details
  • Removed unused blob for golang1.6 details

Updated Licenses and Notices

  • Updated LICENSE for routing-release details
  • Updated NOTICE for src/code.cloudfoundry.org/cf-routing-test-helpers details
  • Added NOTICE for src/code.cloudfoundry.org/cf-tcp-router details
  • Updated LICENSE for src/code.cloudfoundry.org/gorouter details
  • Added NOTICE for src/code.cloudfoundry.org/multierror details
  • Added NOTICE and updated LICENSE for src/code.cloudfoundry.org/route-registrar details
  • Added NOTICE and updated LICENSE for src/code.cloudfoundry.org/routing-acceptance-tests details
  • Updated NOTICE for src/code.cloudfoundry.org/routing-api details
  • Added NOTICE for src/code.cloudfoundry.org/routing-info details
  • Added NOTICE for src/code.cloudfoundry.org/tcp-emitter details
  • Added NOTICE for src/code.cloudfoundry.org/trace-logger details
  • Updated NOTICE for src/code.cloudfoundry.org/uaa-go-client details

Manifest Property Changes

gorouter

Note: Gorouter will now consume nats properties from BOSH via Links if provided

0.143.0 0.144.0 Default Value
did not exist router.max_idle_connections 0

route_registrar

Note: route_registrar will now consume nats properties from BOSH via Links if provided