Я использовал файл / proc / meminfo, чтобы получить значения MemTotal и MemFree. Затем я вычел значение MemFree из MemTotal, чтобы узнать, сколько памяти в данный момент используется системой (не PHP).
function memory_usage() {
return memory_total() - memory_free();
}
function memory_free() {
$fh = fopen('/proc/meminfo','r');
$mem = 0;
while ($line = fgets($fh)) {
$pieces = array();
if (preg_match('/^MemFree:\s+(\d+)\skB$/', $line, $pieces)) {
$mem = $pieces[1];
break;
}
}
fclose($fh);
return $mem;
}
function memory_total() {
$fh = fopen('/proc/meminfo','r');
$mem = 0;
while ($line = fgets($fh)) {
$pieces = array();
if (preg_match('/^MemTotal:\s+(\d+)\skB$/', $line, $pieces)) {
$mem = $pieces[1];
break;
}
}
fclose($fh);
return $mem;
}