1
xiaozhaoz 215 天前
可能有硬件驱动,直接 map 了物理内存,看 directmap 能看出来。
以前碰到过类似的问题,因为 huge page , 网卡驱动有 bug ,ringbuf 占用了大量物理内存。 |
2
allplay 215 天前 via Android
Windows 也是,所有进程的 mem 加起来,小于 ram used
|
3
Myprajna 215 天前
windows 也是,任务管理器所有进程一个个加起来只用了 2G 内存,但是显示总共用了 8.8G ,已提交 18G/38.7G ,完全不准。
|
4
xiaozhaoz 215 天前 3
在操作系统角度来看,物理内存除了分配给用户空间进程使用,还要给内核任务、硬件外设和 cpu 交换( dma )、文件系统 buffer/cache 、内核内存算法还有开销。
所以只看资源管理器或 top 里面的用户进程不一定能查到内存消耗在哪里了。 那个设备的内核内存开销也不正常, cat /proc/slabinfo 看看。 |
5
s82kd92l 214 天前 via Android
Cache 一般是用得越多越好,只要不造成频繁 pagefault 卡顿就没事。
|
6
CFM880 214 天前
使用 htop 看看,再按内存百分比排序
|
7
Zoooooberg OP @CFM880 htop 也是只能列出来 user-space 的进程使用情况吧,这边的情况是内核内存使用异常。
|
8
Zoooooberg OP @xiaozhaoz 我也在学怎么看 slabinfo, 不过让 chatGPT 分析了一下,它说看不出来啥问题。。。。
输出太多,分 2 次回复。 slabinfo - version: 2.1 # name <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata <active_slabs> <num_slabs> <sharedavail> nfs4_xattr_cache_cache 0 0 2128 15 8 : tunables 0 0 0 : slabdata 0 0 0 nfs_direct_cache 0 0 224 36 2 : tunables 0 0 0 : slabdata 0 0 0 nfs_read_data 2210 2210 960 34 8 : tunables 0 0 0 : slabdata 65 65 0 nfs_inode_cache 16495 17400 1104 29 8 : tunables 0 0 0 : slabdata 600 600 0 ovl_inode 86395 131741 688 47 8 : tunables 0 0 0 : slabdata 2803 2803 0 kvm_async_pf 0 0 136 60 2 : tunables 0 0 0 : slabdata 0 0 0 kvm_vcpu 0 0 10568 3 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_emulator 0 0 2672 12 8 : tunables 0 0 0 : slabdata 0 0 0 x86_fpu 0 0 4160 7 8 : tunables 0 0 0 : slabdata 0 0 0 nf_conntrack 9436 10251 320 51 4 : tunables 0 0 0 : slabdata 201 201 0 fuse_request 3392 3392 152 53 2 : tunables 0 0 0 : slabdata 64 64 0 fuse_inode 6903 6903 832 39 8 : tunables 0 0 0 : slabdata 177 177 0 rpc_inode_cache 322 322 704 46 8 : tunables 0 0 0 : slabdata 7 7 0 xfs_dqtrx 0 0 528 62 8 : 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 34388 35952 384 42 4 : tunables 0 0 0 : slabdata 856 856 0 xfs_rui_item 0 0 680 48 8 : tunables 0 0 0 : slabdata 0 0 0 xfs_rud_item 16608 17040 168 48 2 : tunables 0 0 0 : slabdata 355 355 0 xfs_icr 28060 28198 176 46 2 : tunables 0 0 0 : slabdata 613 613 0 xfs_ili 274998 315840 192 42 2 : tunables 0 0 0 : slabdata 7520 7520 0 xfs_inode 461499 502976 1024 32 8 : tunables 0 0 0 : slabdata 15718 15718 0 xfs_efi_item 7410 8170 424 38 4 : tunables 0 0 0 : slabdata 215 215 0 xfs_efd_item 6956 7696 432 37 4 : tunables 0 0 0 : slabdata 208 208 0 xf_trans 41020 41090 232 35 2 : tunables 0 0 0 : slabdata 1174 1174 0 xfs_ifork 108897 149736 40 102 1 : tunables 0 0 0 : slabdata 1468 1468 0 xfs_da_state 2176 2176 480 34 4 : tunables 0 0 0 : slabdata 64 64 0 xfs_btree_cur 2304 2304 224 36 2 : tunables 0 0 0 : slabdata 64 64 0 scsi_sense_cache 2016 2016 128 32 1 : tunables 0 0 0 : slabdata 63 63 0 fsverity_info 0 0 256 32 2 : tunables 0 0 0 : slabdata 0 0 0 fscrypt_info 0 0 128 32 1 : tunables 0 0 0 : slabdata 0 0 0 ip6-frags 46332 46420 184 44 2 : tunables 0 0 0 : slabdata 1055 1055 0 PINGv6 130 130 1216 26 8 : tunables 0 0 0 : slabdata 5 5 0 RAWv6 5018 5278 1216 26 8 : tunables 0 0 0 : slabdata 203 203 0 UDPv6 1650 1650 1280 25 8 : tunables 0 0 0 : slabdata 66 66 0 tw_sock_TCPv6 2244 2244 248 33 2 : tunables 0 0 0 : slabdata 68 68 0 request_sock_TCPv6 0 0 304 53 4 : tunables 0 0 0 : slabdata 0 0 0 TCPv6 910 910 2432 13 8 : tunables 0 0 0 : slabdata 70 70 0 mqueue_inode_cache 2176 2176 960 34 8 : tunables 0 0 0 : slabdata 64 64 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 dio 0 0 640 51 8 : tunables 0 0 0 : slabdata 0 0 0 pid_namespace 3584 3584 144 56 2 : tunables 0 0 0 : slabdata 64 64 0 UNIX 6843 7136 1024 32 8 : tunables 0 0 0 : slabdata 223 223 0 ip4-frags 7880 8360 200 40 2 : tunables 0 0 0 : slabdata 209 209 0 xfrm_state 42 42 768 42 8 : tunables 0 0 0 : slabdata 1 1 0 PING 170 170 960 34 8 : tunables 0 0 0 : slabdata 5 5 0 RAW 6144 6560 1024 32 8 : tunables 0 0 0 : slabdata 205 205 0 UDP 4620 4620 1088 30 8 : tunables 0 0 0 : slabdata 154 154 0 tw_sock_TCP 11484 12012 248 33 2 : tunables 0 0 0 : slabdata 364 364 0 request_sock_TCP 3392 3392 304 53 4 : tunables 0 0 0 : slabdata 64 64 0 TCP 3221 3402 2240 14 8 : tunables 0 0 0 : slabdata 243 243 0 hugetlbfs_inode_cache 102 102 632 51 8 : tunables 0 0 0 : slabdata 2 2 0 dquot 0 0 256 32 2 : tunables 0 0 0 : slabdata 0 0 0 eventpoll_pwq 16296 16296 72 56 1 : tunables 0 0 0 : slabdata 291 291 0 dax_cache 42 42 768 42 8 : tunables 0 0 0 : slabdata 1 1 0 request_queue 67 176 2024 16 8 : tunables 0 0 0 : slabdata 11 11 0 biovec-max 1680 1832 4096 8 8 : tunables 0 0 0 : slabdata 229 229 0 biovec-128 6416 6608 2048 16 8 : tunables 0 0 0 : slabdata 413 413 0 biovec-64 13024 13184 1024 32 8 : tunables 0 0 0 : slabdata 412 412 0 khugepaged_mm_slot 0 0 112 36 1 : tunables 0 0 0 : slabdata 0 0 0 user_namespace 3840 3840 544 60 8 : tunables 0 0 0 : slabdata 64 64 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 dmaengine-unmap-16 47354 47964 192 42 2 : tunables 0 0 0 : slabdata 1142 1142 0 sock_inode_cache 15243 16263 832 39 8 : tunables 0 0 0 : slabdata 417 417 0 skbuff_fclone_cache 10496 10944 512 32 4 : tunables 0 0 0 : slabdata 342 342 0 skbuff_head_cache 5792 5824 256 32 2 : tunables 0 0 0 : slabdata 182 182 0 file_lock_cache 7326 7326 216 37 2 : tunables 0 0 0 : slabdata 198 198 0 fsnotify_mark_connector 8448 8448 32 128 1 : tunables 0 0 0 : slabdata 66 66 0 net_namespace 384 384 5120 6 8 : tunables 0 0 0 : slabdata 64 64 0 task_delay_info 41488 43503 80 51 1 : tunables 0 0 0 : slabdata 853 853 0 taskstats 2944 2944 352 46 4 : tunables 0 0 0 : slabdata 64 64 0 proc_dir_entry 30576 30576 192 42 2 : tunables 0 0 0 : slabdata 728 728 0 pde_opener 6528 6528 40 102 1 : tunables 0 0 0 : slabdata 64 64 0 proc_inode_cache 25638 26928 680 48 8 : tunables 0 0 0 : slabdata 561 561 0 seq_file 2346 2346 120 34 1 : tunables 0 0 0 : slabdata 69 69 0 |
9
Zoooooberg OP @xiaozhaoz
bdev_cache 273 273 832 39 8 : tunables 0 0 0 : slabdata 7 7 0 shmem_inode_cache 265507 266355 720 45 8 : tunables 0 0 0 : slabdata 5919 5919 0 kernfs_node_cache 426642 466784 128 32 1 : tunables 0 0 0 : slabdata 14587 14587 0 mnt_cache 16946 17850 320 51 4 : tunables 0 0 0 : slabdata 350 350 0 filp 19178 25248 256 32 2 : tunables 0 0 0 : slabdata 789 789 0 inode_cache 40841 43248 608 53 8 : tunables 0 0 0 : slabdata 816 816 0 dentry 1221907 3072426 192 42 2 : tunables 0 0 0 : slabdata 73153 73153 0 names_cache 1360 1520 4096 8 8 : tunables 0 0 0 : slabdata 190 190 0 iint_cache 0 0 120 34 1 : tunables 0 0 0 : slabdata 0 0 0 lsm_file_cache 133401 150790 24 170 1 : tunables 0 0 0 : slabdata 887 887 0 buffer_head 117 117 104 39 1 : tunables 0 0 0 : slabdata 3 3 0 uts_namespace 2368 2368 440 37 4 : tunables 0 0 0 : slabdata 64 64 0 vm_area_struct 39686 43440 200 40 2 : tunables 0 0 0 : slabdata 1086 1086 0 mm_struct 2400 2400 1088 30 8 : tunables 0 0 0 : slabdata 80 80 0 files_cache 7682 7682 704 46 8 : tunables 0 0 0 : slabdata 167 167 0 signal_cache 7199 7560 1152 28 8 : tunables 0 0 0 : slabdata 270 270 0 sighand_cache 4119 4230 2112 15 8 : tunables 0 0 0 : slabdata 282 282 0 task_struct 3716 4560 6080 5 8 : tunables 0 0 0 : slabdata 912 912 0 cred_jar 54364 59178 192 42 2 : tunables 0 0 0 : slabdata 1409 1409 0 anon_vma_chain 58680 60608 64 64 1 : tunables 0 0 0 : slabdata 947 947 0 anon_vma 43719 44022 88 46 1 : tunables 0 0 0 : slabdata 957 957 0 pid 41048 43424 128 32 1 : tunables 0 0 0 : slabdata 1357 1357 0 irq_remap_cache 44 44 8192 4 8 : tunables 0 0 0 : slabdata 11 11 0 Acpi-Operand 12768 12768 72 56 1 : tunables 0 0 0 : slabdata 228 228 0 Acpi-Parse 43295 43873 56 73 1 : tunables 0 0 0 : slabdata 601 601 0 Acpi-State 38964 39423 80 51 1 : tunables 0 0 0 : slabdata 773 773 0 numa_policy 17052 18042 264 62 4 : tunables 0 0 0 : slabdata 291 291 0 trace_event_file 41025 44804 88 46 1 : tunables 0 0 0 : slabdata 974 974 0 ftrace_event_field 13600 13600 48 85 1 : tunables 0 0 0 : slabdata 160 160 0 pool_workqueue 19568 21248 256 32 2 : tunables 0 0 0 : slabdata 664 664 0 radix_tree_node 476484 916664 584 56 8 : tunables 0 0 0 : slabdata 16369 16369 0 task_group 10808 10808 576 56 8 : tunables 0 0 0 : slabdata 193 193 0 vmap_area 42909 57024 64 64 1 : tunables 0 0 0 : slabdata 891 891 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 512 512 4096 8 8 : tunables 0 0 0 : slabdata 64 64 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 64 64 512 32 4 : tunables 0 0 0 : slabdata 2 2 0 kmalloc-rcl-256 1984 1984 256 32 2 : tunables 0 0 0 : slabdata 62 62 0 kmalloc-rcl-192 21378 21882 192 42 2 : tunables 0 0 0 : slabdata 521 521 0 kmalloc-rcl-128 45568 45568 128 32 1 : tunables 0 0 0 : slabdata 1424 1424 0 kmalloc-rcl-96 447092 1785714 96 42 1 : tunables 0 0 0 : slabdata 42517 42517 0 kmalloc-rcl-64 63003 65984 64 64 1 : tunables 0 0 0 : slabdata 1031 1031 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 1104 1172 8192 4 8 : tunables 0 0 0 : slabdata 293 293 0 kmalloc-4k 617950 618416 4096 8 8 : tunables 0 0 0 : slabdata 77302 77302 0 kmalloc-2k 8078 10048 2048 16 8 : tunables 0 0 0 : slabdata 628 628 0 kmalloc-1k 1232595 1472544 1024 32 8 : tunables 0 0 0 : slabdata 46017 46017 0 kmalloc-512 1080884 1364928 512 32 4 : tunables 0 0 0 : slabdata 42654 42654 0 kmalloc-256 60356 65248 256 32 2 : tunables 0 0 0 : slabdata 2039 2039 0 kmalloc-192 1085038 1085490 192 42 2 : tunables 0 0 0 : slabdata 25845 25845 0 kmalloc-128 27665 38112 128 32 1 : tunables 0 0 0 : slabdata 1191 1191 0 kmalloc-96 438340 841176 96 42 1 : tunables 0 0 0 : slabdata 20028 20028 0 kmalloc-64 896418 1005824 64 64 1 : tunables 0 0 0 : slabdata 15716 15716 0 kmalloc-32 222256 515712 32 128 1 : tunables 0 0 0 : slabdata 4029 4029 0 kmalloc-16 441440 736256 16 256 1 : tunables 0 0 0 : slabdata 2876 2876 0 kmalloc-8 577437 610304 8 512 1 : tunables 0 0 0 : slabdata 1192 1192 0 kmem_cache_node 1221 1344 64 64 1 : tunables 0 0 0 : slabdata 21 21 0 kmem_cache 416 416 256 32 2 : tunables 0 0 0 : slabdata 13 13 0 |
10
xiaozhaoz 214 天前
@Zoooooberg
我前面说内核 slab 内存也不太正常,因为 slab 占用了 7G 内存,一般的系统占用 2 ,3G 算比较多的。 看不懂 slabinfo ,也可以用 slabtop 直接看,可以看到哪些内核数据结构占用了较多内存。 你提供的 slabinfo ,可以看出通用 kmalloc 占用内存较多,所以还是怀疑硬件驱动模块 map 了大量内存。 我以前排查的问题是: 1. 系统启动后,内存就用了大概 50G ,应用使用很少。 2. lsmod 看哪些外挂驱动; dmesg 看内核 built-in 驱动。 3. 然后根据硬件驱动 modprobe -r 卸载驱动排查,最后定位到 intel 10G 网卡驱动有问题,再 64k 和 2M page size 的时候,multi rx ,tx queue 会导致占用大量物理内存。 4. 排查 GPU 显卡驱动时,也发现过类似问题。 物理驱动,启动后,都会分配连续内存用于设备和 cpu 交换数据,以前的内核 page size 是 4K ,驱动一般会 pagesize * count 计算要 map 的内存大小,当 pagesize 变成 64K 甚至 2M 的时候,驱动占用的内存就会变得很大。 |
11
samuel97857 206 天前 via Android
我碰到过这种情况,是有个进程递归 fork 子进程。虽然单个占的 memory 不大,但是数量到了进程数上限,然后系统崩了。
|