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

Reduce dirty records memory usage #16694

Merged
merged 1 commit into from
Nov 5, 2024
Merged

Commits on Oct 31, 2024

  1. Reduce dirty records memory usage

    Small block workloads may use a very large number of dirty records.
    During simple block cloning test due to BRT still using 4KB blocks
    I can easily see up to 2.5M of those used.  Before this change
    dbuf_dirty_record_t structures representing them were allocated via
    kmem_zalloc(), that rounded their size up to 512 bytes.
    
    Introduction of specialized kmem cache allows to reduce the size
    from 512 to 408 bytes.  Additionally, since override and raw params
    in dirty records are mutually exclusive, puting them into a union
    allows to reduce structure size down to 368 bytes, increasing the
    saving to 28%, that can be a 0.5GB or more of RAM.
    
    Signed-off-by:	Alexander Motin <[email protected]>
    Sponsored by:	iXsystems, Inc.
    amotin committed Oct 31, 2024
    Configuration menu
    Copy the full SHA
    fa144d9 View commit details
    Browse the repository at this point in the history