【Azure Redis 缓存】Azure Redis出现了超时问题后,记录一步一步的排查出异常的客户端连接和所执行命令的步骤

问题描述

Azure Redis在使用的过程中,多次无规律的出现超时问题。抓取到客户端的异常错误后,想进一步的分析是何原因导致了如下异常呢?

Timeout awaiting response (outbound=0KiB, inbound=0KiB, 5984ms elapsed, timeout is 5000ms), command=GET, 
next: GET n:AbpZeroMultiTenantLocalizationDictionaryCache,c:HMedia#zh-CN#0, 
inst: 0, qu: 0, qs: 498, aw: False, rs: ReadAsync, ws: Idle, in: 65536, 
serverEndpoint: xxxxxx-cache.redis.cache.chinacloudapi.cn:6380, 
mc: 1/1/0, mgr: 10 of 10 available, clientName: RD0003FF04A4F7, 
IOCP: (Busy=70,Free=930,Min=250,Max=1000), 
WORKER: (Busy=430,Free=32337,Min=400,Max=32767), v: 2.1.58.34321
No alt text provided for this image

官方文档对该类问题的解释为:


No alt text provided for this image

虽然这里Busy大于Min的Worker数量,表示目前客户端中所设置的ThreadPool值不够用,需要做一定的调整。但是这并不是Redis出现持续超时的根本原因,还是需要继续排查是否有某一方面达到了性能的限制呢?

问题分析

  • 第一步:分析Azure Redis的各种指标,查看在超时时间点是否有突增的尖峰。
  • 第二步:对比尖峰值,查看是否有突破当前定价层的阈值。
  • 第三步:查看Redis日志,发现不常规的点。使用各种已知的命令来辅助调查。
  • 第四步:如何来避免呢?

根据以上的四步原则。查看Azure Redis的指标,发现网络的读写出现尖峰。指标图类似于:


No alt text provided for this image
  • 缓存读取量:指定报告间隔期间,从缓存中读取的数据量,以每秒兆字节数(MB/秒)为单位。 此值来源于支持虚拟机的网络接口卡,该虚拟机托管缓存,但并不特定于 Redis。 此值对应于该缓存使用的网络带宽。如果要针对服务器端网络带宽限制设置警报,则可使用此 Cache Read 计数器来创建警报。
  • 缓存写入量:指定报告间隔期间,写入缓存中的数据量,以每秒兆字节数(MB/秒)为单位。 此值来源于支持虚拟机的网络接口卡,该虚拟机托管缓存,但并不特定于 Redis。 此值对应于从客户端发送到缓存的数据的网络带宽。

但是,只查看主节点的流量(注:Azure Redis有两个节点,一主一从),写入流量(409KB)与上图中的38.07MB却存在巨大的差别, 难到这是有连接直接操作从节点,而不通过主节点?


No alt text provided for this image

#根据以下步骤,就可以查看到从节点的网络写入,读取指标图:

1)在Azure Redis的门户中,打开Metrics页面, 选取name space为Redis Cache standard metrics


No alt text provided for this image

2)Metric 选取Cache Write (Instance Based)


No alt text provided for this image

3)添加Filter,Primary = False


No alt text provided for this image

4)启用Apply Splitting,按照端口细分


No alt text provided for this image

#如果发现从节点有大量的流量操作,已经严重影响主节点的正常指令执行

这个时候,就需要跟进一步的分析,是那些客户端连接到Redis?它们执行命令的次数有多少呢?它们执行了那些命令呢?

可以通过Redis-cli.exe工具连接到Redis后,通过 client list 当前的客户端连接情况和IP地址,已经通过numops查看当前连接已经执行的OPS。然后通过 monitor 指令实时监控命令的执行和所发出请求的IP地址

  1. 使用 redis-cli.exe连接到Azure Redis服务
redis-cli.exe -h yourcachename.redis.cache.chinacloudapi.cn -p 6379 -a YourAccessKey
  1. 使用 client list 查看你连接数和 numops数 (实时)


    No alt text provided for this image
  2. 使用monitor指令监控所执行的命令(实时)


    No alt text provided for this image

#如何来避免其他非法的连接呢?对IP地址进行限制,设置白名单。或者启用内网访问 或者启用专用终结点

No alt text provided for this image

[完]

参考资料

排查 Azure Cache for Redis 超时问题:https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-troubleshoot-timeouts

将 Redis 命令行工具与 Azure Redis 缓存配合使用:https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-redis-cli-tool#connect-using-the-redis-command-line-tool

Azure数据中心各资源的IP地址列表:https://www.microsoft.com/en-us/download/details.aspx?id=57062

Redis Private Endpoint:https://docs.microsoft.com/zh-cn/azure/azure-cache-for-redis/cache-private-link

Redis部署至VNET:https://docs.microsoft.com/zh-cn/azure/azure-cache-for-redis/cache-how-to-premium-vnet

当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

分类: 【Azure Redis 缓存】

标签: Timeout awaiting response, redis-cli, Azure Redis



喜欢的朋友记得点赞、收藏、关注哦!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/144083.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

杰理ac696x使用pwm点亮一个灯

timer_pwm_init(JL_TIMER0, 10000, 10000, IO_PORTA_05, 0);

幂函数的积分型函数

数学上,把形如的函数称为幂函数。幂函数的规律在博文[1]中已作说明。简单地说,前提下,当时幂函数下凸递增,时线性递增,时上凸递增,时为常值函数,时递减,与坐标系的轴和轴的正方向无限…

巨人网络参展云栖大会,两款“游戏+AI”自研大模型应用首发

9月19日,2024云栖大会在杭州开幕,巨人网络携多项“游戏AI”新成果首次参展,两款自研大模型GiantGPT、BaiLing-TTS应用首发,巨人摹境、AI数字人等AI新技术亮相,全方位展示其作为中国“游戏AI”先行者在人工智能领域的前…

代码随想录Day50|图论Part01,leetcode题目:98. 所有可达路径

提示:DDU,供自己复习使用。欢迎大家前来讨论~ 文章目录 图论理论基础Part01图的基本概念图的种类 连通性连通图强连通图连通分量强连通分量 图的构造邻接矩阵邻接表 图的遍历方式 深度优先搜索理论基础DFS 与 BFS 区别dfs 搜索过程代码框架深搜三部曲为…

Android下反调试与反反调试

版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 反调试检测 反调试检测的几种方式。 1. TrackerId 首先,通过 IDA Pro 的调试器附加到当前 app 进程 关于IDA Pro调试android app的详细教程可以…

CS61C 2020计算机组成原理Lecture 04

1. C Memory Layout 1.1 Where Do the Variables Go? 1.2 The Stack 1.2.1 Stack misuse example gpt4解释: 在C语言中,从函数返回指向本地变量的指针是不安全的,原因在于局部变量(本地变量)的生命周期。当一个函数被…

全网最适合入门的面向对象编程教程:50 Python函数方法与接口-接口和抽象基类

全网最适合入门的面向对象编程教程:50 Python 函数方法与接口-接口和抽象基类 摘要: 在 Python 中,接口和抽象基类(Abstract Base Classes, ABCs)都用于定义类的结构和强制子类实现特定的方法,Python 没有…

5.10 创建内核目录

首先是 创建内核的目录。 修改 cmake 然后是 创建 cmake , kernel 目录下的init 目录, init 目录下的start.s 文件,再init目录下 创建init.c init.h 文件。 然后是修改cmake 然后是 start.S 的编写 然后是 创建 init.c init.h 文件。 然后是 修改 img…

如何在WordPress中添加事件Schema(分步指南)

如果你正在举办一个在线活动,那么你可能正在寻找通过网络宣传的方法。此时,模式标记可以帮助你在搜索引擎结果中提高活动的可见性。 活动模式将帮助谷歌和其他搜索引擎更好地理解你的活动详情,使它们能够在活动列表、丰富摘要和谷歌知识面板…

通过markdown表格批量生成格式化的word教学单元设计表格

素材: 模板: 代码: import pandas as pd from python_docx_replace import docx_replace,docx_get_keys from docx import Document from docxcompose.composer import Composerdef parse_markdown_tables(file_path):with open(file_path,…

华为昇腾智算中心-智算中心测试方案与标准

本方案是企业内训课程《华为昇腾智算中心深度技术研修》的一部分授课课件的样例。方案内容中详细阐述了华为昇腾环境下智算中心的测试方案和标准,以确保硬件和软件系统在实际部署和运行中的高效性和稳定性。主要内容包括集群硬件清单、节点拓扑配置以及环境配置。硬…

MySQL数据库迁移与备份实录

这里写目录标题 事情起因的概述查看磁盘空间使用情况为了进一步的明确宕机原因,查看MySQL日志信息进一步排查 如何针对磁盘空间不足进行挂载区域的修改以及数据的迁移与备份分析与梳理如何修改MySQL数据卷的挂载位置停止MySQL服务备份 MySQL 配置文件迁移 MySQL 数据…

info 命令:查看命令手册

一、命令简介 在 Linux 系统中,可以使用 man​ 查看普通的帮助手册。还可以使用 info​ 命令阅读 Info 格式的文档。 ​info​ 文档的特点:大量使用超链接,通过方向键将光标移动到链接的文字,按下回车键,就可以切换到…

新发布的OpenAI o1生成式AI模型在强化学习方面迈出了重要的一步

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

ROS第五梯:ROS+VSCode+C++单步调试

解决问题:在ROS项目中进行断点调试。 第一步:创建一个ROS项目或者打开一个现有的ROS项目。 第二步:修改c_cpp_properties.json 增加一段命令: "compileCommands": "${workspaceFolder}/build/compile_commands.json"第三…

[Python]案例驱动最佳入门:Python数据可视化在气候研究中的应用

在全球气候问题日益受到关注的今天,气温变化成为了科学家、政府、公众讨论的热门话题。然而,全球气温究竟是如何变化的?我们能通过数据洞察到哪些趋势?本文将通过真实模拟的气温数据,结合Python数据分析和可视化技术&a…

【诉讼流程-健身房-违约-私教课-诉讼书提交流程-民事诉讼-自我学习-铺平通往法律的阶梯-讲解(3)】

【诉讼流程-健身房-违约-私教课-诉讼书提交流程-民事诉讼-自我学习-铺平通往法律的阶梯-讲解(3)】 1、前言说明2、流程说明3、现场提交(线下)4、网上提交1-起诉书样例2-起诉书编写(1)原告信息:&…

如何将MySQL卸载干净(win11)

相信点进来的你肯定是遇到了这个问题,那就是在安装MySQL的时候操作错误,最后结果不是自己想要的。卸载重新安装又发现安装不了。其实最主要的原因就是没有将MySQL卸载干净,那么如何把MySQL卸载干净?下面本篇文章就来给大家一步步介…

sensitive-word 敏感词 v0.20.0 数字全部匹配,而不是部分匹配

敏感词系列 sensitive-word-admin 敏感词控台 v1.2.0 版本开源 sensitive-word-admin v1.3.0 发布 如何支持分布式部署? 01-开源敏感词工具入门使用 02-如何实现一个敏感词工具?违禁词实现思路梳理 03-敏感词之 StopWord 停止词优化与特殊符号 04-…

Matlab进行频率切片小波变换

Matlab进行频率切片小波变换(FSWT)源代码,将一维信号生成时频图。 输入信号可以是任何一维信号,心电信号、脑电信号、地震波形、电流电压数据等。 相比连续小波变换(CWT),频率切片小波变换(Frequency Slice Wavelet Transform,FSWT)是一种更具…