Un poco de inmersión apt-check
me dio estas pistas por ser un guión muy contundente que necesita ser reparado. Con el debido respeto a los autores, falla en mis servidores. Aquí están mis pensamientos:
apt-check
== /usr/lib/update-notifier/apt_check.py
- fuerza nicelevel 19 por sí mismo
- sin tiempos de espera establecidos en acciones
La combinación de los dos últimos le permite apilarse sin cesar en espiral hacia abajo. Si el sistema se usa para otros fines con mayor prioridad, la cantidad de procesos simplemente aumentará y no tendrá fin, ya apt-check
que nunca tendrá prioridad sobre él. Los problemas solo empeorarán una vez que el asesino de OOM decida matar los procesos vitales de su sistema.
Si cualquiera de estos dos aspectos en el comportamiento fuera diferente, no permitiría que el sistema terminara en un estado tan roto, es mi suposición.
Si bien las cadenas son correctas acerca de que los procesos principales también son responsables en esto, creo que los puntos a continuación son defectuosos apt-check
y deben informarse como un error para que se aborden correctamente:
- debería insinuar que el asesino OOM se mató primero
- no debería establecer el nicelevel hardcoded
- debería salir si toma una cantidad de tiempo irrazonable obtener información
En realidad, parece que el asesino de OOM de Linux está haciendo algo de heurística al respecto. Los procesos anidados obtendrán un puntaje mayor, y los procesos de larga duración disminuirán. ( fuente - gracias a Ulrich Dangel por señalarlo )
Posible solución que puedo proponer:
- resultados de caché después del procesamiento
- caché de salida si es menor que N cantidad de segundos sin cargar todas las bibliotecas Python-APT para cada
--help
invocación simple (par ).
- haga que el nivel agradable sea configurable - ¡ Permítame cambiar / deshabilitar esto, por favor! Creo que establecerlo en 0 realmente ayudará
- hacer que aumente el puntaje asesino de OOM