-
Notifications
You must be signed in to change notification settings - Fork 687
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Regression: Upgrading to version 1.13.0 Increased our CPU usage by almost 10x #3358
Comments
@RicardoNalesAmato Would it be possible for you to post the (possibly redacted) manifests of the ambassador resources in your cluster as well as the ambassador deployment itself? (That would greatly expedite our efforts to reproduce the issue.) |
@rhs Absolutely! To replicate the issue we just replace the image being used with
We have 31 Hosts across 3 namespaces (15 / 15 / 1). They all look like this (only the host changing):
We have 7 TLSContext across 3 namespaces (3 / 3 / 1) They all look like:
And we have 31 Mappings across 3 namespaces ( 15 / 15 / 1 ). Again all look pretty much the same:
Regarding the mappings, some do not use the Thanks for looking into this! |
Could you compare generated envoy config(http://127.0.0.1:8001/config_dump) between those 2 versions. They have added this feature here -> https://github.com/datawire/ambassador/blob/master/CHANGELOG.md#1120-march-08-2021 |
@vichaos we tried using that feature, but the port needs to match the one envoy is using. So if the port used in the request is 80, it doesn’t match 8080 which is we are currently using (default for security reasons), and does not work. We are thinking about changing the ports used by Envoy (to 80 and 443) to be able to use this feature. |
I’ll post the dump as soon as possible. |
@RicardoNalesAmato What does your Ambassador module config look like? Were you using |
@esmet our module is using the following options:
|
Good to know. Are you able to tell which process inside of the container is using the most CPU? I'm curious if its Envoy or the Ambassador configuration processing bits. |
@esmet these are the processes that are using the most CPU. And here is the difference between 1.12.2 and 1.13.0 (Only the image was changed in one of our testing environments) |
@RicardoNalesAmato It's a bit of a shot in the dark, but I have a candidate fix. Could you try running the following image and see if it helps any?: datawiredev/ambassador:6eda18fc337d |
@rhs absolutely, let me give it a try and get back to you |
@rhs your new version fixed it! On the left you can see when I deployed 1.13.0, then I reverted it back to 1.12.2. The new deployment was the image you provided me :) |
@RicardoNalesAmato Thanks, I will make sure that fix makes it into an upcoming release! FYI, if you can avoid using regular expressions in the host field of your mappings, there is an ambassador module option named |
This has been fixed in 1.13.1, which is now available. |
We're still seeing this in 1.13.1, reverting to 1.12.2 is currently underway. |
@vaustral Can you post the (possibly redacted) resources in your cluster so we can try to reproduce? |
Describe the bug
Going from version 1.12.2 to 1.13.0 increased our CPU usage (per pod) by almost 10x (from around 100-150m to 1500m)
To Reproduce
Steps to reproduce the behavior:
Expected behavior
CPU Usage will go up dramatically
Versions (please complete the following information):
Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.4", GitCommit:"e87da0bd6e03ec3fea7933c4b5263d151aafd07c", GitTreeState:"clean", BuildDate:"2021-02-21T20:23:45Z", GoVersion:"go1.15.8", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.9", GitCommit:"9dd794e454ac32d97cde41ae10be801ae98f75df", GitTreeState:"clean", BuildDate:"2021-03-18T01:00:06Z", GoVersion:"go1.15.8", Compiler:"gc", Platform:"linux/amd64"}
The text was updated successfully, but these errors were encountered: