# xmc **Repository Path**: eeenet/xmc ## Basic Information - **Project Name**: xmc - **Description**: go语言实现的读取memcached的状态,包括连接数、置换率、item数量、内存使用率、get和set的数量、命中率、内存分配情况、其中包括各个page、slabs、chunk的划分及内存使用情况 - **Primary Language**: Go - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-28 - **Last Updated**: 2024-05-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [toc] ### 简介 > xmc是一款分析memcached内存使用情况的工具,通过读取memcached的状态,包括连接数、置换率、item数量、内存使用率、get和set的数量、命中率、内存分配情况、其中包括各个page、slabs、chunk的划分及内存使用情况:git地址:[https://gitee.com/eeenet/xmc](https://gitee.com/eeenet/xmc) ### 快速上手 > 快速编译安装,编译后会生成一个xmc的二进制文件。 `git clone https://gitee.com/eeenet/xmc.git` `cd xmc` `go get ` `go test xmc.go` `go build xmc.go` ### 1.打印帮助信息 > `xmc -h` 帮助命令,打印出帮助信息,及关于一些参数数字的计算方式,参考图中==document==下的计算方式,截图中缺少一个参数`xmc -a`。 ![打印帮助](https://gitee.com/eeenet/xmc/raw/master/images/x1.png) ### 2.查看memcached的基础信息 > `xmc`执行该命令时,默认读取本机的127.0.0.1:11211端口信息,如需要调用远程IP端口时,需要指定IP端口 `xmc --i=192.168.1.1:11211`,参考下图: ![打印基本信息](https://gitee.com/eeenet/xmc/raw/master/images/x1.1.png) 通过上图可以掌握mc的基础信息: - system_time和memcached_time通过这两个参数可以看出mc的时间和系统时间是否一致。 - delete_hits_ratio 删除命中率 - get_hits_ratio 请求命中率 - bytes_read 自从mc启动以来流入mc服务器的字节数 - bytes_written 自从mc启动以来流出mc服务器的字节数 - bytes mc存储对象的数据大小 - memused_ratio 存储对象的数据大小占总内存的比例 - get/set 读写请求比例 ### 3.查看memcached的StatsSizes分布 > memcached内对象大小的数量和占比 ![statssize分布](https://gitee.com/eeenet/xmc/raw/master/images/x3.png) size部分统计stat sizes的信息,第二列为存储的对象数量,第三列为存储对象占总对象的比例。 ### 4.查看memcachd中slab的使用情况 > 查看slab中key的数量、内存使用率、内存占用大小、命中率等情况 ![slab使用情况](https://gitee.com/eeenet/xmc/raw/master/images/x4.png) 各字段说明: - TotalPage 占用page的数量 - PageOccupy 该slab的page数量占总的page的比例 - ChunkPerPage 该slab 在1个page内可以最大分配的数量,一个Page的大小/chunksize就得到这个值 - ChunkUseRate 该slab中已使用的chunk与分配给该slab中chunk总数的比例,也就是chunk的使用率 - MemRequestd 该slab中存储的对象的数据大小 - SlabMemUsedRate 该slab中存储对象的数据大小与该slab已分配的内存的比例,也就是该slab的内存使用率 - MemOccupy 该slab的存储对象大小占mc总的分配内存的比例 - GetRatio 该slab占总请求的比例 ### 5.查看memcachd中slab的置换率、回收及内存使用率 > 查看slab的key的数量、key的置换率、过期及回收数量,以及内存使用率 ![slab置换情况](https://gitee.com/eeenet/xmc/raw/master/images/x5.png) 各参数说明: - Number 该slab存储对象的数量 - EvictedRatio 该slab的置换数占总的置换树的比例 - EvictedTime 该slab最近一次发生置换离现在多少小时 - OutOfmemory 该slab 无法为新对象分配空间的次数 - Reclaimed 该slab 使用一个过期数据的空间来存储数据的次数