Redis运维
记录运维相关的问题。
金士顿
这个作者很懒,什么都没留下…
展开
-
redis通过sentinel failover报错“NOGOODSLAVE No suitable slave to promote”
问题描述所有sentinel及master都down,5分钟后超过半数的sentinel才全部run起来,此时failover失败报错"NOGOODSLAVE No suitable slave to promote" root cause跟down-after-milliseconds配置相关,代码中如果slave记录的master失联的时间超过max_master_do...原创 2018-11-06 14:16:05 · 3214 阅读 · 1 评论 -
redis 集群 noaddr error 恢复脚本
本脚本修复nodes.conf文件丢失而导致的noaddr error,修复此类问题有两种解决办法:1. 直接修复坏节点的nodes.conf文件,这里不赘述。2. 通过下面脚本在任意节点上执行,目前不支持所有master都坏的情况。prepare:将所有的ip用逗号分隔,存入环境变量$ip_group.执行下列脚本,将password替换:#!/bin/baship_g...原创 2018-10-29 18:47:41 · 1966 阅读 · 1 评论 -
redis集群故障分析
故障表象:业务层面显示提示查询redis失败集群组成:3主3从,每个节点的数据有8GB机器分布:在同一个机架中,xx.x.xxx.199xx.x.xxx.200xx.x.xxx.201redis-server进程状态:通过命令ps -eo pid,lstart | grep $pid,发现进程已经持续运行了3个月发生故障前集群的节点状态:xx.x.xxx.200:8371(bed...转载 2018-09-20 09:30:24 · 2105 阅读 · 1 评论 -
5. THP(Transparent Huge Pages)
在Redis启动的时候,如果发现有这个警告:建议修改THP的相关配置,Linux 内核在2.6.38增加了THP的特性支持大内存页2MB的分配,默认开启。开启的时候,可以降低fork子进程的速度,但fork之后,每一个内存页从原来4KB变为2MB,大幅度增加重写期间父进程的消耗。同时每次写命令引起的复制内存页单位放大了512倍,会拖慢写操作的执行时间,导致大量写操作慢查询。因此Re...原创 2018-08-21 14:13:14 · 841 阅读 · 0 评论 -
4. vm.overcommit_memory wanning
Redis在启动的时候,可能会出现这样的日志:什么是overcommit?Linux对大部分的申请内存的请求回复yes,以便能够运行更多的程序。申请内存后,并不会马上使用内存,这种技术叫做overcommit。如果Redis启动有上述日志说明vm.overcommit_memory=0,Redis提示设置为1.vm.overcommit_memory用来设置内存分配策略,有三个可选值:...原创 2018-08-21 14:07:13 · 568 阅读 · 0 评论 -
3. server can‘’t set maximum open files to ...
Linux可通过ulimit查看和设置系统当前用户进程的资源数。ulimit –a包含打开文件的参数,是单个用户可以同时打开的最大文件个数。Redis允许有多个客户端通过网络进行连接,可以通过配置maxclients来限制最大客户端连接数。Redis启动的时候,经常可以看到以下日志:建议把maxclients设置成10032,默认是10000用来处理客户端,而且内部还会使用最多32...原创 2018-08-21 14:05:26 · 5066 阅读 · 0 评论 -
2. Cannot assign requested address
客户端对redis server频繁建链的时候会出现“Cannot assign requested address”error。原因是每次连接都在很短的时间内结束,导致很多的TIME_WAIT,以至于用光了可用的端口号,所以新的连接没办法绑定端口,即“Cannot assign requestedaddress”。是客户端的问题不是服务器端的问题。通过netstat,的确看到很多TIME_WAI...转载 2018-08-21 14:02:08 · 930 阅读 · 0 评论 -
1. linux 配置优化
SwappinessSwappiness对于操作系统来说比较重要,当物理内存不足,可以将一部分内存页进行交换操作,以解决燃煤直接。但是swap是由硬盘提供的,对需要高并发,高吞吐的应用来说,磁盘IO通常会成为系统瓶颈。在Linux中,并不是要等到所有物理内存都使用完才会使用到swap,参数swappiness会决定操作系统使用swap的倾向程度。取值范围0-100,swappiness值...原创 2018-08-21 11:30:42 · 464 阅读 · 0 评论