Skip to content

Envoy proxy takes up a lot of RAM #438

@FlorianSW

Description

@FlorianSW

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions