謎の Linux RAM 使用量 (5.14)

謎の Linux RAM 使用量 (5.14)

実行中のプロセスがほとんどないのに、システムで RAM 使用率が 50% を超えていると報告されています。そのため、重要なアプリケーションを開くとすぐにシステムがスワップを開始します。RAM を使用しているのは何ですか?

  • システム: Dell G5 5505 ノートパソコン
  • CPU: Ryzen 5 4600H
  • GPU: Radeon RX 5600M
  • カーネル: 5.14.12 (Fedora)
[root@apollo ~]# free -h
               total        used        free      shared  buff/cache   available
Mem:           7.1Gi       3.9Gi       1.6Gi        69Mi       1.6Gi       2.9Gi
Swap:          7.1Gi       527Mi       6.6Gi
[root@apollo ~]# ps -eo rss,pid,comm | sort -rh | head -20
165020  13318 chrome
159116  10484 chrome
113576  10754 chrome
109856  10778 chrome
73456   10533 chrome
67356   10600 chrome
65984   13340 chrome
54128   13369 chrome
52760   10534 chrome
38768    2778 pipewire-pulse
37780   13254 chrome
35660   10630 chrome
28236    2576 Xwayland
24496   10083 alacritty
19372   10543 chrome
15760    2721 pipewire
15276    2545 waybar
14220    2772 waycalbar
11972    2447 sway
11524    1555 tailscaled
[root@apollo ~]# cat /proc/meminfo
MemTotal:        7474768 kB
MemFree:         1681176 kB
MemAvailable:    3046376 kB
Buffers:             132 kB
Cached:          1608296 kB
SwapCached:         4888 kB
Active:           780348 kB
Inactive:        1242848 kB
Active(anon):     108156 kB
Inactive(anon):   379708 kB
Active(file):     672192 kB
Inactive(file):   863140 kB
Unevictable:        5676 kB
Mlocked:            5676 kB
SwapTotal:       7474172 kB
SwapFree:        6935636 kB
Dirty:               368 kB
Writeback:             0 kB
AnonPages:        416420 kB
Mapped:           259452 kB
Shmem:             68036 kB
KReclaimable:     107188 kB
Slab:             266500 kB
SReclaimable:     107188 kB
SUnreclaim:       159312 kB
KernelStack:       12400 kB
PageTables:        22008 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    11211556 kB
Committed_AS:    5374908 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       73660 kB
VmallocChunk:          0 kB
Percpu:            14400 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 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:     5527436 kB
DirectMap2M:     2199552 kB
DirectMap1G:     1048576 kB

キャッシュを削除すると、echo 3 > /proc/sys/vm/drop_caches状況は一時的に改善されます。

[root@apollo ~]# free -h
               total        used        free      shared  buff/cache   available
Mem:           7.1Gi       1.2Gi       5.6Gi        80Mi       401Mi       5.6Gi
Swap:          7.1Gi       524Mi       6.6Gi
[root@apollo ~]# cat /proc/meminfo
MemTotal:        7474768 kB
MemFree:         5915228 kB
MemAvailable:    5958520 kB
Buffers:              36 kB
Cached:           314144 kB
SwapCached:         4888 kB
Active:           255264 kB
Inactive:         478060 kB
Active(anon):     102660 kB
Inactive(anon):   394848 kB
Active(file):     152604 kB
Inactive(file):    83212 kB
Unevictable:        5676 kB
Mlocked:            5676 kB
SwapTotal:       7474172 kB
SwapFree:        6935636 kB
Dirty:              1320 kB
Writeback:             0 kB
AnonPages:        420932 kB
Mapped:           266348 kB
Shmem:             73216 kB
KReclaimable:      62404 kB
Slab:             217648 kB
SReclaimable:      62404 kB
SUnreclaim:       155244 kB
KernelStack:       12192 kB
PageTables:        21992 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    11211556 kB
Committed_AS:    5331100 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       73532 kB
VmallocChunk:          0 kB
Percpu:            14400 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 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:     5527436 kB
DirectMap2M:     2199552 kB
DirectMap1G:     1048576 kB

答え1

この謎の RAM 使用量の原因は swap-on-zram だと考えています。これは Fedora 33 でデフォルトで有効になっています。zram を無効にすると (zram-generator-defaults パッケージを削除して)、謎の RAM 使用量は表示されなくなり、パフォーマンスが大幅に向上しました。私の理論では、スワップの断片化によって RAM 使用量が増加し、メモリの負荷がかかって大量のスワッピングが発生し、パフォーマンスが低下したと考えられます (これがこの質問の本来の動機です)。

Fedora の zram に関する詳細情報:https://fedoraproject.org/wiki/Changes/Scale_ZRAM_to_full_memory_size

関連情報