最近(比如 1-2 个月前)我的笔记本电脑开始在短时间内(约 1 分钟)变得缓慢。
这是由于kswapd
.如果能kswapd
在后台先发制人地缓慢释放 RAM,我会很高兴,但是当它导致计算机变得缓慢时,这是一种痛苦。
正如您所看到的,有 15.5 GB 缓冲区/缓存,并且几乎没有任何 I/O。
top - 22:08:55 up 5 days, 10:48, 47 users, load average: 2.97, 1.60, 1.12
Tasks: 663 total, 3 running, 640 sleeping, 3 stopped, 17 zombie
%Cpu(s): 17.5 us, 26.4 sy, 0.0 ni, 55.1 id, 0.7 wa, 0.0 hi, 0.3 si, 0.0 st
GiB Mem : 31.2 total, 0.3 free, 15.4 used, 15.5 buff/cache
GiB Swap: 158.3 total, 139.6 free, 18.6 used. 0.2 avail Mem
Change delay from 3.0 to
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1647145 tange 20 0 16.8g 3.6g 266672 R 189.8 11.4 1453:59 GeckoMain
125 root 20 0 0 0 0 S 54.8 0.0 27:56.87 kswapd0
9508 tange 20 0 4040616 76224 3436 S 7.2 0.2 238:50.24 lbrynet
416426 root 20 0 1101072 99296 82680 S 7.2 0.3 108:39.06 Xorg
当 RAM 可用率达到 50% 时,是什么导致kswapd
系统变得疯狂?我怎样才能改变这个?
早期的行为会导致kswapd
在大约 1-2 GB 可用时处于活动状态,因此我想回到这一点。
作为一个(糟糕的)解决方法,我启用了 zswap。它有一点帮助:系统仍在交换,但现在它交换到 RAM。
我已经从 60 岁变成了/proc/sys/vm/swappiness
20 岁。我仍然看到这种情况发生。
$ uname -a
Linux aspire 5.4.0-88-generic #99-Ubuntu SMP Thu Sep 23 17:29:00 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/issue.net
Ubuntu 20.04.3 LTS
$ mount |grep tmpfs|field 3|parallel -Xj1 df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 16303656 0 16303656 0% /dev
tmpfs 3270404 2464 3267940 1% /run
tmpfs 16352020 534520 15817500 4% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 16352020 0 16352020 0% /sys/fs/cgroup
tmpfs 1000000 0 1000000 0% /Mnt/ram
tmpfs 3270404 2464 3267940 1% /run/snapd/ns
tmpfs 3270404 284 3270120 1% /run/user/1000
none 3270404 0 3270404 0% /tmp/shm/parallel
$ cat /proc/sys/vm/vfs_cache_pressure
100