-
Notifications
You must be signed in to change notification settings - Fork 1.9k
add DMU prefetch efficiency ratio #14115
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
Conversation
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.
It generally makes sense to me. I just think that terminology is confusing. May be we could rename "Hit ratio"/"Miss ratio" into "Stream hit ratio"/"Stream miss ratio", and the new metrics I'd call "Read-ahead efficiency", or inverted it to "False prediction ratio".
Or even better, since last several days I am actually working on refactoring arc_access() and around it, I could collect more data to report "Number of prescient prefetches", "False prescient prefetch ratio", "Late prescient prefetch ratio", "Number of speculative prefetches", "False speculative prefetch ratio" and "Late speculative prefetch ratio". I think it would be more informative.
Done: #14123 . |
First, thanks for reviewing this small patch.
I like "Stream hit/miss ratio", while I would avoid using "read-ahead" in place of "prefetch" because it can be confusing to introduce a new term for what ZFS itself calls prefetch. That said, I am not sure if changing these names is useful at all as we can introduce issues for those grepping
I am all for more info, but I would avoid showing all these by default. Maybe they can be presented when using raw output with Just my 2c. |
I think both False and Late numbers are useful, since one means too much prefetch and another means not enough. |
Yeah, I can see the usefulness of these two values. Maybe this simpler patch, which does not depend on any ARC refactor, can be accepted as-is and backported to current 2.1.x releases, with your more comprehensive approach used for future releases where ARC refactor is merged. |
I am not exactly happy with comparing counters from two different subsystems. While now they may be pretty close, my PR unleashes them a bit, that is why I've added other more coherent ones. |
Sorry, I involuntarily deleted the changed files by syncing my branch with openzfs/master. If the patch is of any interest, I can open a new pull requests. Otherwise, let this be closed. Thanks. |
@shodanshok Please look on the above ^^^. |
@amotin The patch looks good, I'll try your branch on a test VM. Thank you so much for addressing this issue. |
Recent ARC commits added new statistic counters, such as iohits, uncached state, etc. Represent those. Also some of previously reported numbers were confusing or even made no sense. Cleanup and restructure existing reports. Reviewed-by: Ryan Moeller <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Alexander Motin <[email protected]> Sponsored by: iXsystems, Inc. Issue #14115 Issue #14123 Issue #14243 Closes #14320
Recent ARC commits added new statistic counters, such as iohits, uncached state, etc. Represent those. Also some of previously reported numbers were confusing or even made no sense. Cleanup and restructure existing reports. Reviewed-by: Ryan Moeller <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Alexander Motin <[email protected]> Sponsored by: iXsystems, Inc. Issue openzfs#14115 Issue openzfs#14123 Issue openzfs#14243 Closes openzfs#14320
arc_summary currently tracks two prefetch performance info:
This patch adds a key missing performance metric: how many of the prefetch-triggered I/O operations where effectively useful. It does that by computing the ratio between the values arcstats/demand_hit_predictive_prefetch and zfetchstats/io_issued
Signed-off-by: Gionatan Danti [email protected]
Motivation and Context
Description
How Has This Been Tested?
Types of changes
Checklist:
Signed-off-by
.