Heavy Load falha processos iniciados pelo usuário no Linux mint

3

Eu tenho um laptop antigo, com um velho Pentium dual core em (eu acho) 2.3 ghz, rodando o Linux mint 17.3 --- Mate

Quando o laptop recebe uma carga pesada, como a decodificação de vídeo, ele pode congelar por alguns segundos, mas depois, aleatoriamente, alguns processos que iniciei manualmente, não os do meu usuário iniciados pelo sistema, como o desktop , batida. Parece, entretanto, como se eles fossem desligados corretamente, já que os processos de gravação de arquivos sempre terminam seu trabalho e nunca terminam.

Não consigo listar nenhum processo que trave, pois é aleatório, mas a maioria dos processos não gráficos comuns é interrompida. Coisas como o Firefox tendem a acabar menos.

    
por DuploRaf 02.01.2016 / 20:54

1 resposta

2

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:

  1. Digite kill 12345 em outro terminal (em que 12345 é o "PID" conforme exibido por top ) ou
  2. 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.

    
por 02.01.2016 / 21:06