这与其说是性能问题,不如说是了解正在发生的事情及其工作原理的愿望。我的系统拥有大量资源,包括 128 GB RAM。我发现(每次有足够的运行时间都会发生这种情况)是,当仍有 86 GB 内存剩余时,系统将开始使用可用的整个交换空间。
这是 htop 的屏幕截图,展示了系统状态:
Swappiness 设置为 5:
$ sysctl vm.swappiness
vm.swappiness = 5
vmstat
显示大部分为 0,但有一个事件:
$ vmstat 60
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 8305756 5218320 31872 83460448 0 0 0 1411 11432 17991 1 1 98 0 0
2 0 8305616 5042872 31872 83571392 66 0 1193 2068 12097 18650 2 1 98 0 0
系统详细信息:
钥匙 | 价值 |
---|---|
Linux发行版 | 软呢帽 37 |
内核版本 | 6.4.11-100.fc37.x86_64 |
使用交换的顶级进程(在底部排序最高)
PID User Command Swap USS PSS RSS
...
2835417 ben /usr/lib64/firefox/firefox 60104 703736 710125 818252
2835448 ben /usr/lib64/firefox/firefox 63260 1179992 1185457 1288392
2833473 ben /opt/google/chrome/chrome - 64748 32896 34897 146000
3090226 100998 /usr/lib/chromium/chromium 67612 101820 104321 136248
2835394 ben /usr/lib64/firefox/firefox 72476 1177840 1187600 1295372
12678 100998 /usr/local/bin/python /usr/ 75788 330820 330927 332536
3682935 ben /opt/google/chrome/chrome - 87196 207280 210962 350268
1516354 ben /home/ben/.rubies/ruby-3.0. 91728 28868 29182 32820
3621825 ben /opt/google/chrome/chrome - 108724 175184 178064 310136
2833257 ben /opt/google/chrome/chrome 110132 513256 545048 710296
599920 ben /usr/lib64/erlang/erts-13.2 113620 27728 28951 34700
1281109 ben /opt/google/chrome/chrome - 139388 24860 27513 153668
1013489 qemu /usr/bin/qemu-system-x86_64 774020 16138492 16138790 16150960
1013519 root /usr/libexec/virtiofsd --fd 816020 24 154 1880
2863657 ben /usr/lib/slack/slack 1504064 124068 143980 222196
编辑 - 2024 年 1 月:仍然没有答案,但添加了我从持续使用中获得的一些附加信息。似乎累积交换的最常见进程通常是相同的,并且与 KVM/qemu 相关,以及 Google Chrome/Electron 相关
答案1
只需删除交换分区并将它们放回去即可。其中有些东西内核不会放入内存中。