From 3e2a2c2cbf37b07ba44ac9286029db732c680672 Mon Sep 17 00:00:00 2001 From: Souvik Sarkar Date: Tue, 21 Jan 2025 21:12:34 +0530 Subject: [PATCH] Additional clarification about %vmeff exceeding 100% in newer kernels (#1782) * note on vmeff clarification * Editorial fixes as per Daria's suggestion * Minor typo fix * Modified content based on Tanja's feedback --- xml/utilities.xml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/xml/utilities.xml b/xml/utilities.xml index 53a04c4980..d00ae68998 100644 --- a/xml/utilities.xml +++ b/xml/utilities.xml @@ -479,6 +479,32 @@ Average: 92.08 211.70 1097.30 0.26 12010.28 0.00 0.00 0 page swapped out is being reused) or 0 (no pages have been scanned). The value should not drop below 30. + + Understanding and addressing <guimenu>%vmeff</guimenu> values exceeding 100% in modern Linux + kernels + + A %vmeff value exceeding 100% means that the number of pages reclaimed (pgsteal) is reported + as higher than the number of pages scanned (pgscank) during memory reclamation. This is + unexpected because under normal circumstances, the kernel should not reclaim more pages than it scans. + + + In modern Linux kernels (5.x and higher), changes in memory management and page reclamation + accounting make %vmeff less reliable as a measure of virtual memory efficiency. These + changes include separating background and direct reclaim metrics, tracking memory operations + with greater granularity, introducing deferred reclamation, and adding support for NUMA-aware + and cgroup-based memory management. Such updates can cause tools like sar + to misinterpret metrics like pgsteal and pgscank, resulting in %vmeff value + exceeding 100% in certain situations. + + + If %vmeff exceeds 100%, avoid using it as a performance indicator. Instead, analyze memory + performance by monitoring pgpgin/s and pgpgout/s for paging activity, majflt/s and fault/s + for page faults, and memory utilization details in /proc/meminfo (for + example, Active, Inactive, Dirty and Writeback). Additionally, correlate these metrics with + application-level performance and I/O patterns to identify potential memory bottlenecks or + inefficiencies. + + Block device statistics report: <command>sar</command> <option>-d</option>