当仍有 86 GB RAM 可用时,为什么我的系统大量使用交换区?

当仍有 86 GB RAM 可用时,为什么我的系统大量使用交换区?

这与其说是性能问题,不如说是了解正在发生的事情及其工作原理的愿望。我的系统拥有大量资源,包括 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

只需删除交换分区并将它们放回去即可。其中有些东西内核不会放入内存中。

相关内容