Redis-Docker集群的一次踩坑记录
项目背景
线上redis的docker集群用于生产线上有一段时间,也算是一个全新的尝试,利用docker的优势实现高效的redis实例创建和调度。
问题描述
- 最近一段时间,有几台出现崩溃问题,机器load不断升高,有的高达5000多。
- 诸多线程处于D状态,很多请求以及linux命令出现卡死状态。
现象1:很多线程处于D状态
$ > dmesg
INFO: task jbd2/dm-20-8:198571 blocked for more than 120 seconds.
Not tainted 2.6.32-431.29.2.el6.x86_64 #1
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
jbd2/dm-20-8 D 0000000000000009 0 198571 2 0x00000080
ffff88316ac77b30 0000000000000046 0000000000000000 ffffffffa000169d
ffff88316ac77aa0 ffffffff810149b9 ffff88316ac77ae0 0000000000000286
ffff88316acff058 ffff88316ac77fd8 000000000000fbc8 ffff88316acff058
Call Trace:
[<ffffffffa000169d>] ? __map_bio+0xad/0x140 [dm_mod]
[<ffffffff810149b9>] ? read_tsc+0x9/0x20
[<ffffffff81120d00>] ? sync_page+0x0/0x50
[<ffffffff81529c73>] io_schedule+0x73/0xc0
[<ffffffff81120d3d>] sync_page+0x3d/0x50
[<ffffffff8152a73f>] __wait_on_bit+0x5f/0x90
[<ffffffff81120f73>] wait_on_page_bit+0x73/0x80
[<ffffffff8109c530>] ? wake_bit_function+0x0/0x50
[<ffffffff81136fc5>]