Por que o kswapd usa 100% de CPU sem espaço de troca e muito cache disponível para colher?

3

O Firefox usou muita memória e a máquina parou quase por completo com o kswapd / kworker usando a maioria dos processadores. Não há espaço de troca e vm.swappiness = 0 no Linux 4.5.7 (Fedora 24).

O que eu não entendo é que com quase 1,5 GB de buff / cache, por que o Linux não recolheu esse cache para o Firefox / plugin-container? O que o kswapd está fazendo?

top - 13:17:15 up  2:47,  4 users,  load average: 9.78, 5.38, 2.35
Tasks: 197 total,   4 running, 193 sleeping,   0 stopped,   0 zombie
%Cpu(s):  5.8 us, 47.0 sy,  0.0 ni, 10.0 id, 36.9 wa,  0.0 hi,  0.3 si,  0.0 st
KiB Mem :  3922860 total,   105508 free,  2353620 used,  1463732 buff/cache
KiB Swap:        0 total,        0 free,        0 used.     6828 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
   49 root      20   0       0      0      0 R 100.0  0.0   2:35.25 kswapd0
 6395 kevin     20   0 1152968 371132   4292 R  31.7  9.5   3:16.59 plugin-containe
 3449 root      20   0       0      0      0 S  26.3  0.0   0:24.49 kworker/u16:3
 5885 root      20   0       0      0      0 S  23.8  0.0   0:34.12 kworker/u16:2
 4246 root      20   0       0      0      0 S  22.9  0.0   0:42.11 kworker/u16:4
 6236 root      20   0       0      0      0 R  19.0  0.0   0:38.84 kworker/u16:1
 4700 root      20   0       0      0      0 S  17.8  0.0   0:40.57 kworker/u16:5
 3473 kevin     20   0 1662688 402008    460 D   8.3 10.2   7:36.45 thunderbird
 1846 elastic+  20   0 4238960 401324    124 S   5.7 10.2   3:05.58 java
 6107 kevin     20   0 2133616 602096  20920 S   5.1 15.3   4:03.21 firefox...

Eu não acho que estava fazendo algo relacionado a gravação de E / S recentemente, então eu não esperaria nenhuma página suja liberada para o disco (SSD), embora a espera seja de 37%, o que é um pouco surpreendente. Eu peguei cerca de 30 segundos no valor de top e buff/cache não mudou muito, então eu não acho que esteja realmente liberando nenhuma página para o disco (apesar de eu não entender porque o% wait é alto):

$ grep -e "top -" -e "buff/cache" top.txt 
top - 13:17:11 up  2:47,  4 users,  load average: 9.41, 5.23, 2.29
KiB Mem :  3922860 total,   103468 free,  2353456 used,  1465936 buff/cache
top - 13:17:15 up  2:47,  4 users,  load average: 9.78, 5.38, 2.35
KiB Mem :  3922860 total,   105508 free,  2353620 used,  1463732 buff/cache
top - 13:17:21 up  2:47,  4 users,  load average: 10.44, 5.59, 2.43
KiB Mem :  3922860 total,   108700 free,  2354532 used,  1459628 buff/cache
top - 13:17:24 up  2:47,  4 users,  load average: 10.72, 5.73, 2.50
KiB Mem :  3922860 total,   107004 free,  2355112 used,  1460744 buff/cache
top - 13:17:43 up  2:47,  4 users,  load average: 12.64, 6.39, 2.77
KiB Mem :  3922860 total,   108264 free,  2352820 used,  1461776 buff/cache
top - 13:17:46 up  2:47,  4 users,  load average: 12.27, 6.42, 2.79
KiB Mem :  3922860 total,   108580 free,  2352584 used,  1461696 buff/cache

Matar firefox e plugin-container trouxe o sistema de volta ao normal. Eu preferiria que o cache fosse totalmente liberado para dar mais headroom, ou pelo menos que o killer da OOM corresse nessa condição em vez de ter que fazer Ctrl+Alt+F2 porque o KDE não está respondendo, esperando uma eternidade pelo prompt de login e finalmente fazendo um pkill .

    
por averageradical 04.07.2016 / 22:26

1 resposta

0

Esta é uma pergunta de superusuário que não é serverfault, mas eu mesmo tive isso no Fedora 24.

Foi causado por ffmpeg-libs, VDPAU e meu GPU / Kernel. Para mim, desativei o VDPAU no VLC para "consertá-lo".

Aparece como um tamanho crescente de Shmem em /proc/meminfo e o processo afetado se você pmap mostrar centenas de mapeamentos para 'renderD128' e sempre aumentar.

É mais provável que seja um erro de implementação - desabilite a saída do VDPAU em seus aplicativos de processamento de vídeo.

    
por 04.07.2016 / 23:07