Alguns apt-check
me deram essas pistas por ser um roteiro muito contundente que precisa ser consertado. Com todo o respeito aos autores, está falhando nos meus servidores. Aqui estão os meus pensamentos:
apt-check
== /usr/lib/update-notifier/apt_check.py
- força o nicelevel 19 para si
- nenhum tempo limite definido nas ações
A combinação dos dois últimos permite que ele se acumule indefinidamente em uma espiral descendente. Se o sistema for usado para outros propósitos com maior prioridade, a quantidade de processos aumentará e não haverá fim, pois apt-check
nunca haverá prioridade sobre ele. Os problemas só pioram quando o assassino da OOM decide matar os processos vitais do sistema.
Se qualquer um desses dois aspectos no comportamento fosse diferente, minha hipótese não permitiria que o sistema terminasse em um estado tão quebrado.
Embora o strings esteja certo quanto aos processos-pai serem responsáveis por isso também, acredito que os pontos abaixo são falhas apt-check
e precisam ser relatados como um bug para serem resolvidos corretamente:
- deve sugerir ao assassino da OOM que ele próprio seja morto primeiro
- não deve definir o código de nível de código fixo
- ele deve sair se levar um tempo razoável para obter informações
Na verdade, parece que o assassino do Linux OOM está fazendo alguma heurística nisso. Os processos Niced obterão uma pontuação aumentada e os processos de execução longa serão diminuídos. ( fonte - graças a Ulrich Dangel por apontar )
Possível solução que posso propor:
- resultados do cache após o processamento
- cache de saída se for menor que N quantidade de segundos sem carregar todas as bibliotecas Python-APT para cada
--help
chamada simples (par ).
- torne o nicelevel configurável - Permita-me alterar / desativar isso, por favor! Acredito que defini-lo como 0 realmente ajudará
- tê-lo aumentar a pontuação assassino OOM