O que você provavelmente encontrará é o killer da OOM , que faz parte da estratégia normal de gerenciamento de memória do Linux. Quando o gerenciador de memória (kernel do Linux) não pode mais fornecer memória para processos userland e kernel, o killer OOM possui um algoritmo que seleciona um ou mais processos baseados em um valor de "maldade" que calcula para cada um.
Do ponto de vista do usuário, isso pode parecer uma falha "aleatória" (não-determinística) de programas, incluindo aplicativos em primeiro plano e em segundo plano, como um ambiente típico de área de trabalho.
A decodificação de vídeo exige muito da CPU, mas o que aciona o killer da OOM são os requisitos da memória . Você tem alguma opção disponível para diminuir o uso de memória do decodificador de vídeo, talvez usando buffers menores? Além disso, sua única defesa (prática) é aumentar a quantidade de memória disponível, o que pode significar atualizar fisicamente a memória ou desativar antecipadamente outros processos que exijam memória em seu sistema.
Rastreando processos que exigem muita memória
Você pode rastrear processos com muita memória com o comando top -o %MEM
. Se o top
do Linux Mint não suportar a sintaxe -o %MEM
, execute top
sozinho e use as teclas < e > para alterar o tipo campo.
O bom efeito colateral dessa técnica é que você também pode ver quanta memória e espaço de troca estão disponíveis, nas primeiras linhas da tela top
:
top - 14:13:43 up 5 days, 4:00, 4 users, load average: 0.00, 0.02, 0.05
Tasks: 168 total, 2 running, 166 sleeping, 0 stopped, 0 zombie
%Cpu(s): 4.0 us, 1.0 sy, 0.0 ni, 95.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 2049988 total, 1231344 used, 818644 free, 358072 buffers
KiB Swap: 2095100 total, 217588 used, 1877512 free. 450268 cached Mem
A matança se processa
Você pode então usar esta informação para matar antecipadamente (sair) quaisquer processos desnecessários usando muita memória, então o assassino de OOM não matará algo importante. Dois métodos:
- Digite
kill 12345
em outro terminal (em que12345
é o "PID" conforme exibido portop
) ou - Em
top
, pressionando k , digite o PID quando solicitado e pressione Enter duas vezes.
Deve ser óbvio, mas tenha cuidado ao matar processos. Normalmente, é preferível sair de um aplicativo normalmente com o comando Quit, portanto, você não perderá nenhum trabalho não salvo.