Re: Question on the xfs inode slab memory

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Seems the auto-wraping issue is on my gmail.... using thunderbird should be better...

Resend the slabinfo and meminfo output here:

Linux # cat /proc/slabinfo
slabinfo - version: 2.1
# name            <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata <active_slabs> <num_slabs> <sharedavail>
nf_conntrack       15716  20349    320   51    4 : tunables    0    0    0 : slabdata    399    399      0
au_finfo               0      0    192   42    2 : tunables    0    0    0 : slabdata      0      0      0
au_icntnr              0      0    832   39    8 : tunables    0    0    0 : slabdata      0      0      0
au_dinfo               0      0    192   42    2 : tunables    0    0    0 : slabdata      0      0      0
ovl_inode          41792  42757    688   47    8 : tunables    0    0    0 : slabdata    941    941      0
ufs_inode_cache        0      0    808   40    8 : tunables    0    0    0 : slabdata      0      0      0
qnx4_inode_cache       0      0    680   48    8 : tunables    0    0    0 : slabdata      0      0      0
hfsplus_attr_cache      0      0   3840    8    8 : tunables    0    0    0 : slabdata      0      0      0
hfsplus_icache         0      0    896   36    8 : tunables    0    0    0 : slabdata      0      0      0
hfs_inode_cache        0      0    832   39    8 : tunables    0    0    0 : slabdata      0      0      0
minix_inode_cache      0      0    672   48    8 : tunables    0    0    0 : slabdata      0      0      0
ntfs_big_inode_cache      0      0    960   34    8 : tunables    0    0    0 : slabdata      0      0      0
ntfs_inode_cache       0      0    296   55    4 : tunables    0    0    0 : slabdata      0      0      0
jfs_ip                 0      0   1280   25    8 : tunables    0    0    0 : slabdata      0      0      0
xfs_dqtrx              0      0    528   31    4 : tunables    0    0    0 : slabdata      0      0      0
xfs_dquot              0      0    496   33    4 : tunables    0    0    0 : slabdata      0      0      0
xfs_buf           2545661 3291582    384   42    4 : tunables    0    0    0 : slabdata  78371  78371      0
xfs_rui_item           0      0    696   47    8 : tunables    0    0    0 : slabdata      0      0      0
xfs_rud_item           0      0    176   46    2 : tunables    0    0    0 : slabdata      0      0      0
xfs_inode         23063278 77479540   1024   32    8 : tunables    0    0    0 : slabdata 2425069 2425069      0
xfs_efd_item        4662   4847    440   37    4 : tunables    0    0    0 : slabdata    131    131      0
xfs_buf_item        8610   8760    272   30    2 : tunables    0    0    0 : slabdata    292    292      0
xfs_trans           1925   1925    232   35    2 : tunables    0    0    0 : slabdata     55     55      0
xfs_da_state        1632   1632    480   34    4 : tunables    0    0    0 : slabdata     48     48      0
xfs_btree_cur       1728   1728    224   36    2 : tunables    0    0    0 : slabdata     48     48      0
kvm_async_pf           0      0    136   30    1 : tunables    0    0    0 : slabdata      0      0      0
kvm_vcpu               0      0  17152    1    8 : tunables    0    0    0 : slabdata      0      0      0
kvm_mmu_page_header      0      0    168   48    2 : tunables    0    0    0 : slabdata      0      0      0
x86_fpu                0      0   4160    7    8 : tunables    0    0    0 : slabdata      0      0      0
ext4_groupinfo_4k   7196   7196    144   28    1 : tunables    0    0    0 : slabdata    257    257      0
btrfs_delayed_node      0      0    312   52    4 : tunables    0    0    0 : slabdata      0      0      0
btrfs_ordered_extent      0      0    416   39    4 : tunables    0    0    0 : slabdata      0      0      0
btrfs_inode            0      0   1168   28    8 : tunables    0    0    0 : slabdata      0      0      0
mlx5_fs_ftes         560    560    584   28    4 : tunables    0    0    0 : slabdata     20     20      0
mlx5_fs_fgs          100    100    648   50    8 : tunables    0    0    0 : slabdata      2      2      0
scsi_sense_cache   16896  16896    128   32    1 : tunables    0    0    0 : slabdata    528    528      0
fsverity_info          0      0    248   33    2 : tunables    0    0    0 : slabdata      0      0      0
ip6-frags          21560  21736    184   44    2 : tunables    0    0    0 : slabdata    494    494      0
PINGv6                26     26   1216   26    8 : tunables    0    0    0 : slabdata      1      1      0
RAWv6                390    390   1216   26    8 : tunables    0    0    0 : slabdata     15     15      0
UDPv6               4032   4032   1344   24    8 : tunables    0    0    0 : slabdata    168    168      0
tw_sock_TCPv6       4785   4785    248   33    2 : tunables    0    0    0 : slabdata    145    145      0
request_sock_TCPv6      0      0    304   53    4 : tunables    0    0    0 : slabdata      0      0      0
TCPv6               3809   3874   2432   13    8 : tunables    0    0    0 : slabdata    298    298      0
kcopyd_job             0      0   3312    9    8 : tunables    0    0    0 : slabdata      0      0      0
dm_uevent              0      0   2632   12    8 : tunables    0    0    0 : slabdata      0      0      0
mqueue_inode_cache   1632   1632    960   34    8 : tunables    0    0    0 : slabdata     48     48      0
fuse_request        1344   1344    144   28    1 : tunables    0    0    0 : slabdata     48     48      0
fuse_inode         13428  13830    832   39    8 : tunables    0    0    0 : slabdata    360    360      0
ecryptfs_key_record_cache      0      0    576   28    4 : tunables    0    0    0 : slabdata      0      0      0
ecryptfs_inode_cache      0      0   1024   32    8 : tunables    0    0    0 : slabdata      0      0      0
ecryptfs_file_cache      0      0     16  256    1 : tunables    0    0    0 : slabdata      0      0      0
ecryptfs_auth_tok_list_item      0      0    832   39    8 : tunables    0    0    0 : slabdata      0      0      0
fat_inode_cache      176    176    744   44    8 : tunables    0    0    0 : slabdata      4      4      0
fat_cache              0      0     40  102    1 : tunables    0    0    0 : slabdata      0      0      0
squashfs_inode_cache     46     46    704   46    8 : tunables    0    0    0 : slabdata      1      1      0
jbd2_journal_handle   4080   4080     48   85    1 : tunables    0    0    0 : slabdata     48     48      0
jbd2_journal_head  10438  10608    120   34    1 : tunables    0    0    0 : slabdata    312    312      0
jbd2_revoke_table_s   1024   1024     16  256    1 : tunables    0    0    0 : slabdata      4      4      0
ext4_inode_cache   56239  67562   1096   29    8 : tunables    0    0    0 : slabdata   2700   2700      0
ext4_allocation_context   1536   1536    128   32    1 : tunables    0    0    0 : slabdata     48     48      0
ext4_system_zone     816    816     40  102    1 : tunables    0    0    0 : slabdata      8      8      0
ext4_io_end        24832  24896     64   64    1 : tunables    0    0    0 : slabdata    389    389      0
ext4_pending_reservation  67072  67456     32  128    1 : tunables    0    0    0 : slabdata    527    527      0
ext4_extent_status  44359  55386     40  102    1 : tunables    0    0    0 : slabdata    543    543      0
mbcache            50005  50005     56   73    1 : tunables    0    0    0 : slabdata    685    685      0
userfaultfd_ctx_cache      0      0    192   42    2 : tunables    0    0    0 : slabdata      0      0      0
dnotify_struct         0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
pid_namespace       1872   1872    208   39    2 : tunables    0    0    0 : slabdata     48     48      0
ip4-frags              0      0    200   40    2 : tunables    0    0    0 : slabdata      0      0      0
xfrm_state             0      0    704   46    8 : tunables    0    0    0 : slabdata      0      0      0
PING               25440  25440   1024   32    8 : tunables    0    0    0 : slabdata    795    795      0
RAW                  832    832   1024   32    8 : tunables    0    0    0 : slabdata     26     26      0
tw_sock_TCP        21153  21153    248   33    2 : tunables    0    0    0 : slabdata    641    641      0
request_sock_TCP   13674  13780    304   53    4 : tunables    0    0    0 : slabdata    260    260      0
TCP                 8470   8666   2240   14    8 : tunables    0    0    0 : slabdata    619    619      0
hugetlbfs_inode_cache    102    102    632   51    8 : tunables    0    0    0 : slabdata      2      2      0
dquot               1536   1536    256   32    2 : tunables    0    0    0 : slabdata     48     48      0
eventpoll_pwq      81872  81928     72   56    1 : tunables    0    0    0 : slabdata   1463   1463      0
dax_cache             42     42    768   42    8 : tunables    0    0    0 : slabdata      1      1      0
request_queue        180    255   2104   15    8 : tunables    0    0    0 : slabdata     17     17      0
biovec-max          1120   1192   4096    8    8 : tunables    0    0    0 : slabdata    149    149      0
biovec-128          2546   2642   2048   16    8 : tunables    0    0    0 : slabdata    166    166      0
biovec-64           5492   5656   1024   32    8 : tunables    0    0    0 : slabdata    182    182      0
khugepaged_mm_slot   1440   1440    112   36    1 : tunables    0    0    0 : slabdata     40     40      0
user_namespace         0      0    536   30    4 : tunables    0    0    0 : slabdata      0      0      0
uid_cache          16514  16640    128   32    1 : tunables    0    0    0 : slabdata    520    520      0
dmaengine-unmap-256     15     15   2112   15    8 : tunables    0    0    0 : slabdata      1      1      0
dmaengine-unmap-128     30     30   1088   30    8 : tunables    0    0    0 : slabdata      1      1      0
sock_inode_cache   62080  62433    832   39    8 : tunables    0    0    0 : slabdata   1617   1617      0
skbuff_ext_cache  16454495 32746392    192   42    2 : tunables    0    0    0 : slabdata 779676 779676      0
skbuff_fclone_cache   6752   7008    512   32    4 : tunables    0    0    0 : slabdata    219    219      0
skbuff_head_cache  48769  49184    256   32    2 : tunables    0    0    0 : slabdata   1537   1537      0
file_lock_cache     1776   1776    216   37    2 : tunables    0    0    0 : slabdata     48     48      0
fsnotify_mark_connector   6144   6144     32  128    1 : tunables    0    0    0 : slabdata     48     48      0
net_namespace         18     18   4928    6    8 : tunables    0    0    0 : slabdata      3      3      0
task_delay_info    79305  79407     80   51    1 : tunables    0    0    0 : slabdata   1557   1557      0
taskstats           2256   2256    344   47    4 : tunables    0    0    0 : slabdata     48     48      0
proc_dir_entry      4578   4578    192   42    2 : tunables    0    0    0 : slabdata    109    109      0
pde_opener         79050  79050     40  102    1 : tunables    0    0    0 : slabdata    775    775      0
proc_inode_cache  153717 156498    680   48    8 : tunables    0    0    0 : slabdata   3263   3263      0
bdev_cache          1092   1092    832   39    8 : tunables    0    0    0 : slabdata     28     28      0
shmem_inode_cache  28213  28800    720   45    8 : tunables    0    0    0 : slabdata    640    640      0
kernfs_node_cache 195825 200730    136   30    1 : tunables    0    0    0 : slabdata   6691   6691      0
mnt_cache          13984  14076    320   51    4 : tunables    0    0    0 : slabdata    276    276      0
filp              250898 253328    256   32    2 : tunables    0    0    0 : slabdata   7917   7917      0
inode_cache       140359 142937    608   53    8 : tunables    0    0    0 : slabdata   2712   2712      0
dentry            27263153 58131675    192   42    2 : tunables    0    0    0 : slabdata 1384093 1384093      0
names_cache          617    633   4096    8    8 : tunables    0    0    0 : slabdata     80     80      0
iint_cache             0      0    120   34    1 : tunables    0    0    0 : slabdata      0      0      0
lsm_file_cache     87405  87890     24  170    1 : tunables    0    0    0 : slabdata    517    517      0
buffer_head       3298954 3785808    104   39    1 : tunables    0    0    0 : slabdata  97072  97072      0
uts_namespace       1776   1776    440   37    4 : tunables    0    0    0 : slabdata     48     48      0
nsproxy             3504   3504     56   73    1 : tunables    0    0    0 : slabdata     48     48      0
vm_area_struct    265005 265785    208   39    2 : tunables    0    0    0 : slabdata   6815   6815      0
mm_struct          19926  19926   1088   30    8 : tunables    0    0    0 : slabdata    666    666      0
files_cache        28029  28029    704   46    8 : tunables    0    0    0 : slabdata    612    612      0
signal_cache       28910  29154   1152   28    8 : tunables    0    0    0 : slabdata   1043   1043      0
sighand_cache      11738  11795   2112   15    8 : tunables    0    0    0 : slabdata    791    791      0
task_struct         7323   7693   7616    4    8 : tunables    0    0    0 : slabdata   1924   1924      0
cred_jar           81837  81837    192   42    2 : tunables    0    0    0 : slabdata   1949   1949      0
anon_vma_chain    350482 351552     64   64    1 : tunables    0    0    0 : slabdata   5493   5493      0
anon_vma          231854 233220     88   46    1 : tunables    0    0    0 : slabdata   5070   5070      0
pid               113960 114336    128   32    1 : tunables    0    0    0 : slabdata   3573   3573      0
Acpi-Operand      189280 189280     72   56    1 : tunables    0    0    0 : slabdata   3380   3380      0
Acpi-ParseExt      18174  18174    104   39    1 : tunables    0    0    0 : slabdata    466    466      0
Acpi-State         10098  10098     80   51    1 : tunables    0    0    0 : slabdata    198    198      0
numa_policy           62     62    264   31    2 : tunables    0    0    0 : slabdata      2      2      0
trace_event_file    2622   2622     88   46    1 : tunables    0    0    0 : slabdata     57     57      0
ftrace_event_field  28220  28220     48   85    1 : tunables    0    0    0 : slabdata    332    332      0
pool_workqueue      8513   8544    256   32    2 : tunables    0    0    0 : slabdata    267    267      0
radix_tree_node   6248549 8844010    584   28    4 : tunables    0    0    0 : slabdata 315865 315865      0
task_group          2448   2448    640   51    8 : tunables    0    0    0 : slabdata     48     48      0
vmap_area          24174  64640     64   64    1 : tunables    0    0    0 : slabdata   1010   1010      0
dma-kmalloc-8k         0      0   8192    4    8 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-4k         0      0   4096    8    8 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-2k         0      0   2048   16    8 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-1k         0      0   1024   32    8 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-512        0      0    512   32    4 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-256        0      0    256   32    2 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-128        0      0    128   32    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-64         0      0     64   64    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-32         0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-16         0      0     16  256    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-8          0      0      8  512    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-192        0      0    192   42    2 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-96         0      0     96   42    1 : tunables    0    0    0 : slabdata      0      0      0
kmalloc-rcl-8k         0      0   8192    4    8 : tunables    0    0    0 : slabdata      0      0      0
kmalloc-rcl-4k         0      0   4096    8    8 : tunables    0    0    0 : slabdata      0      0      0
kmalloc-rcl-2k         0      0   2048   16    8 : tunables    0    0    0 : slabdata      0      0      0
kmalloc-rcl-1k         0      0   1024   32    8 : tunables    0    0    0 : slabdata      0      0      0
kmalloc-rcl-512        0      0    512   32    4 : tunables    0    0    0 : slabdata      0      0      0
kmalloc-rcl-256        0      0    256   32    2 : tunables    0    0    0 : slabdata      0      0      0
kmalloc-rcl-192    64441  82992    192   42    2 : tunables    0    0    0 : slabdata   1976   1976      0
kmalloc-rcl-128   723176 936960    128   32    1 : tunables    0    0    0 : slabdata  29280  29280      0
kmalloc-rcl-96    10652323 18961866     96   42    1 : tunables    0    0    0 : slabdata 451473 451473      0
kmalloc-rcl-64    6044167 11369536     64   64    1 : tunables    0    0    0 : slabdata 177649 177649      0
kmalloc-rcl-32         0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
kmalloc-rcl-16         0      0     16  256    1 : tunables    0    0    0 : slabdata      0      0      0
kmalloc-rcl-8          0      0      8  512    1 : tunables    0    0    0 : slabdata      0      0      0
kmalloc-8k          3114   3172   8192    4    8 : tunables    0    0    0 : slabdata    793    793      0
kmalloc-4k          9499   9632   4096    8    8 : tunables    0    0    0 : slabdata   1204   1204      0
kmalloc-2k         12732  13312   2048   16    8 : tunables    0    0    0 : slabdata    832    832      0
kmalloc-1k        183625 539936   1024   32    8 : tunables    0    0    0 : slabdata  16873  16873      0
kmalloc-512       655588 1568608    512   32    4 : tunables    0    0    0 : slabdata  49022  49022      0
kmalloc-256        98952 342912    256   32    2 : tunables    0    0    0 : slabdata  10716  10716      0
kmalloc-192       204049 482370    192   42    2 : tunables    0    0    0 : slabdata  11485  11485      0
kmalloc-128       311838 730848    128   32    1 : tunables    0    0    0 : slabdata  22839  22839      0
kmalloc-96        1930979 3409056     96   42    1 : tunables    0    0    0 : slabdata  81168  81168      0
kmalloc-64        8181387 8266624     64   64    1 : tunables    0    0    0 : slabdata 129166 129166      0
kmalloc-32        8544206 16602368     32  128    1 : tunables    0    0    0 : slabdata 129706 129706      0
kmalloc-16        6563402 21336064     16  256    1 : tunables    0    0    0 : slabdata  83344  83344      0
kmalloc-8         119808 119808      8  512    1 : tunables    0    0    0 : slabdata    234    234      0
kmem_cache_node     8235   9920     64   64    1 : tunables    0    0    0 : slabdata    155    155      0
kmem_cache         10216  10332    448   36    4 : tunables    0    0    0 : slabdata    287    287      0


Linux# cat /proc/meminfo
MemTotal:       263782936 kB
MemFree:         5950596 kB
MemAvailable:   187604140 kB
Buffers:          590176 kB
Cached:         88517408 kB
SwapCached:            0 kB
Active:         33425084 kB
Inactive:       78773572 kB
Active(anon):   22977948 kB
Inactive(anon):     1768 kB
Active(file):   10447136 kB
Inactive(file): 78771804 kB
Unevictable:          28 kB
Mlocked:              28 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:              1944 kB
Writeback:             0 kB
AnonPages:      23028212 kB
Mapped:           370632 kB
Shmem:              3352 kB
KReclaimable:   97013384 kB
Slab:           108591792 kB
SReclaimable:   97013384 kB
SUnreclaim:     11578408 kB
KernelStack:       29600 kB
PageTables:        69120 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    131891468 kB
Committed_AS:   33922344 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      288528 kB
VmallocChunk:          0 kB
Percpu:            79680 kB
HardwareCorrupted:     0 kB
AnonHugePages:     53248 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
FileHugePages:         0 kB
FilePmdMapped:         0 kB
CmaTotal:              0 kB
CmaFree:               0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB
DirectMap4k:    31415244 kB
DirectMap2M:    231421952 kB
DirectMap1G:     7340032 kB

On 5/31/23 17:08, Dave Chinner wrote:
> On Wed, May 31, 2023 at 02:29:52PM -0700, Jianan Wang wrote:
>> Hi all,
>>
>> I have a question regarding the xfs slab memory usage when operating a
>> filesystem with 1-2 billion inodes (raid 0 with 6 disks, totally
>> 18TB). On this partition, whenever there is a high disk io operation,
>> like removing millions of small files, the slab kernel memory usage
>> will increase a lot, leading to many OOM issues happening for the
>> services running on this node. You could check some of the stats as
>> the following (only includes the xfs related):
> You didn't include all the XFS related slabs. At minimum, the inode
> log item slab needs to be shown (xfs_ili) because that tells us how
> many of the inodes in the cache have been dirtied.
>
> As it is, I'm betting the problem is the disk subsystem can't write
> back dirty inodes fast enough to keep up with memory demand and so
> reclaim is declaring OOM faster than your disks can clean inodes to
> enable them to be reclaimed.
>
>> #########################################################################
>> Active / Total Objects (% used):  281803052 / 317485764 (88.8%)
>> Active / Total Slabs (% used): 13033144 / 13033144 (100.0%)
>> Active / Total Caches (% used): 126 / 180 (70.0%)
>> Active / Total Size (% used): 114671057.99K / 127265108.19K (90.1%)
>> Minium / Average / Maximum Object : 0.01K / 0.40K / 16.75K
>>
>> OBJS               ACTIVE      USE     OBJ SIZE     SLABS
>> OBJ/SLAB    CACHE SIZE    NAME
>> 78207920      70947541      0%       1.00K           7731010
>>  32            247392320K     xfs_inode
>> 59945928      46548798      0%       0.19K           1433102
>>  42              11464816K     dentry
>> 25051296      25051282      0%       0.38K           599680
>>   42            9594880K         xfs_buf
> Ok, that's from slabtop. Please don't autowrap stuff you've pasted
> in - it makes it really hard to read. (reformatted so I can read
> it).
>
> OBJS           ACTIVE      USE     OBJ SIZE     SLABS OBJ/SLAB    CACHE SIZE    NAME
> 78207920      70947541      0%       1.00K     7731010   32       247392320K     xfs_inode
> 59945928      46548798      0%       0.19K     1433102   42        11464816K     dentry
> 25051296      25051282      0%       0.38K      599680   42         9594880K         xfs_buf
>
> So, 70 million cached inodes, with a cache size of 240GB. There are
> 7.7 million slabs, 32 objects per slab, and that's roughly 240GB.
>
> But why does the slab report only 78 million objects in the slab
> when at 240GB there should be 240 million objects in the slab?
>
> It looks like theres some kind of accounting problem here, likely in
> the slabtop program. I have always found slabtop to be unreliable
> like this....
>
> Can you attach the output of 'cat /proc/slabinfo' and 'cat
> /proc/meminfo' when you have a large slab cache in memory?
>
>> #########################################################################
>>
>> The peak slab memory usage could spike all the way to 100GB+.
> Is that all? :)
>
>> We are using Ubuntu 18.04 and the xfs version is 4.9, kernel version is 5.4
> Ah, I don't think there's anything upstream can do for you. We
> rewrote large portions of the XFS inode reclaim in 5.9 (3 years ago)
> to address the issues with memory reclaim getting stuck on dirty XFS
> inodes, so inode reclaim behaviour in modern kernels is completely
> different to old kernels.
>
> I'd suggest that you need to upgrade your systems to run a more
> modern kernel and see if that fixes the issues you are seeing...
>
> Cheers,
>
> Dave.



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux