pool/web/yaamp/modules/site/memcached.php
Tanguy Pruvot 3a6ec3201a memcache: allow yii to use cache too (db structure)
cache is now enabled in yiimp console too
2016-01-15 15:08:14 +01:00

91 lines
3.2 KiB
PHP

<?php
echo "<a href='/site/memcached'>refresh</a><br>";
$memcache = controller()->memcache->memcache;
$a = memcache_get($this->memcache->memcache, 'url-map');
function printStats($stat)
{
echo "<hr/>";
echo "<table>";
echo "<tr><td>Memcache Server version</td><td> ".$stat["version"]."</td></tr>";
echo "<tr><td>Process id of this server process</td><td>".$stat["pid"]."</td></tr>";
echo "<tr><td>Server uptime </td><td>".$stat["uptime"]." seconds</td></tr>";
echo "<tr><td>Accumulated user time for this process</td><td>".round($stat["rusage_user"],1)." seconds</td></tr>";
echo "<tr><td>Accumulated system time for this process</td><td>".round($stat["rusage_system"],1)." seconds</td></tr>";
echo "<tr><td>Total number of items stored by this server start</td><td>".$stat["total_items"]."</td></tr>";
echo "<tr><td>Number of open connections </td><td>".$stat["curr_connections"]."</td></tr>";
echo "<tr><td>Total number of connections opened since server start</td><td>".$stat["total_connections"]."</td></tr>";
echo "<tr><td>Number of connection structures allocated by the server</td><td>".$stat["connection_structures"]."</td></tr>";
echo "<tr><td>Cumulative number of retrieval requests</td><td>".$stat["cmd_get"]."</td></tr>";
echo "<tr><td> Cumulative number of storage requests</td><td>".$stat["cmd_set"]."</td></tr>";
$percCacheHit=((real)$stat["get_hits"]/ (real)$stat["cmd_get"] *100);
$percCacheHit=round($percCacheHit,3);
$percCacheMiss=100-$percCacheHit;
echo "<tr><td>Number of keys that have been requested and found</td><td>".$stat["get_hits"]." ($percCacheHit%)</td></tr>";
echo "<tr><td>Number of items that have been requested and not found</td><td>".$stat["get_misses"]." ($percCacheMiss%)</td></tr>";
$MBRead= (real)$stat["bytes_read"]/(1024*1024);
echo "<tr><td>Total number of bytes read by this server from network</td><td>".$MBRead." MB</td></tr>";
$MBWrite=(real) $stat["bytes_written"]/(1024*1024) ;
echo "<tr><td>Total number of bytes sent by this server to network</td><td>".$MBWrite." MB</td></tr>";
$MBSize=(real) $stat["limit_maxbytes"]/(1024*1024) ;
echo "<tr><td>Size allowed to use for storage</td><td>".$MBSize." MB</td></tr>";
echo "<tr><td>Items removed from cache to free memory for new items</td><td>".$stat["evictions"]."</td></tr>";
echo "</table>";
}
printStats($this->memcache->memcache->getStats());
$res = array();
function cmp($a, $b)
{
return $a[2] < $b[2];
}
if (!empty($a))
foreach($a as $url=>$n)
{
$d = memcache_get($this->memcache->memcache, "$url-time");
$avg = $d/$n;
$res[] = array($url, $n, $d, $avg);
}
usort($res, 'cmp');
echo '<div style="margin-top: 8px; margin-bottom: 24px; margin-right: 16px;">';
echo '<table class="dataGrid">';
echo "<thead>";
echo "<tr>";
echo "<th>Url</th>";
echo "<th align=right>Count</th>";
echo "<th align=right>Time</th>";
echo "<th align=right>Average</th>";
echo "</tr>";
echo "</thead><tbody>";
if (!empty($res))
foreach($res as $item)
{
// debuglog("$i => $n");
$url = $item[0];
$n = $item[1];
$d = round($item[2], 3);
$avg = round($item[3], 3);
echo "<tr class='ssrow'>";
echo "<td><a href='/$url'>$url</a></td>";
echo "<td align=right>$n</td>";
echo "<td align=right>$d</td>";
echo "<td align=right>$avg</td>";
echo "</tr>";
}
echo "</tbody></table></div>";