Analyse and visualise Linux OOM output

This web page splits the content of a Linux Out Of Memory message into smaller pieces, aggregates these and presents them in a more human friendly format.


Analysis results

Tigger process
(PID ) This process requests memory and is triggering thereby the OOM situation
Killed process
(PID ) Process killed by Linux kernel to satisfy the memory request
OOM Score
(score)
Virtual Memory
(total-vm)
Virtual memory used by this process
Resident anonymous memory
(anon-rss)
Part of the virtual process memory mapped into RAM
Resident file mapping memory
(file-rss)
Files which have been mapped into RAM (with mmap(2))
Resident shared memory
(shmem-rss)
This may include System V shared memory and shared anonymous memory
Memory Usage
RAM Summary
Swap Summary
RAM usage
Active anonymous memory Recently used anonymous memory.
These memory pages will usually not swapped out.
Inactive anonymous memory Least recently used anonymous memory.
These memory pages can be swapped out.
Isolated anonymous memory Memory isolation is used to separate memory between different virtual machines.
Active Pagecache Pagecache that has been used more recently and usually not reclaimed unless absolutely necessary.
Inactive Pagecache Pagecache which has been less recently used. It can be reclaimed without huge performance impact.
Isolated Pagecache Memory isolation is used to separate memory between different virtual machines.
Unevictable pages Unevictable memory. It can't be swapped out because the pages are owned by ramfs or protected by mlock(3) / shmctl(SHM_LOCK). Unevictable pages are managed by kernels LRU framework.
Dirty Memory which is waiting to get written back to the disk. [1]
Writeback Memory which is actively being written back to the disk. [1]
Unstable Not yet committed to stable storage.
Slab Reclaimable Slab is a in-kernel data structures cache. Part of Slab, that might be reclaimed, such as caches. [1]
Additional details are listed in slabinfo(5) also.
Slab Unreclaimable Part of Slab, that cannot be reclaimed on memory pressure. [1]
Mapped Files which have been mapped into memory (with mmap(2)), such as libraries. [1]
shmem Amount of memory consumed in tmpfs(5) filesystems. [1]
Pagetables Amount of memory dedicated to the lowest level of pagetables. [1]
Bounce Memory used for block device "bounce buffers". [1]
free
free_pcp
free_cma
Total Pagecache
Swap usage
Swap Total Total amount of swap space available. [1]
Swap Free Amount of swap space that is currently unused. [1]
Swap Cached Memory that once was swapped out, is swapped back in but still also is in the swap file. (If memory pres‐ sure is high, these pages don't need to be swapped out again because they are already in the swap file. This saves I/O). [1]
Swap Used Amount of used swap space w/o cached swap
(SwapUsed = SwapTotal - SwapFree -SwapCache)
Operating System
Kernel
Distribution Guessed from the kernel version
Platform Guessed from the kernel version
Page size Guessed
Memory Chunks

            
Process Table

            
Hardware Details

            
Kernel Call Trace

            

Footnotes

  1. proc(5) - process information pseudo-filesystem (Go Back)

Error messages


Copyright (c) 2017 Carsten Grohmann mail <add at here> carsten-grohmann.de

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.