Memcached
Memcached 是一套分布式的高速缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。
Cloud Insight 监控 Memcached 缓存,查取请求等数据来可视化 Memcached 性能。
性能指标
Cloud Insight 采集 Memcache 以下性能指标:
指标 | 单位 | 具体含义 |
---|---|---|
memcache.avg_item_size | bytes | item 平均大小 |
memcache.bytes_read_rate | bytes/second | 服务器从网络读取字节的速率 |
memcache.bytes_written_rate | bytes/second | 服务器向网络发送字节的速率 |
memcache.cas_badval_rate | keys/second | 在比较(原始)值与提供的值不匹配的情况下,CAS 请求更新失败的速率 |
memcache.cas_hits_rate | hits/second | CAS 请求的命中率 |
memcache.cas_misses_rate | misses/second | CAS 请求的未命中率 |
memcache.cmd_flush_rate | commands/second | flush_all 命令的请求速率 |
memcache.cmd_get_rate | commands/second | get 命令的请求速率 |
memcache.cmd_set_rate | commands/second | set 命令的请求速率 |
memcache.connection_structures | 服务器分配的连接结构数 | |
memcache.curr_connections | connections | 当前服务器打开的连接数 |
memcache.curr_items | items | 当前服务器存储的 item 数量 |
memcache.delete_hits_rate | hits/second | delete 命令删除项目的速率 |
memcache.delete_misses_rate | misses/second | delete 命令没有使项目被删除的速率 |
memcache.evictions_rate | evictions/second | 从缓存中删除有效 item 以释放内存给新 item 的速率 |
memcache.fill_percent | percent | 服务器用于存储 item 的内存占允许的最大值的的百分比 |
memcache.get_hit_percent | percent | 找到的请求的 key 的百分比 |
memcache.get_hits_rate | hits/second | 找到 key 的 get 请求的速率 |
memcache.get_misses_rate | misses/second | 没有找到 key 的 get 请求速率 |
memcache.items.age | seconds | LRU 中最老 item 的年龄 |
memcache.items.crawler_reclaimed_rate | operations/second | LRU Crawler 释放 item 的操作速率 |
memcache.items.direct_reclaims_rate | operations/second | 工作线程不得不直接拉 LRU 尾部以找到新 item 的内存的操作速率 |
memcache.items.evicted_nonzero_rate | evictions/second | 过期时间设置不为 0,但不得不从 LRU 中驱逐的未过期 ite |
memcache.items.evicted_rate | evictions/second | 不得不从 LRU 中驱逐未过期 item 的速率 |
memcache.items.evicted_time | seconds | 自最后一次清除过期 item 起所经历的秒数 |
memcache.items.evicted_unfetched_rate | evictions/second | 每秒从 LRU 驱逐后从未被碰过的有效 item 的数量 |
memcache.items.expired_unfetched_rate | evictions/second | 每秒从 LRU 回收后从未被碰过的过期 item 的数量 |
memcache.items.lrutail_reflocked_rate | items/second | 每秒在 LRU 尾部发现被 refcount 锁住的 item 的数量 |
memcache.items.moves_to_cold_rate | items/second | item 从 HOT 或 WARN 转移到 COLD 的速率 |
memcache.items.moves_to_warm_rate | items/second | item 从 COLD 转移到 WARM 的速率 |
memcache.items.moves_within_lru_rate | items/second | 活跃 item 在 HOT 或 WARN 内碰撞的速率 |
memcache.items.number | items | 当前存储在此 slab class 中的 item 数量 |
memcache.items.number_cold | items | 当前存在 COLD LRU 中的 item 数量 |
memcache.items.number_hot | items | 当前存储在 HOT LRU 中的 item 数量 |
memcache.items.number_noexp | items | 当前存储在 NOEXP class 中的 item 数量 |
memcache.items.number_warm | items | 当前存储在 WARM LRU 中的 item 数量 |
memcache.items.outofmemory_rate | errors/second | 每秒底层 slab class 为新 item 分配空间的错误数 |
memcache.items.reclaimed_rate | operations/second | 每秒使用过期条目来存储新条目的操作数量 |
memcache.items.tailrepairs_rate | operations/second | 每秒 Memcache 自解决的 slab 引用泄漏问题的操作数量 |
memcache.limit_maxbytes | bytes | 服务器被允许用于存储的字节数 |
memcache.listen_disabled_num_rate | events/second | 服务器达到最大连接限制的速率 |
memcache.pointer_size | bits | Host 操作系统上的指针的默认大小 (通常是 32 或 64 ) |
memcache.rusage_system_rate | fractions | CPU 执行当前服务器进程花费的用户时间分数 |
memcache.rusage_user_rate | fractions | 当前服务器进程 CPU 执行内核代码花费的时间分数 |
memcache.slabs.active_slabs | occurrences | 分配的 slab class 的总数 |
memcache.slabs.cas_badval_rate | keys/second | CAS 命令由于 CAS ID 错误而无法修改值的速率 |
memcache.slabs.cas_hits_rate | operations/second | 当前 slab class 中 CAS 命令的修改速率 |
memcache.slabs.chunk_size | bytes | 当前 slab 每个 chunk 的大小 |
memcache.slabs.chunks_per_page | buffers | 每个 page 可以存放的 chunk 数目 |
memcache.slabs.cmd_set_rate | commands/second | 当前 slab class 中 set 命令请求存储数据的速率 |
memcache.slabs.decr_hits_rate | operations/second | 当前 slab class 中 decr 请求的命中率 |
memcache.slabs.delete_hits_rate | operations/second | 当前 slab class 中 delete 请求的命中率 |
memcache.slabs.free_chunks | buffers | 尚未分配给 item 或通过删除被回收的 chunk 数 |
memcache.slabs.free_chunks_end | buffers | 新分配但还没有被使用 chunk 数 |
memcache.slabs.get_hits_rate | hits/second | 当前 slab class 中 get 请求的命中率 |
memcache.slabs.incr_hits_rate | operations/second | 当前 slab class 中 incr 请求的命中率 |
memcache.slabs.mem_requested | bytes | 当前 slab 中被请求用来存储数据的内存空间字节数 |
memcache.slabs.total_chunks | buffers | 分配给当前 slab class 的 chunk 总数 |
memcache.slabs.total_malloced | bytes | 分配给当前 slab page 的内存总量 |
memcache.slabs.total_pages | pages | 分配给当前 slab class 的 page 总数 |
memcache.slabs.touch_hits_rate | operations/second | 当前 slab class 的 touch 命令命中率 |
memcache.slabs.used_chunks | buffers | 已经被分配给 item 的 chunk 的数量 |
memcache.slabs.used_chunks_rate | buffers/second | 已将 chunk 分配给 item 的速率 |
memcache.threads | threads | 当前 Memcached 服务器进程使用的线程数 |
memcache.total_connections_rate | connections/second | 服务器启动以来的连接速率 |
memcache.total_items | items | 服务器启动以来存储的 item 总数 |
memcache.uptime | seconds | 服务器已经运行的秒数 |
配置 Mencached 监控
编辑配置文件
编辑配置文件 conf.d/mcache.yaml,使 Cloud Insight Agent 可以与 Memcached 通信。
init_config:
instances:
- url: localhost # url used to connect to the memcached instance
port: 11211 # If this line is not present, the port will default to 11211
tags:
# In order to be able to continue using the old 'instance:tag', include it below it single quotes
# Any other tags desired can simply be a string value
# If no tags are passed in, a tag of 'instance:(url)_(port)' will be added
- 'instance:instance_tag'
- tag_key:tag_value
重启 Agent
重启 Cloud Insight Agent,使配置生效。
您也可以通过查看 Agent Info 信息,来验证配置是否成功。当出现以下信息,则代表安装成功'。
Checks
======
[...]
mcache
------
- instance #0 [OK]
- Collected 8 metrics & 0 events
有关 Agent Info 信息的查看,请访问帮助中心,查看 Cloud Insight Agent 常用操作。
默认标签
Cloud Insight 采集 Memcached 以下默认主机标签:
标签种类 | 标签含义 |
---|---|
url | 数据库实例地址(例如 "localhost:11211") |
常见问题
- 若要在同一个服务器上监控多个相同的平台服务,参考如何监控多个平台服务。
- 有任何关于产品的使用疑惑,参考常见问题。