GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS/RHEL 6 カーネル パニック – 「メモリ不足」カーネル パラメーター panic_on_oom が有効になっている

問題

メモリ不足エラーによる CentOS/RHEL 6 システムの再起動:

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)

解決策

再起動の原因:
1. OOM キラーと物理/スワップ メモリが完全に使用されます。
2. vm.panic_on_oom が有効になりました。

>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.

この例では、「java」プロセスがメモリの 80% を消費しています。

>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
...

OOM を回避するには、物理​​メモリまたはスワップ メモリを増やす必要があります。それ以外の場合は、アプリケーションのメモリ使用量を減らす必要があります。アプリケーションのメモリ使用量は、ulimit または cgroup で制限できます。


Cent OS
  1. CentOS / RHEL 7 :特定のカーネルだけにカーネル パラメータを追加する方法

  2. CentOS / RHEL 6,7 で NUMA を無効にする方法

  3. CentOS / RHEL 7:再起動後に sysctl カーネル パラメータが有効にならない

  1. CentOS/RHEL での kdump の問題のトラブルシューティング

  2. CentOS/RHEL でカーネル セマフォの制限を変更する方法

  3. CentOS/RHEL 7 を実行しているノードで時間が同期しなくなる

  1. CentOS/RHEL で HugePages によって予約されるメモリを計算する方法

  2. CentOS / RHEL 6 :kdump の設定方法

  3. CentOS / RHEL 7 :kdump の設定方法