范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Redis变慢?深入浅出Redis性能诊断系列文章(一)

  (本文首发于"数据库架构师"公号,订阅"数据库架构师"公号,一起学习数据库技术)
  Redis 作为一款业内使用率最高的内存数据库,其拥有非常高的性能,单节点的QPS压测能达到18万以上。但也正因此如此,当应用访问 Redis 时,如果发现响应延迟变大时就会给业务带来非常大的影响。
  比如在日常使用Redis时,肯定或多或少都遇到过下面这种问题:为什么Redis服务过去一直很稳定,突然从今天某个时间点开始变慢了? 为什么访问Redis相同的命令,有时响应很快,有时却非常慢? 为什么访问Redis突然卡住了,过一会又自动恢复了,这也导致业务请求出现很多的毛刺? …
  如果不理解 Redis 的架构体系、核心功能的实现原理甚至一些命令的使用限制等,那么这种访问变慢问题的排查就会一头雾水,不知道从哪里下手才好。
  本文基于多年使用和运维管理Redis的经验,详细梳理了可能引起Redis性能问题的原因并剖析对应的解决方案,也希望这一系列的文章能帮助大家更加合理的使用 Redis ,快速的定位并解决问题。
  一、Redis访问架构链路分析
  首先,在深入分析Redis服务前,需要弄清楚是不是真的Redis访问变慢了。
  如果我们发现自己的应用服务响应延迟变长,我们首先要排查应用内部,确认是不是访问Redis路径变慢进而拖慢了整个服务的响应吞吐。
  这里有两个比较关键的自查:对于应用服务访问Redis的请求,记录下每次请求的响应延时(比如使用分布式链路跟踪系统等),看看是不是访问Redis响应时间变长了; 排查应用服务的多个节点,看看是不是每个节点都有问题,还是仅仅一个出现了问题。
  这两个是后续深入分析Redis服务问题前的关键自查,事半功倍!
  对于第一点从应用到Redis这条链路变慢的原因可能有如下两个:应用到Redis服务之间的链路出现问题了,比如Redis所在服务器网络负载过高丢包、交换机问题、Proxy变慢等; Redis本身确实因为一些原因变慢了。
  一般服务器层面都会有相关监控,网络的问题很容易就会发现,比如网卡打满、网卡降频【万兆降为千兆】等。
  对于Redis访问链路的响应时间则可以做个模拟监控,如下Redis访问架构,应用程序经过域名系统、VIP系统,最后才到Redis所在的服务器,这种情况下则分别可以模拟 请求域名、请求VIP、请求直连Redis Server三条路径来评估响应时间是否确实变长了。
  下面是另外一种Redis架构,访问路径又有不同,那么排查的方向也不会不同。
  二、Redis性能基准测评
  如果核查发现确实是请求Redis的服务响应耗时变长了,那么此刻就可以把问题分析的焦点放到Redis上了。
  下面我们重点分析下Redis性能问题。
  首先,需要对 Redis 进行基准的性能测试,了解我们的 Redis 服务在当前环境服务器上的基准性能。
  什么是基准性能?
  简单来讲,基准性能就是指在一台负载正常的服务器上,访问Redis的最大的响应延迟和平均响应延迟分别是怎样的?
  为什么要测试基准性能?参考官方提供的响应延迟测试,来判断自己的 Redis服务是否变慢不行吗?
  答案是不行的。
  因为Redis 在不同的软硬件环境下,它的性能表现差别特别大,不同主频型号的CPU、不同的SSD硬盘,都会极大影响Redis的性能表现。服务器配置比较低时延迟为 10ms 时,才认为 Redis响应变慢了,但是如果配置比较高,那么可能延迟是 1ms 时就可以认为 Redis 变慢了。
  所以,只有了解我们的 Redis 在生产环境服务器上的基准性能,才能进一步评估,当其延迟达到什么程度时,才认为 Redis 确实变慢了。
  Redis自带的工具可以帮助我们完成这种测评,如下介绍两种基准性能测试的方式。
  方式一:redis-cli --intrinsic-latency
  为了避免业务测试服务器到 Redis 服务器之间的网络延迟,需要直接在 Redis 服务器上测试实例的响应延迟情况。执行以下命令,就可以测试出这个实例 120 秒内的最大响应延迟:
  shell> redis-cli -h 127.0.0.1 -p 6379 --intrinsic-latency 120
  Max latency so far: 4 microseconds.
  Max latency so far: 5 microseconds.
  Max latency so far: 15 microseconds.
  Max latency so far: 23 microseconds.
  Max latency so far: 64 microseconds.
  Max latency so far: 196 microseconds.
  Max latency so far: 245 microseconds.
  Max latency so far: 246 microseconds.
  Max latency so far: 254 microseconds.
  Max latency so far: 259 microseconds.
  29298480 total runs (avg latency: 4.0958 microseconds / 40957.76 nanoseconds per run).
  Worst run took 63x longer than the average latency.
  从输出结果可以看到,这 120 秒内的最大响应延迟为 259 微秒(0.259毫秒)。
  方式二:redis-benchmark
  Redis-benchmark是Redis官方自带的Redis性能测试工具,可以有效的测试Redis服务的性能.
  shell> redis-benchmark -h 127.0.0.1 -p 6379 -t set,get -c 500 -n 100000
  ====== SET ======
  100000 requests completed in 1.02 seconds
  500 parallel clients
  3 bytes payload
  keep alive: 1
  0.00% <= 1 milliseconds
  0.05% <= 2 milliseconds
  99.09% <= 3 milliseconds
  99.88% <= 4 milliseconds
  100.00% <= 4 milliseconds
  97847.36 requests per second
  ====== GET ======
  100000 requests completed in 1.02 seconds
  500 parallel clients
  3 bytes payload
  keep alive: 1
  0.00% <= 1 milliseconds
  0.05% <= 2 milliseconds
  99.29% <= 3 milliseconds
  99.92% <= 4 milliseconds
  100.00% <= 4 milliseconds
  97656.24 requests per second
  该命令对set和get命令的操作响应时间进行测评,并发500个执行10w次操作,从输出结果可以看到,set的QPS达到了97847,响应时间都在4ms以内;get的QPS达到了97656,最大响应时间也在4ms以内;
  了解了基准性能测试方法,那么我们就可以按照以下几步,来判断 Redis 是否真的变慢了:在相同配置的服务器上,测试一个正常 Redis 实例的基准性能 找到可能变慢的 Redis 实例,测试这个实例的基准性能 对比这个实例的运行延迟与正常 Redis 基准性能,如果性能差距在两倍以上,就可以认为这个 Redis 服务确实响应变慢了
  如果确认是 Redis服务变慢了,那如何排查是哪里发生了问题呢?后面的系列文章将从多个维度来一步步详细分析,欢迎关注。
  如果这篇文章对你有帮助,还请帮忙 点赞、转发  一下,你的支持会激励我输出更多高质量的文章,非常感谢!
  如果你还想看更多优质文章,欢迎关注我的公号「数据库架构师」,提升数据库技能。

东莞高质量发展企业车间开工生产忙编者按高质量发展是做好经济工作的根本要求。站位新时代对标新标尺抢抓新机遇,东莞如何立足双万城市新起点,展现城市的新追求新境界新格局新担当?为此,在春节期间,南方日报南方派出记者深入昨天,红米用户薅了苹果官网3000元相信大家这段时间虽然放假了,但过的也不太清闲,主要是因为咱们的传统就是要在春节里走街访友,而在这个过程中也少不了送礼的情况。为此,不少厂商虽然这段时间进入了休整期,但也针对这个节点西媒阿尔维斯狱中颇受欢迎还给狱友签名,没人管他叫强奸犯直播吧1月27日讯西班牙媒体Telecinco报道,阿尔维斯在狱中颇受欢迎,并给狱友们签名。阿尔维斯入狱至今已过一周,消息称,这位巴西老将在监狱中颇受欢迎,一位即将离开监狱的囚犯还湖人重启交易谈判!3换1报价希尔德,詹姆斯有望迎来顶级三分射手据美媒NBAanalysis报道,引进八村塁之后湖人尝到交易补强的甜头,而且浓眉复出之后的状态依旧神勇。让管理层再次看到争冠的希望,愿意考虑付出一个首轮选秀权,重启与步行者的交易谈偷个闲才是懂生活偷个闲才是懂生活过完年了,人们不舍的与家人道别,纷纷踏上离乡的路途。又开始了一年的奋斗,开始了新一轮的忙碌循环。此时此刻,不由感叹人们过的好累呀!也思考我们应该树立怎样的生活观?怎制定好的目标在生活中,一个人有了生活和奋斗的目标,也就产生了前进的动力。因比,目标不仅仅是一种方向,有了它,更是对自己的一种鞭策,一种鼓励。有了目标,就有了热情,有了积极性,有了使命感,你就会人的一生,抉择很重要爱情的开头总是一见钟情,相见恨晚,爱情的结局总会是一别两宽,各自安好。人到中年,自己的身边的人,来了又离开,离开了就回来。刚开始时,一起聊天,一起吃饭,一起见证人生的理想,可是聊着Corei713700KVSRyzen97900X,谁性能更强?综合评测出炉2022年11月1日,小编写过一篇文章对比Corei713700K和Ryzen77700X的游戏性能,最终结果是Corei713700K以小幅优势胜出。那么,AMD方面再加码,派更这才是我的记得是2016年左右开始下载的头条,那时快手很火,短视频拍摄创作兴起。也是偶然间翻看app被头条这个红色的logo给吸引。在头条之前用的看的基本都是uc,在诺基亚塞班3的时候就一直回收旧手机,拯救大猩猩回收旧手机,拯救大猩猩买了新手机后,旧手机该如何处置?我想,一些人会把旧手机丢在某个角落里吧。如果你是这么做的,那么你肯定没有意识到,这种随意闲置旧手机的行为,可能与大猩猩的数量减IDC2022Q4小米出货量为3,320万部,大幅下降26。3史所未见2022年全球智能手机出货量创2013年以来最低2022Q4小米出货量为3,320万部,大幅下降26。3春节第一天,小米借空气中的汽车反弹了,但是不说这个汽车成功的概率几乎
外资接连出手投资中国房地产释放什么信号?专家解读来源环球时报环球时报记者陈子帅环球时报驻新加坡特约记者辛斌据路透社16日报道,美国私募华平投资和国际房地产开发管理商睿星资本正在涉足中国房市的租赁业务。本月8日,美国黑石集团旗下多新一轮家电以旧换新开启千亿级市场本报记者蒋翰林深圳报道目前,全国各地正在陆续实施新一轮家电以旧换新补贴政策,以刺激消费需求,促进资源再利用循环经济发展。刚刚过去的双11,京东家电以旧换新订单金额是去年同期的7倍苏中国式智慧得与失1这一个月每天都有晨跑的习惯,每天路过一个路口时都会看到一条土狗。我每天都会去观察他,因为他很特别,他看到我没有跑,也没有冲过来向我要吃食,每天路过的时候也只是打量我一下,然后闭眼仰微创新橙色的香蕉你知道是什么味道吗?是富含营养元素的味道在生物技术研究中,一个重要的应用方向就是强化食物的营养,因为在一些较落后的国家与地区,鼓励当地居民购买维生素和微量营养元素的补充剂,可行性实在是太低。所以科学家认为更好的办法,是将IPv6网络部署方案网规补充阅读材料1概述1。1IPv6的部署阶段当前大量的网络是IPv4网络,随着IPv6的部署,很长一段时间是IPv4与IPv6共存的过渡阶段。通常将IPv6的部署划分为三个阶段图11IPv6的部黑科技亮相!来绵阳感受来自东方的神秘力量机器狗高科技消防车智能保安高精尖黑科技自主研发不仅是中国制造,更是中国创造今天,全世界的目光投向这里中国西部,四川绵阳NotonlyMadeinChina,butalsoCreat浅谈Windows驱动开发1。前言最近一段时间,我一直在研究windows驱动开发,下面跟大家简单聊聊对比linux,windows驱动无论是市面上的书籍,视频还是社区,博文以及号主,写的人很少,导致学习曲硬性指标有缺失!提车三天,列表讨论问界M7的优点与不足首先声明,我算华为粉丝,但也是理性粉丝,不会盲目吹捧或贬低任何产品。但任何人都无法避免自身的主观性,我也只能尽可能力求理性客观,有一说一,阐述个人体验下的问界M7的优点与不足。另外什么是对SEO友好的URL?为什么URL对SEO很重要?SEO友好URL是为满足用户和搜索者的需求而设计的URL。具体来说,为SEO优化的URL往往很短,而且关键字丰富。除了标题标签链接锚文本和内容本身,搜索腾讯的利润要靠裁员降薪来提高吗今天在头条看到有个叫饭否科技的自媒体人,发的一篇文章,真的是让我无语了!他竟然提出裁员降薪,来帮腾讯降低成本,从而提升利润,美化财报。这样的观点不是无知就是坏。1。在疫情肆虐的当下KUKA机器人工具坐标建立工具坐标是机器人一个可以由用户自定义的一个坐标系,相当于把机器人的TCP(工具中心点)设置在自己需要的位置,并且以这个点进行机器人运动。这个坐标系有什么好处呢?手动移动改善可围绕T