/envoy-client-sim

Experiment with client-side Envoy gRPC performance

Primary LanguageGo

A playground to experiment with how client-side Envoy config can affect the performance of gRPC applications.

Usage

All config options are exposed in the top level config.yml file. Adjust a config option, and then run bin/gen.rb to have the options take affect. You can also run bin/delay.sh to inject a latency of 100ms between Envoy and the backends (to simulate a real network).

Once you've generated the config, you can start the sim with docker-compose up. A grafana dashboard is exposed at localhost:3000, and Envoy's admin interface is available at localhost:9901.

For simplicity, containers are running using host networking (so beware of port collisions). Linux is required for the use of traffic control and cadvisor.