2017-11-25 12:52:55 +01:00
|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html lang="en">
|
|
|
|
|
<head>
|
|
|
|
|
<script src="__javascript__/OOMAnalyser.js" defer="defer"></script>
|
|
|
|
|
<meta charset="UTF-8">
|
|
|
|
|
<title>OOM Analyser</title>
|
|
|
|
|
|
|
|
|
|
<style type='text/css'>
|
|
|
|
|
h1 {
|
|
|
|
|
font-size: 2em;
|
|
|
|
|
margin: 0.67em 0;
|
|
|
|
|
}
|
|
|
|
|
|
2017-12-12 19:24:31 +01:00
|
|
|
|
#notify_box {
|
2017-11-25 12:52:55 +01:00
|
|
|
|
display: none;
|
2017-12-12 19:24:31 +01:00
|
|
|
|
width: 100%;
|
2017-11-25 12:52:55 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.kbytes {
|
|
|
|
|
text-align: right;
|
|
|
|
|
}
|
|
|
|
|
.kbytes::after {
|
|
|
|
|
content: " kBytes";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.pages {
|
|
|
|
|
text-align: right;
|
|
|
|
|
}
|
|
|
|
|
.pages::after {
|
|
|
|
|
content: " pages";
|
|
|
|
|
}
|
|
|
|
|
|
2018-04-16 21:40:52 +02:00
|
|
|
|
.align_right {
|
|
|
|
|
text-align: right;
|
|
|
|
|
}
|
|
|
|
|
|
2018-04-16 21:06:20 +02:00
|
|
|
|
.hide_tablerow {
|
|
|
|
|
display: none;
|
2018-04-15 20:54:24 +02:00
|
|
|
|
}
|
|
|
|
|
|
2017-11-25 12:52:55 +01:00
|
|
|
|
table {
|
|
|
|
|
border-collapse: collapse;
|
|
|
|
|
padding: 10px;
|
|
|
|
|
table-layout: fixed;
|
|
|
|
|
text-align: left;
|
|
|
|
|
width: 100%;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
svg {
|
|
|
|
|
display: block;
|
|
|
|
|
max-height: 200px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
th {
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
font-size: large;
|
|
|
|
|
padding: 5px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
th, td {
|
|
|
|
|
border: 1px solid black;
|
|
|
|
|
word-wrap: break-word;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.terminal {
|
|
|
|
|
font-family: monospace;
|
|
|
|
|
overflow: auto;
|
|
|
|
|
}
|
|
|
|
|
|
2017-12-12 19:24:31 +01:00
|
|
|
|
.notify-warning {
|
|
|
|
|
color: #9F6000;
|
|
|
|
|
background-color: #FEEFB3;
|
|
|
|
|
}
|
|
|
|
|
.notify-error {
|
|
|
|
|
color: #D8000C;
|
|
|
|
|
background-color: #FFD2D2;
|
|
|
|
|
}
|
|
|
|
|
|
2017-11-25 12:52:55 +01:00
|
|
|
|
/* Zebra-Layout */
|
|
|
|
|
tr:nth-child(odd) td:nth-child(2), tr:nth-child(odd) td:nth-child(3) {
|
|
|
|
|
background-color: #f2f2f2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.license {
|
|
|
|
|
font-size: small;
|
|
|
|
|
display: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
</style>
|
|
|
|
|
<script>
|
|
|
|
|
function goBack() {
|
|
|
|
|
window.history.back();
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h1>Analyse and visualise Linux OOM output</h1>
|
|
|
|
|
|
|
|
|
|
<p>
|
2017-12-04 19:44:48 +01:00
|
|
|
|
This web page analyses Linux Out Of Memory (OOM) messages and shows these
|
|
|
|
|
information in a human friendly presentation.
|
2017-11-25 12:52:55 +01:00
|
|
|
|
</p>
|
|
|
|
|
<p>
|
2017-12-04 19:44:48 +01:00
|
|
|
|
Your input will be analysed locally - in your browser - by an integrated
|
|
|
|
|
JavaScript script without transferring your data to foreign servers.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<div id="input">
|
|
|
|
|
<h2>Step 1 - Enter your OOM message</h2>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<textarea id="textarea_oom" cols="100" rows="20" autocomplete="off" title="OOM input field">Add your OOMhere</textarea>
|
|
|
|
|
<br/>
|
2017-12-04 19:44:48 +01:00
|
|
|
|
<button onclick="OOMAnalyser.oomAnalyser.analyse()" title="Analyse the OOM from the input area">Analyse</button>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<button onclick="OOMAnalyser.oomAnalyser.reset()" title="Clean the input area">Reset</button>
|
2017-12-04 19:44:48 +01:00
|
|
|
|
<button onclick="OOMAnalyser.oomAnalyser.copy_example()" title="Copy an example OOM into the input area">Insert example</button>
|
|
|
|
|
</div>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
|
2017-12-12 19:24:31 +01:00
|
|
|
|
<p>
|
|
|
|
|
<div class="terminal" id="notify_box"></div>
|
|
|
|
|
</p>
|
|
|
|
|
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<div id="analysis">
|
2017-12-04 19:44:48 +01:00
|
|
|
|
|
|
|
|
|
<h2>Step 2 - Results</h2>
|
|
|
|
|
<p>
|
|
|
|
|
Go back to
|
|
|
|
|
<a href="javascript:void(0);" onclick="OOMAnalyser.oomAnalyser.reset()" title="Run a new analysis">"Step 1 - Enter your OOM message"</a>
|
|
|
|
|
to run a new analysis.
|
|
|
|
|
</p>
|
2017-12-20 20:26:36 +01:00
|
|
|
|
<p>
|
|
|
|
|
The result of the analysis is displayed in three columns. The first column is used to name the property
|
|
|
|
|
including the original OOM identifier in brackets. The extracted information is displayed in the second column.
|
|
|
|
|
The last column contains further details and additional information.
|
|
|
|
|
</p>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<table>
|
|
|
|
|
<!--
|
|
|
|
|
<thead>
|
|
|
|
|
<tr>
|
|
|
|
|
<th scope="col"></th>
|
|
|
|
|
<th scope="col">Entry</th>
|
|
|
|
|
<th scope="col">Description</th>
|
|
|
|
|
</tr>
|
|
|
|
|
</thead>
|
|
|
|
|
-->
|
|
|
|
|
<tbody>
|
|
|
|
|
|
|
|
|
|
<!-- Trigger process -->
|
|
|
|
|
|
|
|
|
|
<tr>
|
2018-04-11 20:24:42 +02:00
|
|
|
|
<th scope="row" colspan="3">Tigger Process</th>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td></td>
|
2018-04-16 21:40:52 +02:00
|
|
|
|
<td class="align_right"><span id="trigger_proc_name"></span> (PID <span id="trigger_proc_pid"></span>)</td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td>This process requests memory and is triggering thereby the OOM situation</td>
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<!-- Killed Process -->
|
|
|
|
|
|
|
|
|
|
<tr>
|
2018-04-11 20:24:42 +02:00
|
|
|
|
<th scope="row" colspan="3">Killed Process</th>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td></td>
|
2018-04-16 21:40:52 +02:00
|
|
|
|
<td class="align_right"><span id="killed_proc_name"></span> (PID <span id="killed_proc_pid"></span>)</td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td>Process killed by Linux kernel to satisfy the memory request</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>OOM Score<br>(score)</td>
|
2018-04-16 21:40:52 +02:00
|
|
|
|
<td id="killed_proc_score" class="align_right"></td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Virtual Memory <br> (total-vm) </td>
|
|
|
|
|
<td id="killed_proc_vm_kb" class="kbytes"></td>
|
|
|
|
|
<td>Virtual memory used by this process</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Resident anonymous memory <br> (anon-rss) </td>
|
|
|
|
|
<td id="killed_proc_anon_rss_kb" class="kbytes"></td>
|
|
|
|
|
<td>Part of the virtual process memory mapped into RAM</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Resident file mapping memory <br> (file-rss) </td>
|
|
|
|
|
<td id="killed_proc_file_rss_kb" class="kbytes"></td>
|
|
|
|
|
<td>Files which have been mapped into RAM (with
|
|
|
|
|
<a href="http://man7.org/linux/man-pages/man2/mmap.2.html">mmap(2)</a>)
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Resident shared memory <br> (shmem-rss) </td>
|
|
|
|
|
<td id="killed_proc_shmem_rss_kb" class="kbytes"></td>
|
|
|
|
|
<td>This may include System V shared memory and shared anonymous memory</td>
|
|
|
|
|
</tr>
|
|
|
|
|
|
2018-04-11 20:24:42 +02:00
|
|
|
|
<!-- Memory Usage Graphs -->
|
2017-11-25 12:52:55 +01:00
|
|
|
|
|
|
|
|
|
<tr>
|
2018-04-11 20:24:42 +02:00
|
|
|
|
<th scope="row" colspan="3">Memory Usage Graphs</th>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td style="font-weight: bold">RAM Summary</td>
|
|
|
|
|
<td colspan="2"><div id="svg_ram"></div></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td style="font-weight: bold">Swap Summary</td>
|
|
|
|
|
<td colspan="2"><div id="svg_swap"></div></td>
|
|
|
|
|
</tr>
|
|
|
|
|
|
2018-04-15 20:14:29 +02:00
|
|
|
|
|
|
|
|
|
<!-- Page Usage -->
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<td style="font-weight: bold">Memory Pages</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>RAM pages</td>
|
|
|
|
|
<td id="ram_pages" class="pages"></td>
|
|
|
|
|
<td>Total number of RAM pages
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>HighMem/MovableOnly</td>
|
|
|
|
|
<td id="highmem_pages" class="pages"></td>
|
|
|
|
|
<td>Number of pages in the High Memory Area or marked movable for Contiguous Memory Allocator (CMA).
|
|
|
|
|
<br>
|
|
|
|
|
HighMem pages are also counted in the total page number.
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Reserved pages</td>
|
|
|
|
|
<td id="reserved_pages" class="pages"></td>
|
|
|
|
|
<td>Number of reserved pages
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>CMA reserved pages</td>
|
|
|
|
|
<td id="cma_pages" class="pages">0</td>
|
|
|
|
|
<td>Pages reserved for Contiguous Memory Allocator (CMA)
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Pagetable Cache</td>
|
|
|
|
|
<td id="pagetablecache_pages" class="pages">0</td>
|
|
|
|
|
<td>Number of pages in pagetable cache
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Number of pages with hardware errors</td>
|
|
|
|
|
<td id="hwpoisoned_pages" class="pages">0</td>
|
|
|
|
|
<td>Pages with uncorrectable memory errors
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<!-- Memory Usage Details -->
|
|
|
|
|
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<tr>
|
2018-04-11 20:24:42 +02:00
|
|
|
|
<td style="font-weight: bold">Memory Usage Details</td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td></td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2017-12-20 20:26:36 +01:00
|
|
|
|
<td>Active anonymous memory <br> (active_anon) </td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td id="active_anon_pages" class="pages"></td>
|
|
|
|
|
<td>Recently used anonymous memory.<br>
|
|
|
|
|
These memory pages will usually not swapped out.
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2017-12-20 20:26:36 +01:00
|
|
|
|
<td>Inactive anonymous memory <br> (inactive_anon)</td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td id="inactive_anon_pages" class="pages"></td>
|
|
|
|
|
<td>Least recently used anonymous memory.<br>
|
|
|
|
|
These memory pages can be swapped out.
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2017-12-20 20:26:36 +01:00
|
|
|
|
<td>Isolated anonymous memory <br> (isolated_anon)</td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td id="isolated_anon_pages" class="pages"></td>
|
|
|
|
|
<td>Memory isolation is used to separate memory between different virtual machines.</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2017-12-20 20:26:36 +01:00
|
|
|
|
<td>Active Pagecache <br> (active_file)</td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td id="active_file_pages" class="pages"></td>
|
|
|
|
|
<td>Pagecache that has been used more recently and usually not reclaimed unless absolutely necessary.</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2017-12-20 20:26:36 +01:00
|
|
|
|
<td>Inactive Pagecache <br> (inactive_file)</td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td id="inactive_file_pages" class="pages"></td>
|
|
|
|
|
<td>Pagecache which has been less recently used. It can be reclaimed without huge performance impact.</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2017-12-20 20:26:36 +01:00
|
|
|
|
<td>Isolated Pagecache <br> (isolated_file)</td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td id="isolated_file_pages" class="pages"></td>
|
|
|
|
|
<td>Memory isolation is used to separate memory between different virtual machines.</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2017-12-20 20:26:36 +01:00
|
|
|
|
<td>Unevictable Pages <br> (unevictable)</td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td id="unevictable_pages" class="pages"></td>
|
|
|
|
|
<td>Unevictable memory. It can't be swapped out because the pages are owned by ramfs or protected by
|
|
|
|
|
<a href="http://man7.org/linux/man-pages/man3/mlock.5.html" target="_blank">mlock(3)</a> /
|
|
|
|
|
<a href="http://man7.org/linux/man-pages/man2/shmctl.2.html" target="_blank">shmctl(SHM_LOCK)</a>.
|
|
|
|
|
Unevictable pages are managed by kernels LRU framework.
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2017-12-20 20:26:36 +01:00
|
|
|
|
<td>Dirty Pages <br> (dirty)</td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td id="dirty_pages" class="pages"></td>
|
2017-12-04 19:44:48 +01:00
|
|
|
|
<td>Memory which is waiting to get written back to the disk.
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<sup><a href="#footnote-proc5">[1]</a></sup>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2017-12-20 20:26:36 +01:00
|
|
|
|
<td>Writeback <br> (writeback)</td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td id="writeback_pages" class="pages"></td>
|
|
|
|
|
<td>
|
|
|
|
|
Memory which is actively being written back to the disk.
|
|
|
|
|
<sup><a href="#footnote-proc5">[1]</a></sup>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2017-12-20 20:26:36 +01:00
|
|
|
|
<td>Unstable <br> (unstable)</td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td id="unstable_pages" class="pages"></td>
|
|
|
|
|
<td>Not yet committed to stable storage.</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2017-12-20 20:26:36 +01:00
|
|
|
|
<td>Slab Reclaimable <br> (slab_reclaimable)</td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td id="slab_reclaimable_pages" class="pages"></td>
|
|
|
|
|
<td>
|
|
|
|
|
Slab is a in-kernel data structures cache. Part of Slab, that might be reclaimed, such as caches.
|
|
|
|
|
<sup><a href="#footnote-proc5">[1]</a></sup>
|
|
|
|
|
<br>
|
|
|
|
|
Additional details are listed in
|
|
|
|
|
<a href="http://man7.org/linux/man-pages/man5/slabinfo.5.html" target="_blank">slabinfo(5)</a> also.
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2017-12-20 20:26:36 +01:00
|
|
|
|
<td>Slab Unreclaimable <br> (slab_unreclaimable)</td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td id="slab_unreclaimable_pages" class="pages"></td>
|
|
|
|
|
<td>
|
|
|
|
|
Part of Slab, that cannot be reclaimed on memory pressure.
|
|
|
|
|
<sup><a href="#footnote-proc5">[1]</a></sup>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2017-12-20 20:26:36 +01:00
|
|
|
|
<td>Mapped <br> (mapped)</td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td id="mapped_pages" class="pages"></td>
|
|
|
|
|
<td>
|
|
|
|
|
Files which have been mapped into memory (with
|
|
|
|
|
<a href="http://man7.org/linux/man-pages/man2/mmap.2.html">mmap(2)</a>), such as libraries.
|
|
|
|
|
<sup><a href="#footnote-proc5">[1]</a></sup>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2017-12-20 20:26:36 +01:00
|
|
|
|
<td>Shared Memory <br> (shmem)</td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td id="shmem_pages" class="pages"></td>
|
|
|
|
|
<td>
|
|
|
|
|
Amount of memory consumed in
|
|
|
|
|
<a href="http://man7.org/linux/man-pages/man5/tmpfs.5.html">tmpfs(5)</a>
|
|
|
|
|
filesystems.
|
|
|
|
|
<sup><a href="#footnote-proc5">[1]</a></sup>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2017-12-20 20:26:36 +01:00
|
|
|
|
<td>Pagetables <br> (pagetables)</td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td id="pagetables_pages" class="pages"></td>
|
|
|
|
|
<td>
|
|
|
|
|
Amount of memory dedicated to the lowest level of pagetables.
|
|
|
|
|
<sup><a href="#footnote-proc5">[1]</a></sup>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2017-12-20 20:26:36 +01:00
|
|
|
|
<td>Bounce <br> (bounce)</td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td id="bounce_pages" class="pages"></td>
|
|
|
|
|
<td>
|
|
|
|
|
Memory used for block device "bounce buffers".
|
|
|
|
|
<sup><a href="#footnote-proc5">[1]</a></sup>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2017-12-20 20:26:36 +01:00
|
|
|
|
<td>free <br> (free)</td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td id="free_pages" class="pages"></td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2017-12-20 20:26:36 +01:00
|
|
|
|
<td>free_pcp <br> (free_pcp)</td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td id="free_pcp_pages" class="pages"></td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2017-12-20 20:26:36 +01:00
|
|
|
|
<td>free_cma <br> (free_cma)</td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td id="free_cma_pages" class="pages"></td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Total Pagecache</td>
|
|
|
|
|
<td id="pagecache_total_pages" class="pages"></td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<!-- Swap Usage -->
|
|
|
|
|
|
|
|
|
|
<tr>
|
2018-04-11 20:24:42 +02:00
|
|
|
|
<td style="font-weight: bold">Swap Usage</td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td></td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Swap Total</td>
|
|
|
|
|
<td id="swap_total_kb" class="kbytes"></td>
|
|
|
|
|
<td>Total amount of swap space available.
|
|
|
|
|
<sup><a href="#footnote-proc5">[1]</a></sup>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Swap Free</td>
|
|
|
|
|
<td id="swap_free_kb" class="kbytes"></td>
|
|
|
|
|
<td>Amount of swap space that is currently unused.
|
|
|
|
|
<sup><a href="#footnote-proc5">[1]</a></sup>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Swap Cached</td>
|
|
|
|
|
<td id="swap_cache_kb" class="kbytes"></td>
|
|
|
|
|
<td>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).
|
|
|
|
|
<sup><a href="#footnote-proc5">[1]</a></sup>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Swap Used</td>
|
|
|
|
|
<td id="swap_used_kb" class="kbytes"></td>
|
|
|
|
|
<td>Amount of used swap space w/o cached swap <br>
|
|
|
|
|
(<code>SwapUsed = SwapTotal - SwapFree -SwapCache</code>)
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<!-- Operating System -->
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<th scope="row" colspan="3">Operating System</th>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Kernel</td>
|
2018-04-16 21:40:52 +02:00
|
|
|
|
<td id="kernel_version" class="align_right"></td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Distribution</td>
|
2018-04-16 21:40:52 +02:00
|
|
|
|
<td id="dist" class="align_right"></td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td>Guessed from the kernel version</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Platform</td>
|
2018-04-16 21:40:52 +02:00
|
|
|
|
<td id="platform" class="align_right"></td>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<td>Guessed from the kernel version</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>Page size</td>
|
|
|
|
|
<td id="page_size" class="kbytes"></td>
|
|
|
|
|
<td>Guessed</td>
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Memory Chunks -->
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<th scope="row" colspan="3">Memory Chunks</th>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td colspan="2" class="terminal">
|
|
|
|
|
<pre id="mem_node_info"></pre>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<th scope="row" colspan="3">Process Table</th>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td colspan="2" class="terminal">
|
|
|
|
|
<pre id="process_table"></pre>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<!-- Hardware Details -->
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<th scope="row" colspan="3">Hardware Details</th>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td colspan="2" class="terminal">
|
|
|
|
|
<pre id="hardware_info"></pre>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<!-- Kernel Call Tree -->
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<th scope="row" colspan="3">Kernel Call Trace</th>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td colspan="2" class="terminal">
|
|
|
|
|
<pre id="call_trace"></pre>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
2017-12-04 19:44:48 +01:00
|
|
|
|
|
|
|
|
|
<!-- Initial OOM -->
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<th scope="row" colspan="3">Entire OOM Message</th>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td colspan="2" class="terminal">
|
|
|
|
|
<pre id="oom"></pre>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
|
2017-12-04 19:44:48 +01:00
|
|
|
|
<p>
|
|
|
|
|
Go back to
|
|
|
|
|
<a href="javascript:void(0);" onclick="OOMAnalyser.oomAnalyser.reset()" title="Run a new analysis">"Step 1 - Enter your OOM message"</a>
|
|
|
|
|
to run a new analysis.
|
|
|
|
|
</p>
|
|
|
|
|
|
2017-11-27 20:51:36 +01:00
|
|
|
|
<h2>Footnotes</h2>
|
|
|
|
|
<ol>
|
|
|
|
|
<li id="footnote-proc5"><cite><a href="http://man7.org/linux/man-pages/man5/proc.5.html" target="_blank">
|
|
|
|
|
proc(5) - process information pseudo-filesystem</a></cite> (<a href="#" onclick="goBack()">Go Back</a>)
|
|
|
|
|
</li>
|
|
|
|
|
</ol>
|
2017-11-25 12:52:55 +01:00
|
|
|
|
</div>
|
|
|
|
|
|
2017-12-14 07:35:52 +01:00
|
|
|
|
<h2>Further Information</h2>
|
|
|
|
|
<ol>
|
|
|
|
|
<li>
|
|
|
|
|
<a href="https://man7.org/">Linux man pages online</a>
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
<a href="https://utcc.utoronto.ca/~cks/space/blog/linux/DecodingPageAllocFailures">
|
|
|
|
|
Decoding the Linux kernel's page allocation failure messages
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
<a href="http://elearningmedium.com/linux-kernel-oom-log-analysis/">Linux Kernel OOM Log Analysis</a>
|
|
|
|
|
</li>
|
|
|
|
|
</ol>
|
|
|
|
|
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<hr/>
|
|
|
|
|
|
|
|
|
|
<div class="footer">
|
2017-11-27 21:05:31 +01:00
|
|
|
|
OOMAnalyser <span id="version"></span> |
|
2018-04-06 21:56:29 +02:00
|
|
|
|
Copyright (C) 2017-2018 Carsten Grohmann |
|
2017-11-25 12:52:55 +01:00
|
|
|
|
<a href="javascript:void(0);" onclick="OOMAnalyser.toggle('license')" title="Show / hide license text">License: MIT</a> |
|
|
|
|
|
<a href="https://github.com/CarstenGrohmann/OOMAnalyser" title="Source code on GitHub">Source Code on GitHub</a>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="license" id="license">
|
|
|
|
|
<p>
|
2018-04-06 21:56:29 +02:00
|
|
|
|
Copyright (c) 2017-2018 Carsten Grohmann mail <add at here> carsten-grohmann.de
|
2017-11-25 12:52:55 +01:00
|
|
|
|
</p>
|
|
|
|
|
<p>
|
|
|
|
|
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:
|
|
|
|
|
</p>
|
|
|
|
|
<p>
|
|
|
|
|
The above copyright notice and this permission notice shall be included in all
|
|
|
|
|
copies or substantial portions of the Software.
|
|
|
|
|
</p>
|
|
|
|
|
<p>
|
|
|
|
|
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.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</body>
|
2017-12-12 19:24:31 +01:00
|
|
|
|
</html>
|