HEX
Server: Apache
System: Linux hn220.greenhost.nl 6.12.58 #3 SMP Wed Nov 19 09:04:59 UTC 2025 x86_64
User: webmaster (87278)
PHP: 8.4.5
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
Upload Files
File: //.vs/usr/local/share/statushtdocs/apcmem.php
<?php

if(!function_exists('apc_cache_info') || !($cache=@apc_cache_info($cache_mode))) {
        echo "No cache info available.  APC does not appear to be running.";
  exit;
}

$cache_user = apc_cache_info('user', 1);  
$mem=apc_sma_info();
if(!$cache['num_hits']) { $cache['num_hits']=1; $time++; }  // Avoid division by 0 errors on a cache clear

// don't cache this page
//
header("Cache-Control: no-store, no-cache, must-revalidate");  // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");                                    // HTTP/1.0


// -----------------------------------------------
// Host Stats
// -----------------------------------------------

$mem_size = $mem['num_seg']*$mem['seg_size'];
$mem_avail= $mem['avail_mem'];
$mem_used = $mem_size-$mem_avail;
$seg_size = bsize($mem['seg_size']);
$req_rate = sprintf("%.2f",($cache['num_hits']+$cache['num_misses'])/($time-$cache['start_time']));
$hit_rate = sprintf("%.2f",($cache['num_hits'])/($time-$cache['start_time']));
$miss_rate = sprintf("%.2f",($cache['num_misses'])/($time-$cache['start_time']));
$insert_rate = sprintf("%.2f",($cache['num_inserts'])/($time-$cache['start_time']));
$req_rate_user = sprintf("%.2f",($cache_user['num_hits']+$cache_user['num_misses'])/($time-$cache_user['start_time']));
$hit_rate_user = sprintf("%.2f",($cache_user['num_hits'])/($time-$cache_user['start_time']));
$miss_rate_user = sprintf("%.2f",($cache_user['num_misses'])/($time-$cache_user['start_time']));
$insert_rate_user = sprintf("%.2f",($cache_user['num_inserts'])/($time-$cache_user['start_time']));
$apcversion = phpversion('apc');
$phpversion = phpversion();
$number_files = $cache['num_entries']; 
$size_files = bsize($cache['mem_size']);
$number_vars = $cache_user['num_entries'];
$size_vars = bsize($cache_user['mem_size']);

// Computate critical values

$cache_full_count = $cache['expunges'];
// Fragementation: (freeseg - 1) / total_seg
$nseg = $freeseg = $fragsize = $freetotal = 0;
for($i=0; $i<$mem['num_seg']; $i++) {
	$ptr = 0;
	foreach($mem['block_lists'][$i] as $block) {
		if ($block['offset'] != $ptr) {
			++$nseg;
		}
		$ptr = $block['offset'] + $block['size'];
		/* Only consider blocks <5M for the fragmentation % */
		if($block['size']<(5*1024*1024)) $fragsize+=$block['size'];
		$freetotal+=$block['size'];
	}
	$freeseg += count($mem['block_lists'][$i]);
}

if ($freeseg > 1) {
	$frag = ($fragsize/$freetotal)*100;
} else {
	$frag = 0;
}

$clearit = 0;
$reason = '';

if ($mem_avail < 1024 * 1024 * 6) {
	$clearit = 1;
	$reason .= ' NOMEMFREE ';
}

if ($cache_full_count > 12) {
	$clearit = 1;
	$reason .= ' CACHEFULLCOUNT ';
}

if ($frag > 75) {
	$clearit = 1;
	$reason .= ' FRAGMENTATION';
	if ($frag > 98) {
		$reason .= '_FULL ';
	} else {
		$reason .= '_HIGH ';
	}
}

if ($clearit) {
	apc_clear_cache();
	apc_clear_cache('user');
	apc_clear_cache('opcode');
	echo "APC caches cleared, reason(s): $reason\n";
} else {
	echo "APC caches not cleared\n";
}

//print "$mem_avail\n";
//print "$cache_full_count\n";
//print "$frag\n";

// pretty printer for byte values
//
function bsize($s) {
	foreach (array('','K','M','G') as $i => $k) {
		if ($s < 1024) break;
		$s/=1024;
	}
	return sprintf("%5.1f %sBytes",$s,$k);
}