Memcached 可观测性最佳实践

B站影视 2024-12-30 17:55 2

摘要:Memcached 是一个高性能、分布式的内存对象缓存系统,用于动态 Web 应用程序以减轻数据库负载。它通过将数据缓存在内存中,极大地减少了数据库查询的次数,从而提高应用程序的响应速度。Memcached 最早由 LiveJournal 的 Danga In

Memcached 是一个高性能、分布式的内存对象缓存系统,用于动态 Web 应用程序以减轻数据库负载。它通过将数据缓存在内存中,极大地减少了数据库查询的次数,从而提高应用程序的响应速度。Memcached 最早由 LiveJournal 的 Danga Interactive 开发,目前已成为许多大型互联网公司使用的基础技术之一。

Memcached 的监控是保障应用性能和稳定性的关键措施,通过实时跟踪缓存的命中率、内存使用、延迟等指标,可以优化缓存策略、识别性能瓶颈、及时排查故障、进行容量规划,确保数据一致性,并为业务分析提供数据支持,从而提升用户体验和系统可靠性。

观测云是一款专为 IT 工程师打造的全链路可观测产品,它集成了基础设施监控、应用程序性能监控和日志管理,为整个技术栈提供实时可观察性。这款产品能够帮助工程师全面了解端到端的用户体验追踪,了解应用内函数的每一次调用,以及全面监控云时代的基础设施。此外,观测云还具备快速发现系统安全风险的能力,为数字化时代提供安全保障。

DataKit 是一个开源的、跨平台的数据收集和监控工具,由观测云开发并维护。它旨在帮助用户收集、处理和分析各种数据源,如日志、指标和事件,以便进行有效的监控和故障排查。DataKit 支持多种数据输入和输出格式,可以轻松集成到现有的监控系统中。

登录观测云控制台,在 集成 -> DataKit 选择对应安装方式,当前采用 Linux 主机部署 DataKit 。

进入 DataKit 安装目录下的 conf.d/db 目录,复制 memcached.conf.sample 并命名为 memcached.conf 。示例如下:

cp memcached.conf.sample memcached.conf

调整 memcached.conf 内容如下:

[[inputs.memcached]]## Servers' addresses.servers = ["localhost:11211"]# unix_sockets = ["/var/run/memcached.sock"]## Set true to enable electionelection = true## Collect extra stats# extra_stats = ["slabs", "items"]## Collect interval.# 单位 "ns", "us" (or "µs"), "ms", "s", "m", "h"interval = "10s"[inputs.memcached.tags]# some_tag = "some_value"# more_tag = "some_other_value"# ...

配置完成后重启 DataKit 即可。

指标描述单位accepting_conns服务器是否正在接受连接countauth_cmds处理的认证命令数量,包括成功或失败的情况countauth_errors认证失败的次数countbytes当前用于存储项目的字节数Bbytes_read此服务器从网络读取的总字节数Bbytes_written此服务器发送到网络的总字节数Bcas_badval找到键但CAS值不匹配的CAS操作次数countcas_hits成功的CAS请求次数countcas_misses针对缺失键的CAS请求次数countconn_yields由于达到 -R 限制而让出给其他连接的次数countconnection_structures服务器分配的连接结构数量countcurr_connections打开的连接数countcurr_items当前存储的项目数量countdecr_hits成功的decr请求次数countdecr_misses针对缺失键的decr请求次数countdelete_hits导致项目被删除的删除请求次数countdelete_misses针对缺失键的删除请求次数countevicted_unfetched从LRU中驱逐但从未被get/incr/append等操作触及的项目数量countevictions为新项目腾出内存而从缓存中移除的有效项目数量countexpired_unfetched从LRU中取出但在过期前从未被get/incr/append等操作触及的项目数量countget_hits已请求并找到存在的键的数量countget_misses已请求但未找到的项目数量counthash_bytes当前哈希表使用的字节数Bhash_is_expanding指示哈希表是否正在扩展到新大小counthash_power_level哈希表当前的大小倍数countincr_hits成功的incr请求次数countincr_misses针对缺失键的incr请求次数countlimit_maxbytes此服务器允许用于存储的字节数B

登录观测云控制台,点击「场景」 -「新建仪表板」,添加视图。

简要描述:Memcached 连接数异常通常表示当前服务器的连接数超过预期或达到了最大连接限制。这可能会导致新连接被拒绝,从而影响应用程序对缓存数据的访问。及时监控和处理连接数异常有助于保障服务的稳定性和响应能力。

简要描述:Memcached 命中率异常表明缓存的请求命中率低于正常水平,这通常意味着更多的请求需要直接访问数据库,可能导致延迟增加和性能下降。通过监控和优化缓存命中率,可以提升系统响应速度和资源利用率。

简要描述:Memcached 驱逐对象异常指的是缓存中对象被频繁驱逐,通常是因为内存不足而需要腾出空间。这可能会导致缓存命中率下降,从而增加对数据库的访问压力。监控并优化驱逐策略,有助于提升缓存的有效利用率和系统的整体性能。

通过观测云统一采集、监控 Memcached 的关键指标,如缓存命中率、内存使用情况、延迟等,可以帮助我们优化缓存策略、识别性能瓶颈并及时排查故障,从而保障系统性能和稳定性。通过实时追踪这些指标,可以有效进行容量规划,确保数据一致性,并为业务分析提供重要支持,从而提升用户体验和系统可靠性。

来源:待春天来到

相关推荐