【发布时间】:2016-02-24 19:11:22
【问题描述】:
我在 Ubuntu 14.04 上安装了 redis,我似乎几乎每周都会遇到 RDB 快照完成问题。 Redis版本是3.0.4 64位。
3838:M 2 月 24 日 09:46:28.826 * 后台保存成功终止
3838:M 2 月 24 日 09:47:29.088 * 100000 次变化在 60 秒内。保存...
3838:M 2 月 24 日 09:47:29.230 * 由 pid 17281 开始后台保存
17281:signal-handler (1456338079) 收到 SIGTERM 调度关闭...
3838:M 2 月 24 日 13:24:19.358 # 后台保存由信号 9 终止
3838:M 2 月 24 日 13:24:19.622 * 10 次更改在 900 秒内。保存...
3838:M 2 月 24 日 13:24:19.730 * 后台保存由 pid 17477 开始
您看到的是,在上午 9:47 开始后台保存,但是当我在下午 1:24 找到它时,它似乎完全停止了。我发现分叉的进程基本上没有活动——它消耗的内存量没有增加。我试图“杀死”子进程,但它从未真正退出,所以我不得不怀着极端的偏见(-9)杀死它。
当事情变得糟糕时,我的应用程序中出现以下错误:
2016-02-24 13:11:12,046 [2344] 错误 kCollectors.Main - 添加到 Redis 时出错:没有可用于服务此操作的连接:SADD ALLCH
我的 redis 配置是只做 rdb 快照(没有 AOF)。负载修改繁重,每秒写入数千次。
目前,我的 redis 后台保存没有成功,后台进程变得比常规进程大得多,以至于我的 VM 开始交换。这是我的TOP。 3838是我的redis实例,17477是后台保存进程(如上所述):
顶部 - 14:06:42 上升 118 天,2:05,1 个用户,平均负载:1.07、1.07、1.13
任务:总共 81 个,运行 3 个,睡眠 78 个,停止 0 个,僵尸 0 个
%Cpu(s): 0.8 us, 1.5 sy, 0.0 ni, 45.8 id, 51.3 wa, 0.0 hi, 0.5 si, 0.0 st
KiB 内存:总计 8176996,已使用 8036792,可用 140204,120 个缓冲区
KiB 交换:总共 6289404 个,已使用 3968236 个,免费 2321168 个。 4044 缓存内存PID 用户 PR NI VIRT RES SHR S %CPU %MEM TIME+ 命令
36 根 20 0 0 0 0 S 2.3 0.0 288:05.05 kswapd0
3838 rrr 20 0 7791836 3.734g 612 S 2.0 47.9 330:08.65 redis 服务器
17477 rrr 20 0 7792228 6.606g 364 D 1.0 84.7 0:43.49 redis 服务器
【问题讨论】:
标签: redis