public function getUsage() { if (!function_exists('memcache_get_extended_stats')) { return false; } if ($this->usage === null) { $servers = DebugBar::getConfig('memcached'); $server = array_shift($servers); $memcache = memcache_connect($server['host'], $server['port']); if ($memcache === false) { return false; } foreach ($servers as $server) { memcache_add_server($memcache, $server['host'], $server['port']); } $stats = memcache_get_extended_stats($memcache); $memory_used = 0; $memory_total = 0; foreach ($stats as $host => $usage) { $memory_used += $usage['bytes']; $memory_total += $usage['limit_maxbytes']; $this->usage[$host] = array('Version' => $usage['version'], 'Uptime' => $this->formatSeconds($usage['uptime']), 'Total memory' => $this->formatBytes($usage['limit_maxbytes']), 'Used memory' => $this->formatBytes($usage['bytes']), 'Available memory' => $this->formatBytes($usage['limit_maxbytes'] - $usage['bytes']), 'Threads / second' => $this->formatNum($usage['total_connections'] / $usage['uptime']), 'Current threads' => $usage['curr_connections'], 'Queries / second' => $this->formatNum($usage['cmd_get'] / $usage['uptime']), 'Hits' => $usage['get_hits'] . ' (' . $this->formatNum($usage['get_hits'] * 100 / $usage['cmd_get']) . '%)', 'Misses' => $usage['get_misses'] . ' (' . $this->formatNum($usage['get_misses'] * 100 / $usage['cmd_get']) . '%)', 'Inserts' => $usage['cmd_set'], 'Deletes' => $usage['delete_hits'], 'Items' => $usage['curr_items']); } $this->percent_used = $this->formatNum($memory_used * 100 / $memory_total); } return $this->usage; }