文档章节

redis并发处理慢

爱coding
 爱coding
发布于 2014/10/28 14:37
字数 451
阅读 15928
收藏 19

最近项目一上线,就问题颇多,本地测试,ok,上线后,大用户量的时候,顶不住。用了一个礼拜的时间发现的问题,总结下来。

项目是netty4.0,reids2.8,nginx等框架。目前是4台proxy服务器,一台核心服务器,reids只部署在核心服务器上,各代理服务器共享redis数据。

当大量用户访问自己距离较近的proxy服务器时,proxy同时请求核心服务器,并发量到1w时,经常请求卡死,网页请求不回来,开始从netty的http处理并发下手,各种netty的官网,netty的优化,和配置,都修改了,还是没有起作用,后来屏蔽redis后,发现netty处理20w并发一点问题没有,问题确定在redis上。

然后,着手redis的优化,redis的池的优化,配置,没有作用,后台发现,本地访问redis并发1w,很快,但是,访问其他服务器的redis特别卡,发现原因,就在于,跨服务器访问redis,可能由于网络,跨服务器,导致的并发请求redis,回不来的问题,那么,最后,舍弃了proxy服务器远程调用核心服务器reids的方案,nginx改为所有心跳请求,跨过proxy服务器,直接走核心服务器,这样相当于本地访问redis,最后担心核心服务器并发能力,暂时,开启了2个服务,处理所有并发,reids问题得到解决。

总结:就是reids本身性能没有问题,处理并发能力ok,就是跨服务器远程访问其他服务器reids时,并发大了,网络延迟等,会出现取reids卡死。




© 著作权归作者所有

共有 人打赏支持
爱coding
粉丝 24
博文 52
码字总数 29892
作品 0
昌平
程序员
加载中

评论(7)

爱coding
爱coding

引用来自“xdzzzzzzzz”的评论

你的意思是 nginx web 服务器,redis 都安装在同一台机器上?
nginx web服务器可以做负载均衡,没有问题,但是redis不要做跨服务器读取,尽量读本地的,解决方式最好是,redis最主从处理,保证redis主从服务器存储一致,然后各自读各自的reids即可。
x
xdzzzzzzzz
你的意思是 nginx web 服务器,redis 都安装在同一台机器上?
爱coding
爱coding

引用来自“排骨瘦肉丁”的评论

没有明白有什么区别?走不走代理redis连接不都是跨服务器请求么?并且服务器都在一个网段内
程序部署在同一台服务器上,连接本地服务器是ok的,但是程序部署在另一台服务器,连接其他服务器,请求redis速度过于慢,需要指出的是,服务器没有在同一网段内的,全国各地都会部署服务器。
排骨瘦肉丁
排骨瘦肉丁
没有明白有什么区别?走不走代理redis连接不都是跨服务器请求么?并且服务器都在一个网段内
爱coding
爱coding

引用来自“璨er”的评论

谢谢
客气!朋友!
璨er
璨er
谢谢
clouddyy
clouddyy
学习了!
redis超时原因排查

1.低效操作产生的延迟。单命令操作一半很快不会造成这样,SORT,LREM, SUNION,keys ,* 等操作都会影响响应时间。 使用进程监控程序(top, htop, prstat, 等...)来快速查看Redis进程的CPU...

Andy-xu
2016/04/02
3.1K
0
关于Redis的一些思考和总结

日常的业务系统中经常使用到redis,平时也会研究下redis的设计文档和源码,对redis的使用场景、实现方案、运维要点这些常规知识点都有所了解,但是零零碎碎总感觉不够系统,这里结合源码对自...

zqrferrari
2017/11/21
0
0
SegmentFault 技术周刊 Vol.37 - 分布式缓存利器:Redis

Redis 是由意大利程序员 Salvatore Sanfilippo(昵称:antirez)开发的一款内存高速缓存数据库。Redis 全称为 Remote Dictionary Server(远程数据服务),使用 C 语言编写,是一个 key-valu...

keke
2017/11/16
0
0
RabbitMQ与Redis做队列比较

本文仅针对RabbitMQ与Redis做队列应用时的情况进行对比 具体采用什么方式实现,还需要取决于系统的实际需求 简要介绍 RabbitMQ RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,...

Edwyn王
2015/05/20
0
0
Redis 性能问题排查:slowlog 和排队延时

一、Redis Slowlog介绍 [Redis Slowlog]是排查性能问题关键监控指标。它是记录Redis queries运行时间超时特定阀值的系统。 这类慢查询命令被保存到Redis服务器的一个定长队列,最多保存slowl...

IT--小哥
10/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
27
0
学习设计模式——观察者模式

1. 认识观察者模式 1. 定义:定义对象之间一种一对多的依赖关系,当一个对象状态发生变化时,依赖该对象的其他对象都会得到通知并进行相应的变化。 2. 组织结构: Subject:目标对象类,会被...

江左煤郎
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部