Skip to content
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

status: wasteful re-runs of analyzers leaders to large allocations #30200

Open
howardjohn opened this issue Jan 20, 2021 · 9 comments
Open

status: wasteful re-runs of analyzers leaders to large allocations #30200

howardjohn opened this issue Jan 20, 2021 · 9 comments
Labels
area/user experience lifecycle/automatically-closed Indicates a PR or issue that has been closed automatically. lifecycle/staleproof Indicates a PR or issue has been deemed to be immune from becoming stale and/or automatically closed

Comments

@howardjohn
Copy link
Member

istio.io/istio/pkg/config/schema/resource.(*schemaImpl).ValidateConfig is calling the validate function on telemetry Envoyfilter many many times, even though it doesn't ever change. As a result, a lot of allocations are made, since its not cheap to validate envoyfilter. This ends up accounting for 5% of all istiod allocations

@therealmitchconnors
Copy link
Contributor

Can you help me understand how this relates to status? Can you provide stack traces, profiles, or other examples of this behavior?

@howardjohn
Copy link
Member Author

It relates to status because the code only runs when status is enabled. This is the analysis. The Envoyfilters are not changing at all, so I am not sure why we are continuously running ValidateConfig on them - the result cannot change, so its just a huge waste of resources.

@jasonwzm
Copy link
Member

I think this is because we run ValidateConfig on each resource everytime with a resource change in the snapshot. That was built mostly to replicate istioctl validate in CI/CD. I think we can either remove the analyzer or disable the analyzer for in-cluster analysis.

@howardjohn
Copy link
Member Author

Sorry its not clear to me, what is the point of the status analyzer feature if its disabled? Doesn't that just mean the feature is not enabled?

@jasonwzm
Copy link
Member

@howardjohn
Copy link
Member Author

I see. It seems a bit of a workaround to disable the analyzers.. don't we already disable a lot of the for in-cluster analysis? We lose a lot of value if we just turn them all off, I am worried we are just turning them off and eventually will have none enabled, making the feature not worthwhile

@jasonwzm
Copy link
Member

The schema analyzer is not worthwhile running in cluster. So we should disable it anyway.

@jasonwzm jasonwzm self-assigned this Jan 21, 2021
@jasonwzm
Copy link
Member

Also disable analyzer for alpha and deprecated annotations.

@istio-policy-bot istio-policy-bot added the lifecycle/stale Indicates a PR or issue hasn't been manipulated by an Istio team member for a while label Apr 26, 2021
@howardjohn
Copy link
Member Author

howardjohn commented Apr 26, 2021 via email

@istio-policy-bot istio-policy-bot removed the lifecycle/stale Indicates a PR or issue hasn't been manipulated by an Istio team member for a while label Apr 26, 2021
@istio-policy-bot istio-policy-bot added the lifecycle/stale Indicates a PR or issue hasn't been manipulated by an Istio team member for a while label Jul 26, 2021
@istio-policy-bot istio-policy-bot added the lifecycle/automatically-closed Indicates a PR or issue that has been closed automatically. label Aug 10, 2021
@howardjohn howardjohn reopened this Aug 10, 2021
@howardjohn howardjohn added the lifecycle/staleproof Indicates a PR or issue has been deemed to be immune from becoming stale and/or automatically closed label Aug 10, 2021
@istio-policy-bot istio-policy-bot removed the lifecycle/stale Indicates a PR or issue hasn't been manipulated by an Istio team member for a while label Aug 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/user experience lifecycle/automatically-closed Indicates a PR or issue that has been closed automatically. lifecycle/staleproof Indicates a PR or issue has been deemed to be immune from becoming stale and/or automatically closed
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants