Proxmox во FreeBSD
…а затем одна из виртуальных машин Linux начала зависать
Несколько виртуальных машин Linux являются лишь основой, на которой работает Docker. Одна из них (даже не самая загруженная) начала каждые 12-15 часов полностью зависать. Она перестала отвечать на ping, и невозможно было дать какую-либо команду с консоли. Одним словом: зависла.
Поискав в интернете, я нашел несколько ссылок на эту проблему и, наблюдая за ошибками сеанса ssh, который был оставлен подключенным (завис, но всё ещё показывает последнюю ошибку), я обнаружил, что это проблема, аналогичная той, что описана в этом посте, а именно:
"watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [khugepaged:67]"
Я пробовал различные решения, такие как изменение драйвера хранилища, количества ядер, дистрибутива (от Alpine до Debian) и т. д., но ни одна из этих операций не решила проблему. Я также заметил, что проблема возникает со всеми виртуальными машинами Linux, но зависают только те, у которых свежее ядро (> 5.10.x), а остальные продолжают работать. Однако проблема не возникает с *BSD.
В итоге я:
- Уменьшил количество ядер до 1 для виртуальных машин, которые не имели большой нагрузки (некоторые остались с несколькими ядрами), что предполагает проблему с выделением ядер, которые были слишком нагружены.
- Дал команду: "/usr/bin/echo 60 > /proc/sys/kernel/watchdog_thresh" виртуальной машине.
Виртуальная машина стала стабильной, и с тех пор я не видел этой ошибки/предупреждения ни на одной другой машине. Я буду исследовать дальше, но я считаю, что это проблема, связанная с ядром Linux, которое по какой-то причине вызывает kernel panic, если возникают определенные ситуации параллелизма ЦП.
Продолжение следует...
Перевод с некоторыми авторскими заголовками. Автор оригинала: Stefano Marinelli.