GNU/Linux는 스왑을 위해 50% RAM을 사용하기 시작합니다.

GNU/Linux는 스왑을 위해 50% RAM을 사용하기 시작합니다.

최근(1~2개월 전) 내 노트북이 짧은 시간(약 1분) 동안 느려지기 시작했습니다.

그 이유는 kswapd... kswapdRAM이 백그라운드에서 천천히 선제적으로 해제될 수 있다면 좋겠지만, 이로 인해 컴퓨터가 느려지는 것은 고통스럽습니다.

보시다시피 15.5GB 버퍼/캐시가 있고 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~2GB를 사용할 수 있을 때 활성화되었으므로 이에 대해 다시 설명하고 싶습니다.

(나쁜) 해결 방법으로 zswap을 활성화했습니다. 약간의 도움이 됩니다. 시스템은 여전히 ​​스와핑 중이지만 이제 RAM으로 스와핑됩니다.

60에서 20으로 가버렸네요 /proc/sys/vm/swappiness. 나는 아직도 이런 일이 일어나는 것을 봅니다.

$ 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

관련 정보