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';
+ }
?>