envoyproxy / envoy

Cloud-native high-performance edge/middle/service proxy
https://www.envoyproxy.io
Apache License 2.0
24.75k stars 4.75k forks source link

FAQ for default settings for safety, benchmarking, etc. #5348

Open htuch opened 5 years ago

htuch commented 5 years ago

Envoy has default settings that can surprise new users and hurt Envoy's perceived performance in benchmarks. For example, I think at the Pinterest EnvoyCon talk (@derekargueta) mentioned the default circuit breaker settings limiting the number of concurrent requests.

We've had reports from folks who have compared Envoy's performance with other proxies using default settings and found it underwhelming. We know that horse race numbers can be significantly improved by disabling dynamic stats, etc.

Should we be making changes to default settings or (more likely) better capture best practices for Envoy production and benchmarking configuration?

htuch commented 5 years ago

CC @mattklein123

mattklein123 commented 5 years ago

IMO we should start with a FAQ entry. Also marking this as a docs item.

mattklein123 commented 5 years ago

@envoyproxy/maintainers let's use this issue to track creating very clear FAQ entries on key configurations for Envoy in different scenarios: 1) Benchmarking 2) Edge serving 3) ?

htuch commented 5 years ago

@mattklein123 could be good to add a belts-and-braces best practices, where we describe running Envoy in a configuration with maximum debug, asserts, ASAN etc. enabled.

mattklein123 commented 5 years ago

+1

mattklein123 commented 5 years ago

Another thing that come up here is the concept of "profiles" which would auto configure Envoy in various ways. For example "performance", "edge," etc. This can likely greatly simplify the default configuration knobs that folks want to tune.

mattklein123 commented 4 years ago

See https://github.com/envoyproxy/envoy/pull/8001