GNU/Linux >> Tutoriels Linux >  >> Cent OS

CentOS/RHEL 6 Kernel Panic - Le paramètre de noyau "Mémoire insuffisante" panic_on_oom est activé

Le problème

Redémarrage du système CentOS/RHEL 6 en raison d'une erreur de mémoire trop insuffisante :

DUMPFILE: vmcore [PARTIAL DUMP]
  CPUS: 2
  DATE: Mon Feb 29 05:28:02 2016
  UPTIME: 33 days, 09:45:55
LOAD AVERAGE: 1.88, 1.52, 1.41
  TASKS: 218
  NODENAME: localhost
  RELEASE: 2.6.32-431.el6.x86_64
  VERSION: #1 SMP Sun Nov 10 22:19:54 EST 2013
  MACHINE: x86_64 (3000 Mhz)
  MEMORY: 8 GB
  PANIC: "Kernel panic - not syncing: Out of memory: system-wide panic_on_oom is enabled"
  PID: 31010
  COMMAND: "java"
  TASK: ffff88010055a040 [THREAD_INFO: ffff88001583e000]
  CPU: 0
  STATE: TASK_RUNNING (PANIC)

La solution

Le redémarrage est dû à :
1. le killer OOM et la mémoire physique/d'échange sont complètement utilisés.
2. vm.panic_on_oom a été activé.

>kmem -i

PAGES TOTAL PERCENTAGE
TOTAL MEM 1979578 7.6 GB ----
FREE 27818 108.7 MB 1% of TOTAL MEM
USED 1951760 7.4 GB 98% of TOTAL MEM   98% memory used
SHARED 270 1.1 MB 0% of TOTAL MEM
BUFFERS 53 212 KB 0% of TOTAL MEM
CACHED 1461 5.7 MB 0% of TOTAL MEM
SLAB 14026 54.8 MB 0% of TOTAL MEM

TOTAL SWAP 4196348 16 GB ----
SWAP USED 4196347 16 GB 99% of TOTAL SWAP
SWAP FREE 1 4 KB 0% of TOTAL SWAP      No free swap space

COMMIT LIMIT 5186137 19.8 GB ----
COMMITTED 1564979 6 GB 30% of TOTAL LIMIT
# sysctl_-a |grep vm.panic_on_oom
 vm.panic_on_oom = 1                 OOM enabled for panic.

Dans cet exemple, le processus "java" a consommé 80 % de la mémoire.

>ps
..
30934 1 1 ffff88010043aae0 IN 78.3 29303436 7384984 java
30935 1 1 ffff88010043b540 IN 78.3 29303436 7384984 java
30936 1 1 ffff880238f62080 IN 78.3 29303436 7384984 java
31008 1 1 ffff8801060b0aa0 IN 78.3 29303436 7384984 java
31009 1 1 ffff8801060b0040 IN 78.3 29303436 7384984 java
> 31010 1 0 ffff88010055a040 RU 78.3 29303436 7384984 java
31690 1 0 ffff880239fc6aa0 IN 78.3 29303436 7384984 java
...

La mémoire physique ou la mémoire d'échange doit être augmentée pour éviter l'OOM, sinon l'utilisation de la mémoire de l'application doit être réduite. L'utilisation de la mémoire de l'application peut être limitée via ulimit ou cgroup.


Cent OS
  1. CentOS / RHEL 7 :Comprendre Kexec et Kdump

  2. CentOS / RHEL 7 :Comment modifier la ligne de commande du noyau

  3. "xfs_log_force :erreur 5 renvoyée" - Erreur XFS (CentOS/RHEL 7)

  4. Comment calculer la mémoire réservée par HugePages dans CentOS/RHEL

  5. CentOS / RHEL 6 :Comment configurer kdump

Configurer le conteneur Linux avec LXC sur CentOS 7/RHEL 7

Comment démarrer en mode mono-utilisateur dans CentOS 8 / RHEL 8

CentOS / RHEL 7 :Comment installer le noyau à partir du mode de secours

CentOS / RHEL 7 :Comment configurer kdump à l'aide de l'interface graphique

Comment modifier les limites du sémaphore du noyau dans CentOS/RHEL

L'heure est désynchronisée sur un nœud exécutant CentOS/RHEL 7