设为首页 收藏本站
查看: 851|回复: 0

[经验分享] Redis 性能调优相关笔记

[复制链接]

尚未签到

发表于 2018-11-4 12:16:42 | 显示全部楼层 |阅读模式
可以使用info [类别]输出指定类别内容  info命令输出的数据可分为10个类别,分别是:serverclients
  # Clients
  connected_clients:2 #Redis默认允许客户端连接的最大数量是10000。若是看到连接数超过5000以上,那可能会影响Redis的性能
  client_longest_output_list:0
  client_biggest_input_buf:0
  blocked_clients:0
  限制客户端连接数: maxclients 配置可以配置客户端连接的最大数
  这个数字应该设置为预期连接数峰值的110%到150之间,若是连接数超出这个数字后,Redis会拒绝并立刻关闭新来的连接memory
  # Memory
  #实际缓存占用的内存和Redis自身运行所占用的内存(如元数据、lua)。
  #它是由Redis使用内存分配器分配的内存,所以这个数据并没有把内存碎片浪费掉的内存给统计进去
  #如果used_memory > 可用最大内存,那么操作系统开始进行内存与swap空间交换
  #当 rss > used ,且两者的值相差较大时,表示存在(内部或外部的)内存碎片。
  #内存碎片的比率可以通过 mem_fragmentation_ratio 的值看出。
  #当 used > rss 时,表示 Redis 的部分内存被操作系统换出到交换空间了,在这种情况下,操作可能会产生明显的延迟
  used_memory:9892187056
  used_memory_human:9.21G
  #从操作系统上显示已经分配的内存总量, 包括碎片
  # the RSS will stay more near to the peak

  # the memory consumed by rss is not>  # 比如在某时刻过期了大量数据, used降低, rss不会降低, peak不变, 会是的mem_fragmentation_ratio增大
  # redis 释放的内存, (短期内)不返回给系统, 以便重用
  used_memory_rss:11148713984
  used_memory_peak:11236792296
  used_memory_peak_human:10.47G
  used_memory_lua:35840
  #内存碎片率
  #内存碎片率稍大于1是合理的,这个值表示内存碎片率比较低,也说明redis没有发生内存交换。
  #但如果内存碎片率超过1.5,那就说明Redis消耗了实际需要物理内存的150%,其中50%是内存碎片率
  #若是内存碎片率低于1的话,说明Redis内存分配超出了物理内存,操作系统正在进行内存交换。内存交换会引起非常明显的响应延迟
  mem_fragmentation_ratio:1.13
  mem_allocator:jemalloc-3.6.0persistencestatstotal_connections_received:273
  total_commands_processed:105868 #总共处理的命令数
  instantaneous_ops_per_sec:0
  rejected_connections:0
  sync_full:0
  sync_partial_ok:0
  sync_partial_err:0
  expired_keys:1
  evicted_keys:0 #因为maxmemory限制导致key被回收删除的数量
  keyspace_hits:28076
  keyspace_misses:52981
  pubsub_channels:0
  pubsub_patterns:0
  latest_fork_usec:414replication
  cpu都是累计值, 随着Redis启动的时间长度不断累计上升,并在你重启Redis服务后清0
  used_cpu_sys : Redis 服务器耗费的系统 CPU
  used_cpu_user : Redis 服务器耗费的用户 CPU
  used_cpu_sys_children : 后台进程耗费的系统 CPU
  used_cpu_user_children : 后台进程耗费的用户 CPUcommandstats
  clusterkeyspace回收策略相关配置maxmemoryCONFIG SET/GET maxmemory 100mb 读/写最大内存配置maxmemory 100mb redis.conf 配置如果为0表示没有限制maxmemory-policy 回收策略(当内存达到maxmemory限制)CONFIG SET/GET maxmemory-policymaxmemory-samples 回收样本大小maxmemory-policy 六种方式volatile-lru:(默认值)从已设置过期时间的数据集(server.db.expires)中挑选最近最少使用的数据淘汰volatile-random:从已设置过期时间的数据集(server.db.expires)中任意选择数据淘汰volatile-ttl : 从已设置过期时间的数据集(server.db.expires)中挑选将要过期的数据淘汰allkeys-lru : 从数据集(server.db.dict)中挑选最近最少使用的数据淘汰allkeys-random:从数据集(server.db.dict)中任意选择数据淘汰noeviction : 禁止驱逐数据,永不过期,返回错误tip:如果数据分布符合幂定律分布, 如果你不确定选择什么,allkeys-lru是个很好的选择volatile-ttl 样本同样受maxmemory_samples控制LRU:lru属性redisObject 结果包括一个lru属性, 记录了对象最后一次被命令程序访问的时间OBJECT>lru算法在Redis中LRU算法是一个近似算法,默认情况下,Redis随机挑选maxmemory-samples个键,并且从中选取一个最近最久未使用的key进行淘汰,在配置文件中可以通过maxmemory-samples的值来设置redis需要检查key的个数,但是栓查的越多,耗费的时间也就越久,但是结构越精确(也就是Redis从内存中淘汰的对象未使用的时间也就越久~)性能分析延迟检测Redis-cli --latency -h 127.0.0.1 -p 6379 结果单位是ms;诊断响应延迟跟踪info stats total_commands_processed的变化定期记录total_commands_processed的值。当客户端明显发现响应时间过慢时,可以通过记录的total_commands_processed历史数据值来判断命理处理总数是上升趋势还是下降趋势延迟的可能原因;命令队列里的命令数量过多,后面命令一直在等待中。几个慢命令阻塞Redis。方案:使用多参数命令管道命令避免操作大集合的慢命令Redis配置redis.conf 配置实例:slaveof 127.0.0.1 6380
  requirepass "hello world" # 如果有空格通过命令行传参
  ./redis-server --port 6380 --slaveof 127.0.0.1 6379CONFIG REWRITE 重写配置文件, 会将服务器启动后的CONFIG SET...写入配置文件, 参见http://redisdoc.com/server/config_rewrite.html
  其他监控工具 redis-stat


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-630646-1-1.html 上篇帖子: redis 用setbit(bitmap)统计活跃用户 下篇帖子: redis安装成功,外部无法访问问题?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表