OOM Kill

Supported OS Linux

Présentation

Ce check permet de surveiller les processus tués par le mécanisme OOM Killer (Out of Memory Killer) du kernel par l’intermédiaire de l’Agent Datadog et du system probe.

Formule et utilisation

Liste des infrastructures

Le check OOM Kill est inclus avec le package de l’Agent Datadog. Il repose sur un programme eBPF intégré au system probe.

Le programme eBPF utilisé par le system probe est compilé au runtime. Vous devez avoir accès aux en-têtes de kernel appropriés.

Sur les distributions dérivées de Debian, installez les en-têtes de kernel à l’aide de la commande suivante :

apt install -y linux-headers-$(uname -r)

Sur les distributions dérivées de RHEL, installez les en-têtes de kernel à l’aide de la commande suivante :

yum install -y kernel-headers-$(uname -r)
yum install -y kernel-devel-$(uname -r)

Remarque : pour que le check OOM Kill fonctionne, vous devez utiliser la version 4.11 ou une version ultérieure du kernel. De plus, seules les versions 8 et ultérieures de Windows et CentOS/RHEL sont prises en charge.

Dépannage de la solution Browser

  1. Dans le fichier system-probe.yaml situé à la racine du répertoire de configuration de votre Agent, ajoutez la configuration suivante :

    system_probe_config:
        enable_oom_kill: true
    
  2. Vérifiez que le fichier oom_kill.d/conf.yaml figure bien dans le dossier conf.d/ à la racine du répertoire de configuration de votre Agent pour commencer à recueillir vos métriques OOM Kill. Consultez le fichier d’exemple oom_kill.d/conf.yaml découvrir toutes les options de configuration disponibles.

  3. Redémarrez l’Agent.

Configuration avec Docker

En plus de monter system-probe.yaml et oom_kill.d/conf.yaml tel qu’indiqué ci-dessus, vous devez procéder comme suit :

  1. Montez les volumes suivants sur le conteneur de l’Agent :

    -v /sys/kernel/debug:/sys/kernel/debug 
    -v /lib/modules:/lib/modules 
    -v /usr/src:/usr/src
    
  2. Ajoutez l’autorisation suivante pour activer les opérations BPF :

    --privileged
    

    À partir de la version 5.8 du kernel, le paramètre --privileged peut être remplacé par --cap-add CAP_BPF.

Remarque : le mode --privileged n’est pas pris en charge dans Docker Swarm.

Configuration avec Helm

À l’aide du chart Helm Datadog, vérifiez que les paramètres datadog.systemProbe et datadog.systemProbe.enableOOMKill sont activés dans le fichier values.yaml.

Configuration avec l’Operator (v1.0.0+)

Définissez le paramètre features.oomKill.enabled dans le manifeste DatadogAgent :

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  features:
    oomKill:
      enabled: true

Remarque : si vous utilisez COS (Container Optimized OS), remplacez le volume src dans l’Agent de nœud :

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  features:
    oomKill:
      enabled: true
  override:
    nodeAgent:
      volumes: 
      - emptyDir: {}
        name: src

Validation

Lancez la sous-commande status de l’Agent et cherchez oom_kill dans la section Checks.

Real User Monitoring

Analyse d’entonnoirs

oom_kill.oom_process.count
(count)
The count of processes OOM killed
Shown as process

Aide

Le check OOM Kill n’inclut aucun check de service.

Aide

Le check OOM Kill envoie un événement pour chaque OOM Kill. Celui-ci inclut l’ID et le nom du processus éliminé, ainsi que l’ID et le nom du processus à l’origine du déclenchement.

Aide

Besoin d’aide ? Contactez l’assistance Datadog.