kswapdプロセスがすべてのCPUを消費し始めると、コンピュータはロックされます。

kswapdプロセスがすべてのCPUを消費し始めると、コンピュータはロックされます。

Pop!_OS 20.04に問題があります。デフォルトでは、十分に長い間実行した後、バッファ/キャッシュがいっぱいになり(読み取り内容は完全に正常です)、使用可能なメモリが減少します。結局のところ、私のコンピュータはメモリスワップを試み始め、kswapdプロセスが始まりました。これが発生すると、コンピュータが完全に停止して使用できなくなり、ハード再起動が必要になります。以下は、これが発生する直前に上から出力されたいくつかの例です。

top - 20:01:56 up  2:20,  1 user,  load average: 0.89, 0.89, 0.96
Tasks: 273 total,   2 running, 271 sleeping,   0 stopped,   0 zombie
%Cpu(s): 15.2 us,  3.5 sy,  0.0 ni, 80.9 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   7916.1 total,    156.4 free,   3212.3 used,   4547.4 buff/cache
MiB Swap:   4095.5 total,   2097.5 free,   1998.0 used.    118.5 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                
   5717 bob       20   0 6981324 529316  40100 S  52.5   6.5  93:20.71 WoWClassic.exe         
   1895 bob       -2   0 6984436  84200  17752 S   5.3   1.0   2:31.27 gnome-shell            
   1614 bob       20   0 4878928  24088   3960 S   8.6   0.3   5:45.16 Xorg                   
   2214 bob       20   0  639644  19208   8840 S   4.3   0.2   0:27.15 gnome-terminal-        
   2349 bob       20   0 2091024   7800   2096 S   0.3   0.1   0:48.83 io.elementary.a        
   1219 geoclue   20   0  584040   6000   4044 S   0.0   0.1   0:00.41 geoclue                
   1733 bob       20   0  323980   4896   1724 S   1.0   0.1   0:14.02 ibus-daemon            
      1 root      20   0  167800   4536   1292 S   0.3   0.1   0:18.14 systemd                
    876 root      20   0  394572   4448   1940 S   0.3   0.1   0:09.84 udisksd                
   1836 bob       20   0  505000   4280   2116 S   0.3   0.1   0:00.59 xdg-desktop-por        
    445 root      19  -1   70136   4272   3608 S   0.0   0.1   0:00.71 systemd-journal  

top - 20:16:50 up  2:35,  1 user,  load average: 0.88, 0.41, 0.70
Tasks: 274 total,   1 running, 273 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.6 us,  0.2 sy,  0.0 ni, 99.2 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   7916.1 total,    459.5 free,   2943.0 used,   4513.6 buff/cache
MiB Swap:   4095.5 total,   2300.2 free,   1795.3 used.    526.9 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                
   1614 bob       20   0 5060228  37668  11568 S   4.0   0.5   6:02.94 Xorg                   
   2214 bob       20   0  639644  28544  17288 S   3.7   0.4   0:30.20 gnome-terminal-        
   1895 bob       -2   0 7291972 211512  64668 S   3.0   2.6   2:50.37 gnome-shell            
      1 root      20   0  167800   6812   3568 S   0.3   0.1   0:18.68 systemd                
    838 root      20   0  419244   5876   4464 S   0.3   0.1   0:01.53 NetworkManager         
   1733 bob       20   0  323980   7052   2484 S   0.3   0.1   0:14.62 ibus-daemon            
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.00 kthreadd               
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp                 
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp             
      6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0:0H-kblockd   
      9 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 mm_percpu_wq           
     10 root      20   0       0      0      0 S   0.0   0.0   0:00.21 ksoftirqd/0            
     11 root      20   0       0      0      0 I   0.0   0.0   0:10.40 rcu_sched              
     12 root      rt   0       0      0      0 S   0.0   0.0   0:00.02 migration/0            
     13 root     -51   0       0      0      0 S   0.0   0.0   0:00.00 idle_inject/0   

ご覧のとおり、バッファ/キャッシュはかなり大きく、使用可能なメモリの半分以上を使用しています。この値は通常、コンピュータの電源が入るにつれて時間の経過とともにゆっくりと増加します。結局のところ、コンピュータが動作を停止して再起動する必要があるほど大きくなりました。

これまで実際に試した唯一の方法は、/etc/ vm.swappiness=0sysctl.confに追加してswappinessを0に変更することでしたが、役に立ちませんでした。

キャッシュ/バッファが高くなり、使用可能なメモリが低くなったときに定期的に再起動するだけでなく、kswapdがクレイジーに実行されて停止するのを防ぐために他にできる方法はありますか?

ベストアンサー1

これは、一部のプロセスでメモリが漏れたり、多すぎるメモリを使用してガベージでいっぱいになったりする可能性があります。メモリがいっぱいになるとスワップ領域を占有します。ディスクが遅いため、(過度に使用される)メモリへの(ランダム)アクセスが多すぎると、システムがクロールされる可能性があります。

出力sizeのプロセスを見ると、ps(1)犯人を指摘する必要があります。

おすすめ記事