envoyproxy/envoy

Memory utilization can grow significantly when struct fields are used for configuration of Envoy components

Open

#5.965 geöffnet am 15. Feb. 2019

Auf GitHub ansehen
 (2 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)C++ (5.373 Forks)batch import
help wantedtech debt

Repository-Metriken

Stars
 (27.997 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 8T) (378 gemergte PRs in 30 T)

Beschreibung

Title: Memory utilization can grow significantly when struct fields are used for configuration of Envoy components.

Description: In my test bootstrap config with http_connection_manager configuration in "config" field with 50K virtual hosts uses ~1807MB. The same configuration, but put in "typed_config" results in 292MB. This is due to maps being created to represent struct fields during reflection in MessageUtil::checkForDeprecation call.

[optional Relevant Links:] Test that uses "typed_config" for http_connection_manager configuration: https://github.com/dmitri-d/envoy/blob/b6b2a9cff293a1bd97166e742091900fa36ce388/test/integration/rds_memory_stats_test.cc Similar to the test above, but uses "config", which is a struct field: https://github.com/dmitri-d/envoy/blob/rds-memory-stats/test/integration/rds_memory_stats_test.cc

Contributor Guide