运维和开发慌了,Redis突然 "慢" 了,到底谁背锅?

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 运维和开发慌了,Redis突然 "慢" 了,到底谁背锅?

前言

众所周知Redis是单线程,有着极快的响应速度,但是有一天Redis突然变""了,运维甚至开发都慌了,开始一系列的骚操作了,但是一点效果都没有,why?

遇到问题不要慌,首先需要确定的是:Redis真的变慢了吗?

今天陈某就来介绍下以什么标准为基线判断Redis变慢了?

Redis真的变慢了?

我们知道一个应用程序在服务器上运行,它的运行快慢和硬件乃至底层操作系统都有巨大的关系,因此Redis响应慢了就真的是Redis的锅?

如何判断Redis是不是真的变慢了?一个最直接方法:查看Redis响应延迟

大部分情况下Redis的延迟很低,但是在某些时刻延迟突然很高,当你发现Redis命令的执行时间突然增长到几秒,基本就可以认定Redis变慢了。

但是不同的软硬件环境下,延迟时间的标准却是大相径庭,比如在服务器A上延迟为1s时基本就能判定Redis变慢了,在较好配置服务器B上甚至延迟10ms就可以判定Redis变慢了。

显然上述的标准很难判断,此时只能通过Redis基线性能来判断。

基线性能:系统在低压力、无干扰下的基本性能,这个性能只由当前的软件配置决定。

那么如何确定这个基线性能呢?很多人疑惑了?

2.8.7 版本开始,redis-cli 命令提供了–intrinsic-latency 选项,可以用来监测和统计测试期间内的最大延迟,这个延迟可以作为 Redis 的基线性能。其中,测试时长可以用–intrinsic-latency 选项的参数来指定(一般情况下120s足够监测到最大延迟了)。

本机测试(未通过客户端)的监测命令如下:

redis-cli --intrinsic-latency 120
Max latency so far: 1 microseconds.
Max latency so far: 9 microseconds.
Max latency so far: 11 microseconds.
Max latency so far: 29 microseconds.
Max latency so far: 34 microseconds.
Max latency so far: 36 microseconds.
Max latency so far: 42 microseconds.
Max latency so far: 44 microseconds.
Max latency so far: 62 microseconds.
Max latency so far: 599 microseconds.
Max latency so far: 613 microseconds.
Max latency so far: 8158 microseconds.
Max latency so far: 13426 microseconds.
Max latency so far: 16073 microseconds.
Max latency so far: 19587 microseconds.
Max latency so far: 22988 microseconds.
1982697419 total runs (avg latency: 0.0605 microseconds / 605.24 nanoseconds per run).
Worst run took 379819x longer than the average latency.

发现最大的延迟22988微秒,因此这里的基线性能为22988微秒。

基线性能只和操作系统、硬件配置相关,因此这里可以结合基线性能判断Redis是否真的变慢了?

一般运行时延迟达到基线性能的2倍以上则可判定Redis变慢了。

注意:基线性能非常重要,尤其对于虚拟化的环境(虚拟机、容器),他们的基线性能相对很高,因此结合基线性能判断是必要的。

切记:一定要在本机上运行测试命令,如果通过客户端则需要考虑网络性能的影响。

现在有很多网络性能的测量工具,比如iperf,如果发现网络阻塞了,此时就需要联络公司的网络工程师了。

总结

本文介绍了如何判断Redis变慢的标准,即是基线性能,只有结合基线性能和运行延迟相对比,大概超过2倍以上则可判断Redis真的变慢了。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
打赏
0
0
0
0
47
分享
相关文章
AI大模型运维开发探索第四篇:智能体分阶段演进路线
本文探讨了智能体工程的演进历程,从最初的思维链(智能体1.0)到实例化智能体(智能体2.0),再到结构化智能体(智能体3.0),最终展望了自演进智能体(智能体4.0)。文章详细分析了各阶段遇到的问题及解决策略,如工具调用可靠性、推理能力提升等,并引入了大模型中间件的概念以优化业务平台与工具间的协调。此外,文中还提到了RunnableHub开源项目,为读者提供了实际落地的参考方案。通过不断迭代,智能体逐渐具备更强的适应性和解决问题的能力,展现了未来AI发展的潜力。
|
20天前
|
基于SpringBoot的Redis开发实战教程
Redis在Spring Boot中的应用非常广泛,其高性能和灵活性使其成为构建高效分布式系统的理想选择。通过深入理解本文的内容,您可以更好地利用Redis的特性,为应用程序提供高效的缓存和消息处理能力。
128 79
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
141 2
|
6月前
|
【运维基础知识】掌握VI编辑器:提升你的Java开发效率
本文详细介绍了VI编辑器的常用命令,包括模式切换、文本编辑、搜索替换及退出操作,帮助Java开发者提高在Linux环境下的编码效率。掌握这些命令,将使你在开发过程中更加得心应手。
67 2
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
这篇文章介绍了如何使用Spring Boot整合Apache Shiro框架进行后端开发,包括认证和授权流程,并使用Redis存储Token以及MD5加密用户密码。
103 0
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
|
6月前
|
实时计算Flink版在稳定性、性能、开发运维、安全能力等等跟其他引擎及自建Flink集群比较。
实时计算Flink版在稳定性、性能、开发运维和安全能力等方面表现出色。其自研的高性能状态存储引擎GeminiStateBackend显著提升了作业稳定性,状态管理优化使性能提升40%以上。核心性能较开源Flink提升2-3倍,资源利用率提高100%。提供一站式开发管理、自动化运维和丰富的监控告警功能,支持多语言开发和智能调优。安全方面,具备访问控制、高可用保障和全链路容错能力,确保企业级应用的安全与稳定。
97 0
如何使用 C++ 开发 Redis 模块
如何使用 C++ 开发 Redis 模块
自动化运维之路:从脚本到DevOps探索后端开发:从基础到高级实践
【8月更文挑战第28天】在数字化时代的浪潮中,企业对于IT运维的要求越来越高。从最初的手动执行脚本,到如今的自动化运维和DevOps实践,本文将带你领略运维的演变之旅。我们将探索如何通过编写简单的自动化脚本来提升效率,进而介绍DevOps文化的兴起及其对现代运维的影响。文章将为你揭示,通过持续集成、持续部署和微服务架构的实践,如何构建一个高效、可靠的运维体系。准备好让你的运维工作变得更加智能化和自动化了吗?让我们一起踏上这段旅程。 【8月更文挑战第28天】 本文旨在为初学者和有一定经验的开发者提供一个深入浅出的后端开发之旅。我们将一起探索后端开发的多个方面,包括语言选择、框架应用、数据库设计
DevOps文化:打破开发与运维之间的壁垒
【8月更文挑战第14天】DevOps文化是现代软件开发和运维的重要趋势之一。通过打破开发与运维之间的壁垒,实现自动化、持续集成/持续部署以及紧密协作等关键实践,可以显著提高软件交付的质量和效率。对于任何希望在数字化时代保持竞争力的企业来说,拥抱DevOps文化无疑是一个明智的选择。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等