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

Once more refactor arc_summary output #16404

Closed
wants to merge 2 commits into from
Closed

Conversation

amotin
Copy link
Member

@amotin amotin commented Aug 1, 2024

Before this arc_summary was not reporting any information about evictable ARC memory. As result I've found difficult to analyze behavior of dnode-heavy workload with lots of unevictable buffers.

This change adds evictable sizes into states breakdown section. While there, add/refactor sections for global memory statistics, for ARC breakdown between different structures, for data/metadata. Add information about memory reclamation requests.

While there, refactor and polish graph mode, neglected for a while.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Performance enhancement (non-breaking change which improves efficiency)
  • Code cleanup (non-breaking change which makes code smaller or more readable)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Library ABI change (libzfs, libzfs_core, libnvpair, libuutil and libzfsbootenv)
  • Documentation (a change to man pages or other documentation)

Checklist:

@amotin
Copy link
Member Author

amotin commented Aug 1, 2024

The new output looks like this:

ARC status:
        Total memory size:                                     255.8 GiB
        Min target size:                                3.1 %    8.0 GiB
        Max target size:                               99.6 %  254.8 GiB
        Target size (adaptive):                        16.5 %   47.1 GiB
        Current size:                                  16.5 %   42.1 GiB
        Free memory size:                                      173.4 GiB
        Available memory size:                                 168.1 GiB

ARC structal breakdown (current size):                          42.1 GiB
        Compressed size:                               64.8 %   27.3 GiB
        Overhead size:                                 14.1 %    5.9 GiB
        Bonus size:                                     4.2 %    1.8 GiB
        Dnode size:                                    10.3 %    4.3 GiB
        Dbuf size:                                      4.1 %    1.7 GiB
        Header size:                                    1.0 %  414.9 MiB
        L2 header size:                                 0.0 %    0 Bytes
        ABD chunk waste size:                           1.6 %  676.6 MiB

ARC types breakdown (compressed + overhead):                    33.2 GiB
        Data size:                                     81.0 %   26.9 GiB
        Metadata size:                                 19.0 %    6.3 GiB

ARC states breakdown (compressed + overhead):                   33.2 GiB
        Anonymous data size:                            0.0 %    0 Bytes
        Anonymous metadata size:                      < 0.1 %  128.0 KiB
        MFU data target:                               37.5 %   12.4 GiB
        MFU data size:                                 37.5 %   12.4 GiB
        MFU evictable data size:                       35.2 %   11.7 GiB
        MFU ghost data size:                                     0 Bytes
        MFU metadata target:                           12.5 %    4.1 GiB
        MFU metadata size:                             17.5 %    5.8 GiB
        MFU evictable metadata size:                    1.6 %  554.8 MiB
        MFU ghost metadata size:                                 0 Bytes
        MRU data target:                               37.5 %   12.4 GiB
        MRU data size:                                 43.5 %   14.4 GiB
        MRU evictable data size:                       40.5 %   13.4 GiB
        MRU ghost data size:                                     0 Bytes
        MRU metadata target:                           12.5 %    4.1 GiB
        MRU metadata size:                              1.5 %  501.8 MiB
        MRU evictable metadata size:                    1.1 %  382.6 MiB
        MRU ghost metadata size:                                 0 Bytes
        Uncached data size:                             0.0 %    0 Bytes
        Uncached metadata size:                         0.0 %    0 Bytes

and

      ARC: 42.1 GiB (16.5 %) Data: 26.9 GiB Meta: 6.3 GiB Dnode: 4.3 GiB
    +--------------------------------------------------------------------+
    |DDDDDDDMNO                                                          |
    +--------------------------------------------------------------------+

amotin added 2 commits August 2, 2024 15:05
Signed-off-by:	Alexander Motin <mav@FreeBSD.org>
Sponsored by:	iXsystems, Inc.
Before this arc_summary was not reporting any information about
evictable ARC memory.  As result I've found difficult to analyze
behavior of dnode-heavy workload with lots of unevictable buffers.

This change adds evictable sizes into states breakdown section.
While there, add/refactor sections for global memory statistics,
for ARC breakdown between different structures, for data/metadata.
Add information about memory reclamation requests.

While there, refactor and polish graph mode, neglected for a while.

Signed-off-by:	Alexander Motin <mav@FreeBSD.org>
Sponsored by:	iXsystems, Inc.
@tonyhutter
Copy link
Contributor

Merged as cdd53fe 1fdcb65

@tonyhutter tonyhutter closed this Aug 5, 2024
@amotin amotin deleted the arc_summ branch August 5, 2024 16:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants