-
Notifications
You must be signed in to change notification settings - Fork 218
Description
Summary
When deploying an app with the route integrity feature enabled, the deployed envoy proxy takes up a lot more RAM as the documentation states, which can (and did in our deployment) result in a "crash" of the app container as CloudFoundry sees a higher memory usage as it was specified as the max value during the deployment.
Expected Result
The envoy proxy should not take up more memory than the described amount (as documented).
Actual Result
The app container gets restarted by CloudFoundry.
Context
I first asked in the diego support channel in slack and got routed here :)
We've an application, which is not doing so much stuff, which constatntly crashes (Out of Memory) when serving some hundreds of requests. We're sure (as we also checked it locally) that the app does not take up more than 100 MB memory.
The app container itself has 250 MB memory and the app still crashes. Our investigation showed, that not our app is taking up the memory, but the envoy reverse proxy.
All the information that are a result of our investigation are available in the following gist:
https://gist.github.com/FlorianSW/090046027fef348d410041e1137b7f4c
In order to reproduce the problem locally, I started a cfdev environment, enabled the TLS connection from the gorouter to the app instance container and run the same stress test (300 req/s with one app instance) again. However, this time, the app did not crash at all. While looking at the memory consumption of the envoy proxy, it does not go over 34 MB, which looks like the value one would expect when reading the diego-release documentation regarding the proxy.
The cfdev deployment version is 9.0.0
The deployed CloudFoundry version uses the cf-deployment 10.1.0 and did not change anything related to the reverse proxy feature, stated by a colleague of mine.