From 72163cc7bc63121d95b8efad3d3d8f96d1b8307b Mon Sep 17 00:00:00 2001 From: Carsten Grohmann Date: Mon, 13 Mar 2023 21:51:46 +0100 Subject: [PATCH] Summary of the analysis revised --- OOMAnalyser.html | 95 ++++++++++++++++++++++++++++++------------------ 1 file changed, 60 insertions(+), 35 deletions(-) diff --git a/OOMAnalyser.html b/OOMAnalyser.html index 26e14fe..10a82ff 100644 --- a/OOMAnalyser.html +++ b/OOMAnalyser.html @@ -387,20 +387,13 @@ window.onerror = function (msg, url, lineNo, columnNo, errorObj) { The OOM killer calculates a score for each process and terminates the process with the highest score to satisfy the original memory request.

-

- The process "" (PID ) - requested - () memory - from the memory zone. -

The OOM killer was manually triggered (e.g. with "echo f > /proc/sysrq-trigger") - by a user with root privileges. - There is no demand to free memory but the OOM killer started nevertheless. - The OOM killer calculates a score for each process and terminates the process with the highest score. + by a user with root privileges. There is no demand to free memory but the OOM killer started + nevertheless. The OOM killer calculates a score for each process and terminates the process with the + highest score.

@@ -421,22 +414,21 @@ window.onerror = function (msg, url, lineNo, columnNo, errorObj) { physical memory are in use.

-

- The process "" - (PID ) - - with an OOM score of - - has been terminated. It uses - () of the resident memory. -

-
+

- A memory chunk of order ( - / - ) has been requested from the + The process "" (PID ) + requested a memory chunk of order from the "" memory zone. + That are 2order pages == + 2 pages == + + a == + memory. +

+
+
+

The request failed because after its fulfillment the free memory would be below the memory low watermark. @@ -448,13 +440,22 @@ window.onerror = function (msg, url, lineNo, columnNo, errorObj) { The request failed, but the reason is unknown. - This analysis result is an estimate because the kernel reduces the minimum watermark in some rare cases. + The memory shortage triggers the OOM process.

-
-

- Memory fragmentation is common. It occurs due to dynamic memory allocation by the kernel as well as by - all applications. +

+ The process "" + (PID ) + + with an OOM score of + + has been terminated. It uses + () of the resident memory. +

+
+

+ Dynamic memory allocation is used by both the kernel and all applications. This leads to memory + fragmentation and is a common behavior. The system memory is heavily fragmented, because all chunks with an order ≥ are in use. Allocation of larger contiguous @@ -505,18 +506,41 @@ window.onerror = function (msg, url, lineNo, columnNo, errorObj) { Bit mask indicating the cores on which the process can run. + - Requested memory
(order) + Requested memory: order - (2) pages / - + - The kernel specifies the requested number of pages as exponent of power of two. + The kernel specifies the requested number of pages as an exponent of a power of two. - - Requested memory
(zone) + + Requested memory: number of pages + + + (2 pages) a + per page + + Requested memory in number of pages. + + + Requested memory: size + + Requested memory in kBytes. + + + Requested memory: zone - Memory zone from which the requested storage chunk should come from. + Memory zone from which the requested storage chunk should come. + + + Requested memory: node + + + First NUMA node with memory shortage watermark "free" < + "min" in memory watermark information. +
+ Assumption that this is the node where the OOM was triggered. @@ -1017,6 +1041,7 @@ window.onerror = function (msg, url, lineNo, columnNo, errorObj) {

  • Display missing memory chunks (buddyinfo) again
  • Add analysis why the memory request failed
  • Add check for heavy memory fragmentation
  • +
  • Summary of the analysis revised
  • ...