• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • Memcache::getStats()

    (PECL memcache >= 0.2.0)

    获取服务器统计信息

    说明

    Memcache::getStats([string $type[,int $slabid[,int $limit= 100]]]): array

    Memcache::getStats()返回一个关联数据的服务器统计信息。数组key是统计信息名,值就是统计信息的值。同样你可以使用函数memcache_get_stats()

    参数

    $type

    期望抓取的统计信息类型,可以使用的值有{reset, malloc, maps, cachedump, slabs, items, sizes}。通过memcached协议指定这些附加参数是为了方便memcache开发者(检查其中的变动)。

    $slabid

    用于与参数$type联合从指定slab分块拷贝数据,cachedump命令会完全占用服务器通常用于比较严格的调试。

    $limit

    用于和参数$type联合来设置cachedump时从服务端获取的实体条数。

    返回值

    返回关联数组表示的服务器统计信息或者在失败时返回FALSE

    参见

    • Memcache::getVersion() 返回服务器版本信息
    • Memcache::getExtendedStats() 缓存服务器池中所有服务器统计信息
    pid            Process id of this server process
    uptime          Number of seconds this server has been running
    time          Current UNIX time according to the server
    version          Version string of this server
    rusage_user        Accumulated user time for this process
    rusage_system      Accumulated system time for this process
    curr_items        Current number of items stored by the server
    total_items        Total number of items stored by this server ever since it started
    bytes          Current number of bytes used by this server to store items
    curr_connections    Number of open connections
    total_connections    Total number of connections opened since the server started running
    connection_structures  Number of connection structures allocated by the server
    cmd_get          Cumulative number of retrieval requests
    cmd_set          Cumulative number of storage requests
    get_hits        Number of keys that have been requested and found present
    get_misses        Number of items that have been requested and not found
    bytes_read        Total number of bytes read by this server from network
    bytes_written      Total number of bytes sent by this server to network
    limit_maxbytes      Number of bytes this server is allowed to use for storage.
    Here is a memcache stats analyzer method that can be used to print memcache stats in a nice informative tabular format.
    <?php
    function printDetails($status){
    echo "<table border='1'>";
        echo "<tr><td>Memcache Server version:</td><td> ".$status ["version"]."</td></tr>";
        echo "<tr><td>Process id of this server process </td><td>".$status ["pid"]."</td></tr>";
        echo "<tr><td>Number of seconds this server has been running </td><td>".$status ["uptime"]."</td></tr>";
        echo "<tr><td>Accumulated user time for this process </td><td>".$status ["rusage_user"]." seconds</td></tr>";
        echo "<tr><td>Accumulated system time for this process </td><td>".$status ["rusage_system"]." seconds</td></tr>";
        echo "<tr><td>Total number of items stored by this server ever since it started </td><td>".$status ["total_items"]."</td></tr>";
        echo "<tr><td>Number of open connections </td><td>".$status ["curr_connections"]."</td></tr>";
        echo "<tr><td>Total number of connections opened since the server started running </td><td>".$status ["total_connections"]."</td></tr>";
        echo "<tr><td>Number of connection structures allocated by the server </td><td>".$status ["connection_structures"]."</td></tr>";
        echo "<tr><td>Cumulative number of retrieval requests </td><td>".$status ["cmd_get"]."</td></tr>";
        echo "<tr><td> Cumulative number of storage requests </td><td>".$status ["cmd_set"]."</td></tr>";
        $percCacheHit=((real)$status ["get_hits"]/ (real)$status ["cmd_get"] *100);
        $percCacheHit=round($percCacheHit,3);
        $percCacheMiss=100-$percCacheHit;
        echo "<tr><td>Number of keys that have been requested and found present </td><td>".$status ["get_hits"]." ($percCacheHit%)</td></tr>";
        echo "<tr><td>Number of items that have been requested and not found </td><td>".$status ["get_misses"]."($percCacheMiss%)</td></tr>";
        $MBRead= (real)$status["bytes_read"]/(1024*1024);
        echo "<tr><td>Total number of bytes read by this server from network </td><td>".$MBRead." Mega Bytes</td></tr>";
        $MBWrite=(real) $status["bytes_written"]/(1024*1024) ;
        echo "<tr><td>Total number of bytes sent by this server to network </td><td>".$MBWrite." Mega Bytes</td></tr>";
        $MBSize=(real) $status["limit_maxbytes"]/(1024*1024) ;
        echo "<tr><td>Number of bytes this server is allowed to use for storage.</td><td>".$MBSize." Mega Bytes</td></tr>";
        echo "<tr><td>Number of valid items removed from cache to free memory for new items.</td><td>".$status ["evictions"]."</td></tr>";
    echo "</table>";
      }
    ?>
    Sample usage:
    <?php
     $memcache_obj = new Memcache;
     $memcache_obj->addServer('memcache_host', 11211);
      printDetails($memcache_obj->getStats());
    ?>
    
    The stats output from this function and what is output from the getExtendedStats() are identical except that getExtendedStats() provides information for all servers used.