问题:公司服务器主要使用windows,最近频繁遇到redis每隔一两天就会访问失败,经过初步排查应用层使用正常,所以记录下redis假死的处理过程
尝试解决:
1、把服务里面的redis配置优化:
我的电脑-》属性-》服务-》redis服务右键-》属性-》服务
将“第一次失败”、“第二次失败”、“后续失败”全部改成“重新启动服务”。
2、修改redis.conf,然后重启redis
maxmemory 3G
maxmemory-policy allkeys-lru
maxmemory-samples 3
3、百度其他解决方案(没试过,仅供参考):
① 修改内核参数(一看就是linux的命令):
1)编辑/etc/sysctl.conf ,改vm.overcommit_memory=1,然后sysctl -p 使配置文件生效
2)sysctl vm.overcommit_memory=1
3)echo 1 > /proc/sys/vm/overcommit_memory
②服务程序中开一线程,进行假死判断,一旦发现假死,执行Environment.Exit(1);这样服务在退出后会重新进行启动。(注:此方法前提是判断假死的线程还在运行)
------------------------------分割线,观察1周看是否生效后续会继续更新结果-----------------------------------------