-
Notifications
You must be signed in to change notification settings - Fork 897
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
Use USS (unique set size) instead of PSS for all the things #16570
Conversation
2100ee9
to
76db86c
Compare
76db86c
to
14d890a
Compare
@gtanzillo @Fryguy this is now ready for review with the prior PR merged cc @dmetzger57 @NickLaMuro |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me ... any reason this can't go in?
@jrafanie does this address a specific bug or is this a general fix?
Good point, let me put a BZ link @carbonin |
14d890a
to
04c8995
Compare
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1479356 Why? USS is a more reliable mechanism for tracking workers with runaway memory growth. PSS is great, until the server process that forks new processes grows large. As each new worker is forked, it inherits a share of the large amount of the parent process' memory and therefore starts with a large PSS, possibly exceeding our limits before doing any work. USS only measures a process' private memory and is a better indicator when a process is responsible for allocating too much memory without freeing it.
04c8995
to
ef84a88
Compare
Checked commits jrafanie/manageiq@2d75877~...ef84a88 with ruby 2.3.3, rubocop 0.47.1, haml-lint 0.20.0, and yamllint 1.10.0 |
Use USS (unique set size) instead of PSS for all the things (cherry picked from commit eee0570) Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1527093
Gaprindashvili backport details:
|
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1479356
Builds on top of #16569 [MERGED]
The first bullet point should alleviate the false positives where a large server process was causing new forked workers to exceed PSS memory thresholds very quickly. If the server process grows over time, that's a separate problem. We shouldn't flag and kill workers that inherited a large shared memory, only ones that grow beyond the thresholds on their own.
For prior versions such as euwe and fine, we can accomplish a similar result by storing the USS in the existing PSS column: