redisson 大量ping操作,导致 tps过高

大家好,我是烤鸭:

    这个问题有点奇怪,新服务上线,redis tps居高不下,还都是ping命令。

环境:

服务 : 280台,redis集群:12主24从

问题

由于服务刚上线,还没有访问,发现ping命令的qps 7K,就很纳闷。运维帮忙看了下,确认这些命令的发起ip是业务服务。

在这里插入图片描述

问题排查

项目中用到了 lettuce和redisson,在测试环境测试,尝试把redisson去掉后,没有大量ping了。

加上之后,又有了,频率大概是 每分钟 26次。
在这里插入图片描述

看下源码

跟了源码发现是 PingConnectionHandler.sendPing 发起的ping操作。

如果触发了 channelActive 就会定时执行ping,检测channel 是否还保持连接。

protected void sendPing(final ChannelHandlerContext ctx) {final RedisConnection connection = RedisConnection.getFrom(ctx.channel());final RFuture<String> future = connection.async(StringCodec.INSTANCE, RedisCommands.PING);config.getTimer().newTimeout(new TimerTask() {@Overridepublic void run(Timeout timeout) throws Exception {CommandData<?, ?> commandData = connection.getCurrentCommand();if ((commandData == null || !commandData.isBlockingCommand()) && (future.cancel(false) || !future.isSuccess())) {ctx.channel().close();log.debug("channel: {} closed due to PING response timeout set in {} ms", ctx.channel(), config.getPingConnectionInterval());} else {sendPing(ctx);}}// 决定ping的频率,为0表示不再ping了,默认是0}, config.getPingConnectionInterval(), TimeUnit.MILLISECONDS);
}

在这里插入图片描述

大部分人都不会有这个问题,因为 redisson默认的 pingConnectionInterval 就是0…

在这里插入图片描述

主要是写公共组件那哥们把这个值默认写成了60s…

在这里插入图片描述

结论

这个值改了之后就没有这个问题了。不过ping tps: 7k 确实有点诡异。

这个7k 只是部分client发起的,再平均到redis 实例,每个实例150 tps,也还可以接受吧。

最终发现是发现不同的grafana统计数据有差异,估计150 tps差不多。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于-编码进阶

中国电脑的windows 的默认编码是gbk. "记事本"是gbk, 和windows的编码一样.linux 的默认编码是utf-8苹果OS的默认编码是utf-8.str 字符串在内部的默认编码是 unicode # 英文str: 表现形式alex内部编码: 字符串str-> unicodebytes:表新形式 balex      …

PMP 学习总结

大家好&#xff0c;我是烤鸭&#xff1a; PMP终于考过了。成绩出了一个月了&#xff0c;一直想写一篇总结但没下笔&#xff0c;主要原因最近有点忙(太懒了)。考试的内容是基于第6版的。 晒个证书 证书上没写等级&#xff0c;一般都宣称5A过(其实我是 4A1T过的)。 学习过程…

[css] 你有用过CSS预处理器吗?喜欢用哪个?原理是什么?

[css] 你有用过CSS预处理器吗&#xff1f;喜欢用哪个&#xff1f;原理是什么&#xff1f; 它能让你的CSS具备更加简洁、适应性更强、可读性更强、层级关系更加明显、更易于代码的维护等诸多好处。 CSS预处理器种类繁多&#xff0c;目前Sass、Less、用的比较多。 使用功能&…

处理器映射器(HandlerMapping)及处理器适配器(HandlerAdapter)详解(一)

非注解 处理器映射器 和 处理器适配器 处理器映射器&#xff1a; 第一种: BeanNameUrlHandlerMapping <!-- 配置Handler --> <bean id"userController1" name"/queryUsers.action" class"com.bjxb.ssm.controller.UserController" />…

Gateway Sentinel 做网关降级/流控,转发header和cookie

大家好&#xff0c;我是烤鸭&#xff1a; Springcloud Gateway 使用 Sentinel 流量控制。 环境 springcloud-gateway的网关应用&#xff0c;springboot的服务&#xff0c;nacos作为注册中心 sentinel-dashboard-1.8.2 最新版下载地址&#xff1a; https://github.com/aliba…

[css] 说说CSS的优先级是如何计算的?

[css] 说说CSS的优先级是如何计算的&#xff1f; 选择器种类严格来讲&#xff0c;选择器的种类可以分为三种&#xff1a;标签名选择器、类选择器和ID选择器。而所谓的后代选择器和群组选择器只不过是对前三种选择器的扩展应用。而 在标签内写入 style"" 的方式&…

django后台数据管理admin设置代码

新建admin用户 createsuperuser 设定好用户名&#xff0c;邮箱&#xff0c;密码 设置setting LANGUAGE_CODE zh-hansTIME_ZONE Asia/ShanghaiUSE_I18N TrueUSE_L10N TrueUSE_TZ False 在写好的users的app下修改admin.py # -*- coding: utf-8 -*- from __future__ import u…

rocketmq 初探(一)

大家好&#xff0c;我是烤鸭&#xff1a; 今天看下rocketmq。这篇主要是简单介绍下 rocketmq以及idea 本地调试 rocketmq。 项目架构 感兴趣的可以下载源码看下。 https://github.com/apache/rocketmq 项目结构图。 rocketmq-acl: acl 秘钥方式的鉴权&#xff0c;用在bro…

[css] 说说浏览器解析CSS选择器的过程?

[css] 说说浏览器解析CSS选择器的过程&#xff1f; 按照从上到下&#xff0c;从右到左的顺序解析。个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

客户将数据库迁移上云的常用办法

下载网站:www.SyncNavigator.CN 客服QQ1793040---------------------------------------------------------- 关于HKROnline SyncNavigator 注册机价格的问题 HKROnline SyncNavigator 8.4.1 非破解版 注册机 授权激活教程 最近一直在研究数据库同步的问题&#xff0c;在网上…

基于nchan打造百万用户的聊天室

大家好&#xff0c;我是烤鸭&#xff1a; 这次介绍下nchan&#xff0c;nginx的一个module。 nchan 源码: https://github.com/slact/nchan 官网: https://nchan.io/ nginx 配置说明文档: https://nchan.io/documents/nginxconf2016-slides.pdf 测试环境搭建 4 台linux cent…

springboot 获取控制器参数的几种方式

这里介绍springboot 获取控制器参数有四种方式 1、无注解下获取参数 2、使用RequestParam获取参数 3、传递数组 4、通过URL传递参数 无注解下获取参数无注解下获取参数&#xff0c;需要控制器层参数与HTTP请求栏参数名称一致&#xff0c;这样后台就可以获取到请求栏的参数。 /*…

rocketmq 初探(二)

大家好&#xff0c;我是烤鸭&#xff1a; 上一篇简单介绍和rocketmq&#xff0c;这一篇看下源码之注册中心。 namesrv 先看两个初始化方法 NamesrvController.initialize() 和 NettyRemotingServer.start(); public boolean initialize() {// 加载配置文件this.kvConfigMana…

[css] 说说你对line-height是如何理解的?

[css] 说说你对line-height是如何理解的&#xff1f; line-height 行高&#xff0c;就是两行文字之间基线的距离&#xff0c;用来调整文字的行间距。个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 …

2 JVM 运行机制

转载于:https://www.cnblogs.com/likevin/p/10186591.html

[css] 要让Chrome支持小于12px的文字怎么做?

[css] 要让Chrome支持小于12px的文字怎么做&#xff1f; 1, 改用图片 2, 使用 -webkit-text-size-adjust:none; 但是不支持chrome 27.0以上版本 3, 使用 transform: scale( )缩小 暂时不知道更多方法了个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易…

rocketmq 初探(三)

大家好&#xff0c;我是烤鸭&#xff1a; 上一篇介绍了注册中心&#xff0c;这一篇看下broker。基于 rocketmq 4.9 版本。 BrokerStartup#BrokerController 按照代码的先后顺序撸源码&#xff1a; BrokerController.createBrokerController public static BrokerController…

WIN10远程连接时提示内部错误

微软官方的解决方案是重置远程连接设置&#xff0c;步骤如下&#xff1a; 1、以管理员身份运行命令提示符 2、输入以下命令&#xff1a; netsh winsoc reset 随后会提示重启电脑&#xff0c;遂解决。 3、重启后还不行的话&#xff0c;再试试删除掉远程连接保存的凭据&#xff0…

[css] css的属性content有什么作用呢?有哪些场景可以用到?

[css] css的属性content有什么作用呢&#xff1f;有哪些场景可以用到&#xff1f; content属性与 ::before 及 ::after 伪元素配合使用生成文本内容通过attr()将选择器对象的属性作为字符串进行显示&#xff0c;如&#xff1a;a::after{content: attr(href)} <a href"h…

rocketmq 初探(四)

大家好&#xff0c;我是烤鸭&#xff1a; 上一篇简单介绍broker的初始化&#xff0c;这一篇介绍 NettyRequestProcessor 的实现(主要是broker里用到的)。 AdminBrokerProcessor、ClientManageProcessor、ConsumerManageProcessor、EndTransactionProcessor NettyRequestProce…