未加星标

百万级消息推送 Redis 性能排查

字体大小 | |
[数据库(综合) 所属分类 数据库(综合) | 发布者 店小二04 | 时间 2016 | 作者 红领巾 ] 0人收藏点击收藏

百万级消息推送 Redis 性能排查

You are here:架构&实践 -性能和可伸缩性

Frank2015/02/22阅读: 503评论: 0收藏: 0

服务性能 Redis

最近查看消息推送的监控信息,日推送量到百万,但是随之而来的是 TP99 搞到 5秒,详细对日志打了埋点,监控其瓶颈,最终定位是 Redis 的性能问题。但是令人疑惑的是,对比了其他应用系统 Redis 的性能,日吞吐量亿次的 TP99 才 5~10ms,故猜测一定是应用问题导致了 Redis 的性能下降!查看了应用服务器的网络 IO,发现网络吞吐量异常的汹涌!查看了 Redis 服务器的配置参数,...

最近查看消息推送的监控信息,日推送量到百万,但是随之而来的是 TP99 搞到 5秒,详细对日志打了埋点,监控其瓶颈,最终定位是 Redis 的性能问题。


百万级消息推送 Redis 性能排查

但是令人疑惑的是,对比了其他应用系统 Redis 的性能,日吞吐量亿次的 TP99 才 5~10ms,故猜测一定是应用问题导致了 Redis 的性能下降!

查看了应用服务器的网络 IO,发现网络吞吐量异常的汹涌!


百万级消息推送 Redis 性能排查

查看了 Redis 服务器的配置参数,发现 Redis 内存占用 7G+,Key键值对 1200万+,Reids 的使用可见一斑!但这并不能直接影响 Redis 的性能下降!


百万级消息推送 Redis 性能排查

于是,我们又查看了 Redis 的 Showlog,终于发现详细,Redis 被大量的调用 SMEMBERS 命令,而每次调用几乎耗时 5s+。


百万级消息推送 Redis 性能排查

SMEMBERS 命令是从一个 Set 结构获取集合,但这个集合数据量已经很大,当这个结合被频繁的调用,会极大的占用网络 IO,当网络被占满时,其余的操作也变得慢下来!

同时,查看了 Redis 的连接情况,发现连接数 1000 左右,保持的比较高,又重新查看 Redis 的配置文件!


百万级消息推送 Redis 性能排查

配置文件中 timeout = 0,这表明 Redis 默认不会断开客户端的连接,这造成的问题:已经无效的连接会造成网络 IO 的浪费!


百万级消息推送 Redis 性能排查

这次问题排查的反思,跟之前 502 有些相似,都是隐藏极深的问题导致的,问题不再是赤裸裸的暴露出来,而是蒙上了一层面纱!

转载请并标注:

“本文转载自 http://www.linkedkeeper.com/detail/blog.action?bid=37 (文/Frank)”

本文数据库(综合)相关术语:系统安全软件

主题: Redis服务器数据定位
分页:12
转载请注明
本文标题:百万级消息推送 Redis 性能排查
本站链接:http://www.codesec.net/view/482943.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 数据库(综合) | 评论(0) | 阅读(38)