LINUX.ORG.RU
ФорумAdmin

Зависает Redis Sentinel, куда копать?

 ,


0

1

Внезапно обнаружил, что на виртуалке с Rocky 8 завис Redis Sentinel (ставил пакет @redis:6). Выглядит это так:

$ ps ax | grep redis-sentinel
   1209 ?        Dsl   14:09 /usr/bin/redis-sentinel 192.168.1.2:26379 [sentinel]

Статус D — Uninterruptible sleep (usually IO).

Решил посмотреть с помощью lsof что происходит. Теперь у меня есть еще несколько процессов lsof в состоянии D:

sudo ps ax | grep lsof
  51819 ?        D      0:00 lsof
  51820 ?        Z      0:00 [lsof] <defunct>
  51864 ?        D      0:00 lsof
  51865 ?        Z      0:00 [lsof] <defunct>
  51957 ?        D      0:00 lsof -b
  52971 ?        D      0:00 lsof
  52972 ?        Z      0:00 [lsof] <defunct>

Вопрос: как понять на каком именно IO подвис Redis Sentinel и что бы это могло быть?

Оказалось что баг RHEL ядра при записи в RAM:

[121896.831254] task:redis-sentinel  state:D stack:    0 pid:30943 ppid:     1 flags:0x00004080
[121896.831265] Call Trace:
[121896.831283]  __schedule+0x2d1/0x870
[121896.831298]  ? cpumask_next_and+0x1a/0x20
[121896.831306]  ? update_sd_lb_stats.constprop.120+0xd4/0x8c0
[121896.831316]  schedule+0x55/0xf0
[121896.831324]  io_schedule+0x12/0x40
[121896.831333]  migration_entry_wait_on_locked+0x1ea/0x290
[121896.831343]  ? filemap_fdatawait_keep_errors+0x50/0x50
[121896.831351]  do_swap_page+0x5b0/0x710
[121896.831357]  ? pmd_devmap_trans_unstable+0x2e/0x40
[121896.831367]  ? handle_pte_fault+0x5d/0x880
[121896.831373]  __handle_mm_fault+0x453/0x6c0
[121896.831384]  handle_mm_fault+0xca/0x2a0
[121896.831390]  __do_page_fault+0x1f0/0x450
[121896.831403]  do_page_fault+0x37/0x130
[121896.831413]  page_fault+0x1e/0x30

Обновление ядра должно помочь.

Goganchic ★★
() автор топика
Ответ на: комментарий от Goganchic

С чего ты взял что это баг ядра и что обновление ядра поможет?

при записи в RAM

Запись в RAM делается постоянно всеми неспящими процессами.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)