论坛首页 Java企业应用论坛

Redis 常见的性能问题和解决方法

浏览 14843 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-07-07  
温柔一刀 写道
finallygo 写道
我想问楼主,如果要写内存快照的时候,你说会阻塞主线程的工作,这个时候客户端是不是会出现连接超时的异常呢??还有就是为什么会阻塞主线程呢,我看好像多出了一个线程单独处理呀,难道和java虚拟机的垃圾回收机制一样,需要那个时候数据是不可以动的???

客户端会出现拿不到资源异常,不会阻塞Redis主线程,是磁盘io阻塞导致主线程无法处理写入请求

可是我使用的是RDB呀,它不是要满足我设定的条件才会写么??redis在持久化快照的时候,我进行的操作应该和磁盘io无关吧??
0 请登录后投票
   发表时间:2012-07-08  
finallygo 写道
温柔一刀 写道
finallygo 写道
我想问楼主,如果要写内存快照的时候,你说会阻塞主线程的工作,这个时候客户端是不是会出现连接超时的异常呢??还有就是为什么会阻塞主线程呢,我看好像多出了一个线程单独处理呀,难道和java虚拟机的垃圾回收机制一样,需要那个时候数据是不可以动的???

客户端会出现拿不到资源异常,不会阻塞Redis主线程,是磁盘io阻塞导致主线程无法处理写入请求

可是我使用的是RDB呀,它不是要满足我设定的条件才会写么??redis在持久化快照的时候,我进行的操作应该和磁盘io无关吧??

比如,当你新增一个Slave的时候,master会先dump,这时候如果有aof日志写入就会出现io阻塞
0 请登录后投票
   发表时间:2012-07-08   最后修改:2012-07-08
温柔一刀 写道
finallygo 写道
温柔一刀 写道
finallygo 写道
我想问楼主,如果要写内存快照的时候,你说会阻塞主线程的工作,这个时候客户端是不是会出现连接超时的异常呢??还有就是为什么会阻塞主线程呢,我看好像多出了一个线程单独处理呀,难道和java虚拟机的垃圾回收机制一样,需要那个时候数据是不可以动的???

客户端会出现拿不到资源异常,不会阻塞Redis主线程,是磁盘io阻塞导致主线程无法处理写入请求

可是我使用的是RDB呀,它不是要满足我设定的条件才会写么??redis在持久化快照的时候,我进行的操作应该和磁盘io无关吧??

比如,当你新增一个Slave的时候,master会先dump,这时候如果有aof日志写入就会出现io阻塞

但是,我没有使用aof日志,也没有新增slave,结果在dump的时候也出现了阻塞,这个是怎么回事呢,尤其是dump的时候遇上了高并发,客户端就会出现大量的连不上服务器端的异常,但是一般就持续个10几秒(这个好像和dump的时间有关系)
0 请登录后投票
   发表时间:2012-07-09  
finallygo 写道
温柔一刀 写道
finallygo 写道
温柔一刀 写道
finallygo 写道
我想问楼主,如果要写内存快照的时候,你说会阻塞主线程的工作,这个时候客户端是不是会出现连接超时的异常呢??还有就是为什么会阻塞主线程呢,我看好像多出了一个线程单独处理呀,难道和java虚拟机的垃圾回收机制一样,需要那个时候数据是不可以动的???

客户端会出现拿不到资源异常,不会阻塞Redis主线程,是磁盘io阻塞导致主线程无法处理写入请求

可是我使用的是RDB呀,它不是要满足我设定的条件才会写么??redis在持久化快照的时候,我进行的操作应该和磁盘io无关吧??

比如,当你新增一个Slave的时候,master会先dump,这时候如果有aof日志写入就会出现io阻塞

但是,我没有使用aof日志,也没有新增slave,结果在dump的时候也出现了阻塞,这个是怎么回事呢,尤其是dump的时候遇上了高并发,客户端就会出现大量的连不上服务器端的异常,但是一般就持续个10几秒(这个好像和dump的时间有关系)

那是因为Redis dump的时候占用了大量系统资源,导致服务器同时能处理的请求数下降,所以会出现你的那个情况,但是不会所有的请求都无法处理,只是一部分,取决于你Redis Server的性能。
0 请登录后投票
   发表时间:2012-07-09  
温柔一刀 写道
finallygo 写道
温柔一刀 写道
finallygo 写道
温柔一刀 写道
finallygo 写道
我想问楼主,如果要写内存快照的时候,你说会阻塞主线程的工作,这个时候客户端是不是会出现连接超时的异常呢??还有就是为什么会阻塞主线程呢,我看好像多出了一个线程单独处理呀,难道和java虚拟机的垃圾回收机制一样,需要那个时候数据是不可以动的???

客户端会出现拿不到资源异常,不会阻塞Redis主线程,是磁盘io阻塞导致主线程无法处理写入请求

可是我使用的是RDB呀,它不是要满足我设定的条件才会写么??redis在持久化快照的时候,我进行的操作应该和磁盘io无关吧??

比如,当你新增一个Slave的时候,master会先dump,这时候如果有aof日志写入就会出现io阻塞

但是,我没有使用aof日志,也没有新增slave,结果在dump的时候也出现了阻塞,这个是怎么回事呢,尤其是dump的时候遇上了高并发,客户端就会出现大量的连不上服务器端的异常,但是一般就持续个10几秒(这个好像和dump的时间有关系)

那是因为Redis dump的时候占用了大量系统资源,导致服务器同时能处理的请求数下降,所以会出现你的那个情况,但是不会所有的请求都无法处理,只是一部分,取决于你Redis Server的性能。

哦...确实是,因为在dump的时候,我ssh到服务器上的时候感觉操作都特别卡,但是奇怪的是,那台服务器不仅仅是一个应用的redis服务呀,还有其他系统的redis,但是其他系统似乎没有收到影响,不知道这个是为什么呢?
0 请登录后投票
   发表时间:2012-07-10  
finallygo 写道
温柔一刀 写道
finallygo 写道
温柔一刀 写道
finallygo 写道
温柔一刀 写道
finallygo 写道
我想问楼主,如果要写内存快照的时候,你说会阻塞主线程的工作,这个时候客户端是不是会出现连接超时的异常呢??还有就是为什么会阻塞主线程呢,我看好像多出了一个线程单独处理呀,难道和java虚拟机的垃圾回收机制一样,需要那个时候数据是不可以动的???

客户端会出现拿不到资源异常,不会阻塞Redis主线程,是磁盘io阻塞导致主线程无法处理写入请求

可是我使用的是RDB呀,它不是要满足我设定的条件才会写么??redis在持久化快照的时候,我进行的操作应该和磁盘io无关吧??

比如,当你新增一个Slave的时候,master会先dump,这时候如果有aof日志写入就会出现io阻塞

但是,我没有使用aof日志,也没有新增slave,结果在dump的时候也出现了阻塞,这个是怎么回事呢,尤其是dump的时候遇上了高并发,客户端就会出现大量的连不上服务器端的异常,但是一般就持续个10几秒(这个好像和dump的时间有关系)

那是因为Redis dump的时候占用了大量系统资源,导致服务器同时能处理的请求数下降,所以会出现你的那个情况,但是不会所有的请求都无法处理,只是一部分,取决于你Redis Server的性能。

哦...确实是,因为在dump的时候,我ssh到服务器上的时候感觉操作都特别卡,但是奇怪的是,那台服务器不仅仅是一个应用的redis服务呀,还有其他系统的redis,但是其他系统似乎没有收到影响,不知道这个是为什么呢?

应该是那台Server的所有的Redis都会受影响的,可能其他系统不敏感,或者访问的不那么频繁,你没有感觉到。
0 请登录后投票
   发表时间:2012-07-10  
温柔一刀 写道
finallygo 写道
温柔一刀 写道
finallygo 写道
温柔一刀 写道
finallygo 写道
温柔一刀 写道
finallygo 写道
我想问楼主,如果要写内存快照的时候,你说会阻塞主线程的工作,这个时候客户端是不是会出现连接超时的异常呢??还有就是为什么会阻塞主线程呢,我看好像多出了一个线程单独处理呀,难道和java虚拟机的垃圾回收机制一样,需要那个时候数据是不可以动的???

客户端会出现拿不到资源异常,不会阻塞Redis主线程,是磁盘io阻塞导致主线程无法处理写入请求

可是我使用的是RDB呀,它不是要满足我设定的条件才会写么??redis在持久化快照的时候,我进行的操作应该和磁盘io无关吧??

比如,当你新增一个Slave的时候,master会先dump,这时候如果有aof日志写入就会出现io阻塞

但是,我没有使用aof日志,也没有新增slave,结果在dump的时候也出现了阻塞,这个是怎么回事呢,尤其是dump的时候遇上了高并发,客户端就会出现大量的连不上服务器端的异常,但是一般就持续个10几秒(这个好像和dump的时间有关系)

那是因为Redis dump的时候占用了大量系统资源,导致服务器同时能处理的请求数下降,所以会出现你的那个情况,但是不会所有的请求都无法处理,只是一部分,取决于你Redis Server的性能。

哦...确实是,因为在dump的时候,我ssh到服务器上的时候感觉操作都特别卡,但是奇怪的是,那台服务器不仅仅是一个应用的redis服务呀,还有其他系统的redis,但是其他系统似乎没有收到影响,不知道这个是为什么呢?

应该是那台Server的所有的Redis都会受影响的,可能其他系统不敏感,或者访问的不那么频繁,你没有感觉到。

这台服务器上也有一些是核心系统,调用的频率也不会比我的低,但是我问了相关系统负责人,他们说他们的应用里没有出现连接的异常信息,后来我把持久化的时间改为一天持久化一次之后,我的系统也没有异常了
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics