Pregunta ¿Cómo se calcula la puntuación del núcleo del núcleo?


Miró en Google, y no pudo encontrar nada que explicara cómo el puntaje en proc/<pid>/oom_score es calculado. ¿Por qué usar esta puntuación en lugar de usar la memoria total utilizada?


9
2018-01-31 15:45


origen




Respuestas:


Ver la de Goldwyn Rodrigues. Artículo 2009 Para la implementación en ese momento, Jonathan Corbet's. Artículo 2010 por lo que creo que es el comportamiento actual, y Jonathan Corbet Artículo 2013 para ideas sobre futuros cambios.

Del artículo 2010:

En el conjunto de parches de David, las viejas heurísticas () son casi totalmente   ido. En cambio, el cálculo se convierte en una pregunta simple de qué   El porcentaje de la memoria disponible está siendo utilizado por el proceso. Si   el sistema en su conjunto carece de memoria, entonces la "memoria disponible" es   la suma de toda la RAM y el espacio de intercambio disponible para el sistema. Si,   en cambio, la situación de OOM es causada por agotar la memoria permitida   a un grupo de control / grupo de operaciones dado, entonces "memoria disponible" es el total   Cantidad asignada a ese grupo de control. Se realiza un cálculo similar.   Si se han excedido los límites impuestos por una política de memoria. En cada caso,   el uso de memoria del proceso se considera la suma de su residente   set (el número de páginas RAM que está usando) y su uso de intercambio.

Este cálculo produce como resultado un número de porcentajes de diez veces; una   proceso que utiliza cada byte de la memoria disponible para ello   tiene una puntuación de 1000, mientras que un proceso que no usa memoria en absoluto obtendrá   una puntuación de cero. Hay muy pocos ajustes heurísticos a esta puntuación,   pero el código todavía resta una pequeña cantidad (30) de la puntuación de   procesos de raíz de la idea de que son un poco más   Valioso que los procesos propiedad del usuario.

Otro ajuste que se aplica es agregar el valor almacenado en cada uno   La variable oom_score_adj del proceso, que se puede ajustar a través de / proc.   Este mando permite ajustar el atractivo de cada proceso para   el asesino de OOM en el espacio de usuario; configurarlo en -1000 deshabilitará OOM   mata por completo, mientras que establecer en +1000 es el equivalente a pintar un   objetivo grande en el proceso asociado.


14
2018-01-31 16:03



¿Es posible que todos los procesos tengan un puntaje 0 oom? Actualmente el arranque de un cd en vivo resulta en esto. - CMCDragonkai