Redis性能调优:保存SNAPSHOT对性能的影响

标签: redis 性能调优 snapshot | 发表时间:2014-07-15 18:58 | 作者:wilbertzhou
出处:http://blog.csdn.net

前一段时间,开发环境反馈,Redis服务器访问非常慢,每个请求要数秒时间,重启之后2~3天又会这样。

我查看了一下Linux的性能,没有什么问题。通过

# redis-cli --latency

发现访问Redis确实很慢,执行info要几秒时间。里面有个参数已连接的客户端几万个,通过

Redis>client list

查看到很多client的age都很大,一直没有释放。于是怀疑是不是和这个有关,因为版本是2.8.6,无法通过client一次性kill掉所有的连接,只能写一个程序,一个一个地kill掉(

  CLIENT KILL addr:port)。但问题依然存在。

于是进一步查看配置文件,发现SHNAPSHOT是默认打开状态,

 save 900 1

 save 300 10

 save 60 10000

因为我们缓存是用于Session保存,不推荐快照保存,特别是在Redis是VM机器上,对整体的性能影响会很大。于是参考我们的手册注释:

################################ 快照 #################################

# 保存数据到磁盘,格式如下:

#  save <seconds> <changes>

#   指出在多长时间内,有多少次更新操作,就将数据同步到数据文件rdb。

#   相当于条件触发抓取快照,这个可以多个条件配合

#   比如默认配置文件中的设置,就设置了三个条件

#  save 900 1  900秒内至少有1个key被改变

#  save 300 10  300秒内至少有300个key被改变

#  save 60 10000  60秒内至少有10000个key被改变

# Session缓存服务器不使用快照,都注释

# save 900 1

# save 300 10

# save 60 10000

重启Redis之后,观察了一个月时间,再没有反馈到性能问题了。

另外在没有使用客户端的PUB/SUB的情况下,建议参考下面的参数,设置客户端的连接超时,在300毫秒后,如果不用,服务端会自动关闭连接,释放资源。默认是关闭的。

# 设置客户端连接时的超时时间,单位为秒。当客户端在这段时间内没有发出任何指令,那么关闭该连接

# 0是关闭此设置

# 推荐5分钟。

timeout 300

# TCP keepalive

# 在Linux上,指定值(秒)用于发送ACKs的时间。注意关闭连接需要双倍的时间。默认为0。

# 推荐60。

tcp-keepalive 60

注:

Redis 2.8.12已经可以通过client类型,一次性kill到所有相关的连接。


作者:wilbertzhou 发表于2014-7-15 10:58:16 原文链接
阅读:62 评论:0 查看评论

相关 [redis 性能调优 snapshot] 推荐:

Redis性能调优:保存SNAPSHOT对性能的影响

- - CSDN博客系统运维推荐文章
前一段时间,开发环境反馈,Redis服务器访问非常慢,每个请求要数秒时间,重启之后2~3天又会这样. 我查看了一下Linux的性能,没有什么问题. 发现访问Redis确实很慢,执行info要几秒时间. 里面有个参数已连接的客户端几万个,通过. 查看到很多client的age都很大,一直没有释放. 于是怀疑是不是和这个有关,因为版本是2.8.6,无法通过client一次性kill掉所有的连接,只能写一个程序,一个一个地kill掉(.

Redis性能调优 - 简书

- -
尽管Redis是一个非常快速的内存数据存储媒介,也并不代表Redis不会产生性能问题. 前文中提到过,Redis采用单线程模型,所有的命令都是由一个线程串行执行的,所以当某个命令执行耗时较长时,会拖慢其后的所有命令,这使得Redis对每个任务的执行效率更加敏感. 针对Redis的性能优化,主要从下面几个层面入手:.

Redis基础、高级特性与性能调优

- - 文章 – 伯乐在线
本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍. 之后概览Redis提供的高级能力,并在部署、维护、性能调优等多个方面进行更深入的介绍和指导. 本文适合使用Redis的普通开发人员,以及对Redis进行选型、架构设计和性能调优的架构设计人员.

Opera 11.10 snapshot 2076 发布

- Dolphin - cnBeta.COM
Opera 11.10 snapshot 2076 发布,本版将Presto 引擎升级至 2.8.130,并修复了一些快速拨号及Windows 安装包问题. 但这是一个开发版,不推荐普通用户使用,仅供测试. 此版本存在着很多已知问题,可能会造成崩溃或者数据丢失,甚至无法正常使用. 请勿覆盖之前 的版本,并在备份数据后安装使用.

Data Guard - Snapshot Standby Database配置

- - 数据库 - ITeye博客
一般情况下,物理standby数据库处于mount状态接收和应用主库的REDO日志,物理standby数据库不能对外提供访问. 如果需要只读访问,那么可以临时以read-only的方式open物理备库,或者配置ACTIVE DATA GUARD,那么物理standby数据库可以进行只读(read-only)访问(比如报表业务查询),但是物理standby数据库不能进行读写操作(read-write).

HBase性能调优

- - 学着站在巨人的肩膀上
我们经常看到一些文章吹嘘某产品如何如何快,如何如何强,而自己测试时却不如描述的一些数据. 其实原因可能在于你还不是真正理解其内部结构,对于其性能调优方法不够了解. 本文转自TaoBao的Ken Wu同学的博客,是目前看到比较完整的HBase调优文章. 原文链接:HBase性能调优. 因官方Book Performance Tuning部分章节没有按配置项进行索引,不能达到快速查阅的效果.

hbase性能调优

- - 数据库 - ITeye博客
   1)、hbase.regionserver.handler.count:该设置决定了处理RPC的线程数量,默认值是10,通常可以调大,比如:150,当请求内容很大(上MB,比如大的put、使用缓存的scans)的时候,如果该值设置过大则会占用过多的内存,导致频繁的GC,或者出现OutOfMemory,因此该值不是越大越好.

Hadoop性能调优

- - 开源软件 - ITeye博客
是否对任务进行profiling,调用java内置的profile功能,打出相关性能信息. 对几个map或reduce进行profiling. 非常影响速度,建议在小数据量上尝试. 1表示不reuse,-1表示无限reuse,其他数值表示每个jvm reuse次数. reuse的时候,map结束时不会释放内存.

MapReduce - 性能调优

- - CSDN博客云计算推荐文章
        Hadoop为用户作业提供了多种可配置的参数,以允许用户根据作业特点调整这些参数值使作业运行效率达到最优.         对于一大批MapReduce程序,如果可以设置一个Combiner,那么对于提高作业性能是十分有帮助的. Combiner可减少Map Task中间输出的结果,从而减少各个Reduce Task的远程拷贝数据量,最终表现为Map Task和Reduce Task执行时间缩短.

Java 性能调优

- - 编程语言 - ITeye博客
1.用new关键词创建类的实例时,构造函数链中的所有构造函数都会被自动调用. 但如果一个对象实现了Cloneable接口,我们可以调用它的clone()方法. clone()方法不会调用任何类构造函数. 在使用设计模式(Design Pattern)的场合,如果用Factory模式创建对象,则改用clone()方法创建新的对象实例非常简单.