大家好,我是烤鸭:

这个问题有点奇怪,新服务上线,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差不多。

redisson 大量ping操作,导致 tps过高相关推荐

  1. linux mysql cpu 高,Linux系统中关于Mysql数据库导致CPU很高的问题解决

    Linux系统中关于Mysql数据库导致CPU很高的问题解决 发布时间:2007-11-19 00:01:12来源:红联作者:spworks 服务器环境 Liunx AS4 + PHP5 + Mysq ...

  2. oralce load的时候使用触发器会导致load慢吗_一次FGC导致CPU飙高的排查过程

    今天测试团队反馈说,服务A的响应很慢,我在想,测试环境也会慢?于是我自己用postman请求了一下接口,真的很慢,竟然要2s左右,正常就50ms左右的. 于是去测试服务器看了一下,发现服务器负载很高, ...

  3. windows进程管理器_系统变慢?WMI进程导致的CPU高占用解决

    我们有时会遇到系统变慢的情况,查看资源任务管理窗口发现是WMI导致的CPU高占用所致.那么,WMI究竟为何物,能否解除由它导致的CPU高占用,如何解除? 1. 查明WMI的来龙去脉 WMI是Windo ...

  4. 一次FGC导致CPU飙高的排查过程

    今天测试团队反馈说,服务A的响应很慢,我在想,测试环境也会慢?于是我自己用postman请求了一下接口,真的很慢,竟然要2s左右,正常就50ms左右的. 于是去测试服务器看了一下,发现服务器负载很高, ...

  5. 一次 jbd2进程导致磁盘 io 高的分析解决过程

    故障现象 在3节点组成的大数据集群中,混部了 ES,kafka,zk,pg,mysql,spark,yarn,hdfs,以及业务的 etl 程序等组件.起初发现业务进程处理数据速度很慢,排查后发现数据 ...

  6. DllMain中不当操作导致死锁问题的分析——DllMain中要谨慎写代码(完结篇)

    之前几篇文章主要介绍和分析了为什么会在DllMain做出一些不当操作导致死锁的原因.本文将总结以前文章的结论,并介绍些DllMain中还有哪些操作会导致死锁等问题.(转载请指明出于breaksoftw ...

  7. DllMain中不当操作导致死锁问题的分析--加载卸载DLL与DllMain死锁的关系

    前几篇文章一直没有在源码级证明:DllMain在收到DLL_PROCESS_ATTACH和DLL_PROCESS_DETACH时会进入临界区.这个论证非常重要,因为它是使其他线程不能进入临界区从而导致 ...

  8. DllMain中不当操作导致死锁问题的分析--导致DllMain中死锁的关键隐藏因子2

    本文介绍使用Windbg去验证<DllMain中不当操作导致死锁问题的分析--导致DllMain中死锁的关键隐藏因子>中的结论,调试对象是文中刚开始那个例子.(转载请指明出于breakso ...

  9. DllMain中不当操作导致死锁问题的分析--导致DllMain中死锁的关键隐藏因子

    有了前面两节的基础,我们现在切入正题:研究下DllMain为什么会因为不当操作导致死锁的问题.首先我们看一段比较经典的"DllMain中死锁"代码.(转载请指明出于breaksof ...

最新文章

  1. 第 1 章 容器生态系统 - 003 - 容器生态系统 (续)
  2. 【免费软件测试视频-0016】——LR系列之---协议的选择
  3. python软件包自带的集成开发环境-实验一 熟悉Python的集成开发环境
  4. 图纸管理软件_图纸文件管理操作繁琐?巧用“权限”,管理更高效
  5. java class类型参数_使用Class对象实例化Java类型参数/ generic
  6. 学习使用的编程及调试技巧
  7. 【ES6】什么是Promise?解析Promise的基本用法
  8. 机器学习中的数学(七)--凸优化的基础知识
  9. HLS playlist典型示例
  10. springAOP 之 前置输出
  11. matlab如何看线性趋势线,“excle直线拟合“excel 趋势线 是怎么计算出来的
  12. 苹果6怎样分屏_皮皮喵最新版下载安卓版更新 0.2.6
  13. 凸优化非系统学习之笔记5:内点法
  14. 微信公众号python开发_基于Python的微信公众平台二次开发(Python常用框架、订阅号开发、公众号开发)...
  15. python-转义字符及其使用
  16. android 录屏工具,ShareREC for Android全系统手机录屏软件原理解析
  17. ChatGPT45个插件列表
  18. hadoop 不能加载native-hadoop library问题
  19. Open3D Voxelization 体素化
  20. 【AP】On the Bayesian interpretation of Black-Litterman(2)

热门文章

  1. react学习(15)---antdesign form两种验证
  2. [html] html标签的属性值是否可以省略引号?为什么?
  3. [vue] 说说你对proxy的理解
  4. [js] 请写一个性能最好的深度克隆对象的方法
  5. 前端学习(2583):生态圈练习解答下
  6. 前端学习(2161):vuecli项目得目录结构解析
  7. 前端学习(1655):前端系列实战课程之浏览器类型监测
  8. 71 include动作
  9. MySQL之——The slave I/O thread stops because master and slave have equal...
  10. Github项目|几行代码即可实现人脸检测、目标检测的开源计算机视觉库