Possible optimization opportunity: set EVENT_BASE_FLAG_NOLOCK
#5.703 aberto em 24 de jan. de 2019
Métricas do repositório
- Stars
- (27.997 stars)
- Métricas de merge de PR
- (Mesclagem média 8d) (378 fundiu PRs em 30d)
Description
Possible optimization opportunity: set EVENT_BASE_FLAG_NOLOCK
Description: While looking for potential accuracy and throughput improvements for Nighthawk [1] (a load generator/benchmarking tool based on Envoy's libraries), observational data suggested that configuring libevent with EVENT_BASE_FLAG_NOLOCK would yield around 5% added troughput and about 1us lower reported latencies in the benchmarking client in max rps test runs.
Subsequently maxing out rps on an Envoy instance with the same patch applied [2] (which probably breaks a few things in its current form!) yields another improvement compared to a non-patched Envoy, which while not as pronounced as it was in Nighthawk, may still be worth exploring further, hence me filing this issue. If an audit of event usage would show this is low hanging fruit, incorporating a proper version of this patch may be little work and yield a quick win.
Links:
- [1] https://github.com/envoyproxy/envoy-perf/pull/31
- [2] Experimental hacky patch (leaks the libevent config, but that is not important for testing): https://gist.github.com/oschaaf/0b511c3036a5d21f046415f78ea88804