Redis之延迟监控
延迟监控
- 参考官方文档
- 启用 redis 延迟监控
CONFIG SET latency-monitor-threshold 100 |
---|
单位:毫秒,100表示一百毫秒。如果将 latency-monitor-threshold 的值设置为 0,则表示关闭延迟监控。
- 子命令
1)LATENCY LATEST
返回所有事件的最新延迟样本
2)LATENCY HISTORY event
返回最多160条的给定 event 的延迟时间序列(延迟发生时的时间戳和延迟毫秒数)
3)LATENCY RESET event
重置一个或多个 events 的延迟时间序列数据为零,如果不指定参数 event,则表示重置所有的 events。
4)LATENCY GRAPH event
以文本图表方式展示
5)LATENCY DOCTOR
回复人类可读的延迟分析报告
6)LATENCY HELP
查看使用帮助
- 支持的事件(events)
命令名 | 命令说明 |
---|---|
command | 常规命令 |
fast-command | 时间复杂度为“O(1)”和“O(log N)”的快命令 |
fork | 系统调用 fork |
aof-stat | 系统调用 stat |
aof-write | 系统调用 write |
aof-rename | 系统调用 rename |
aof-fsync-always | 设置“appendfsync allways”时的系统调用 fsync |
aof-write-active-child | 子进程执行的系统调用 fsync |
rdb-unlink-temp-file | 系统调用 unlink |
active-defrag-cycle | 主动碎片整理周期 |
aof-rewrite-diff-write | |
aof-write-alone | 主进程执行的 fsync 系统调用 |
aof-write-pending-fsync | |
expire-cycle | 过期周期 |
eviction-cycle | 淘汰周期 |
eviction-del |
- redis-cli 对延迟监控的支持
与延迟监控有关的参数:
参数名 | 参数说明 |
---|---|
--latency | 以文本方式显示持续采样服务器延迟时间 |
--latency-dist | 以 256 色的频谱方式显示,如果和参数“--latency”同时使用,则被忽略 |
--latency-history | 持续采集并每隔一段时间(默认15秒,可参数“-i”设置其它值)输出一个记录 |
采样的原理是向目标 redis-server 发向 PING 命令来获得延迟时间。
慢日志查询
1)启用慢日志
CONFIG SET slowlog-log-slower-than 100 |
---|
单位:微秒(注意不是毫秒),100表示一百微秒,表示执行时长超过100微秒的命令才会被记录下来。如果值为负数则表示关闭记录慢日志,如果值为0表示记录所有命令的慢日志。
记录慢日志不会有文件操作,所以对性能影响非常小,因此可考虑记录所有命令(将 slowlog-log-slower-than 值设置为 0 即可)。
2)设置记录的慢日志数量
CONFIG SET slowlog-max-len 10 |
---|
上述表示记录最近 10 条慢日志。
3)查询慢日志
SLOWLOG GET |
---|
不带参数返回所有的(配置 slowlog-max-len 决定)慢日志,可指定参数只返回最新的 N 条慢日志,如最新的 10 条:
SLOWLOG GET 10 |
---|
4)查询当前慢日志条数
SLOWLOG LEN |
---|
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义