From cd1c57a8f9611117feab64b8cc37367ae1bf296b Mon Sep 17 00:00:00 2001 From: DL6ER Date: Fri, 16 Dec 2016 12:19:16 +0100 Subject: [PATCH] Improved memory usage determination --- header.php | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/header.php b/header.php index ae924741..1b68aedb 100644 --- a/header.php +++ b/header.php @@ -25,15 +25,24 @@ $nproc = shell_exec('nproc'); // Get memory usage - $free = shell_exec('free'); - $free = (string)trim($free); - $free_arr = explode("\n", $free); - $mem = explode(" ", $free_arr[1]); - $mem = array_filter($mem); - $mem = array_merge($mem); - $used = $mem[2] - $mem[5] - $mem[6]; - $total = $mem[1]; - $memory_usage = $used/$total*100; + $data = explode("\n", file_get_contents("/proc/meminfo")); + $meminfo = array(); + if(count($data) > 0) + { + foreach ($data as $line) { + list($key, $val) = explode(":", $line); + // remove " kB" fron the end of the string and make an integer + $meminfo[$key] = intVal(substr(trim($val),0, -3)); + } + $memory_used = $meminfo["MemTotal"]-$meminfo["MemFree"]-$meminfo["Buffers"]-$meminfo["Cached"]; + $memory_total = $meminfo["MemTotal"]; + $memory_usage = $memory_used/$memory_total; + } + else + { + $memory_usage = -1; + } + // For session timer $maxlifetime = ini_get("session.gc_maxlifetime"); @@ -243,14 +252,21 @@
Memory usage:  ' . sprintf("%.1f",$memory_usage) . '%'; + if($memory_usage > 0.0) + { + echo '""> Memory usage:  ' . sprintf("%.1f",100.0*$memory_usage) . '%'; + } + else + { + echo '""> Memory usage:   N/A'; + } ?>