Рейтинг:0

Некоторые процессы находятся в неубиваемом спящем состоянии при низком уровне ввода-вывода.

флаг es

Я системный администратор рабочей станции на базе Arch Linux. Наша рабочая станция использует Slurm в качестве диспетчера нагрузки и состоит из одной главной машины и 4 других вычислительных узлов. В последние несколько месяцев мы наблюдаем, что процессы на некоторых узлах время от времени зависают, и перезагрузка узла решает проблему. Мы обнаружили, что застрявшие процессы находятся в состоянии D (диск в спящем режиме), но когда мы использовали команду top или другие команды для проверки ввода-вывода узла, мы обнаружили, что ввод-вывод на самом деле довольно низкий.

Когда некоторые процессы на узле находятся в состоянии D, все на узле работает медленно, но это только для обычных пользователей. Когда мы используем суперпользователя для запуска команд (включая python) на зависших узлах, все работает просто отлично. Но когда мы меняем пользователя на су NORMAL_USER, процесс снова завис. Мы использовали ps вспомогательный и обнаружил, что процесс -баш запускается NORMAL_USER, находится в состоянии D. Мы пытались использовать стрейс чтобы отследить застрявший процесс, и мы также углубились в /прок/ПИД, но ничего полезного мы не нашли. Нам также не удалось идентифицировать какие-либо полезные сообщения от журналctl. Может быть, мы что-то упускаем. Мы готовы принять любые советы или комментарии.

Наша версия ядра 5.10.47-1-lts.

Здесь /proc/PID/статус для процесса в состоянии D. Процесс – это бить процесс, когда мы используем су NORMAL_USER. Это однопоточный процесс.

Название: Баш
Маска: 0022
Состояние: D (диск в спящем режиме)
Тег: 3136723
Нгид: 0
Код: 3136723
PPid: 3136722
TracerPid: 0
ИД: 1000093 1000093 1000093 1000093
Гид: 1000000 1000000 1000000 1000000
FDSize: 256
Группы: 1000000 1000083
NStgid: 3136723
NSpid: 3136723
NSpgid: 3136723
NSid: 3110369
Вмпик: 16904 КБ
ВмРазмер: 16904 КБ
VmLck: 0 КБ
ВмПин: 0 КБ
ВмХВМ: 3788 КБ
VmRSS: 3744 КБ
RSS-Анон: 412 КБ
Rss-файл: 3332 КБ
RssShmem: 0 кБ
ВмДата: 608 КБ
ВмСтк: 132 КБ
VmExe: 588 КБ
VmLib: 1948 КБ
ВмПТЕ: 52 КБ
Вмсвоп: 0 КБ
HugetlbСтраницы: 0 КБ
Сброс ядра: 0
THP_enabled: 1
Темы: 1
Подпись: 12/772094
SigPnd: 00000000000000000
ШдПнд: 0000000008000002
SigBlk: 00000000000000000
Вход: 0000000000384004
SigCgt: 000000004b813efb
CapInh: 0000000000000000
CapPrm: 00000000000000000
КапЭфф: 00000000000000000
CapBnd: 000001ffffffffff
CapAmb: 00000000000000000
Ноньюпривс: 0
Второй комп: 0
Вторичные_фильтры: 0
Speculation_Store_Bypass: уязвимость потока
Cpus_allowed: ffff,ffffffff
Cpus_allowed_list: 0-47
Mems_allowed: 00000003
Mems_allowed_list: 0-1
добровольный_ctxt_switches: 4
недобровольно_ctxt_switches: 1

Здесь /proc/PID/стек для того же процесса.

[<0>] nfs_wait_bit_killable+0x1e/0x90 [nfs]
[<0>] nfs4_wait_clnt_recover+0x60/0x90 [nfsv4]
[<0>] nfs4_client_recover_expired_lease+0x17/0x50 [nfsv4]
[<0>] nfs4_do_open+0x2f4/0xbe0 [nfsv4]
[<0>] nfs4_atomic_open+0xe7/0x100 [nfsv4]
[<0>] nfs_atomic_open+0x1e1/0x520 [nfs]
[<0>] path_openat+0x5f5/0xfc0
[<0>] do_filp_open+0x91/0x130
[<0>] do_sys_openat2+0x96/0x150
[<0>] __x64_sys_openat+0x53/0x90
[<0>] do_syscall_64+0x33/0x40
[<0>] entry_SYSCALL_64_after_hwframe+0x44/0xa9
флаг jp
Процесс, застрявший в NFS, может быть уничтожен с помощью сигнала SIGKILL (kill -9).
David Chiang avatar
флаг es
@AlexD Я пытался убить эти процессы, и их действительно можно убить! Спасибо! Можете ли вы придумать какую-либо причину, по которой процесс зависает в NFS? Сеть между вычислительным узлом и NFS работает нормально, и мы не обнаружили никаких сообщений об ошибках с жалобами на NFS в `journalctl`.
Michael Hampton avatar
флаг cz
Почему узел не обновлен?
David Chiang avatar
флаг es
@MichaelHampton Вы имеете в виду версию ядра?
David Chiang avatar
флаг es
Мы обнаружили, что зависание процесса в NFS может быть вызвано аргументами, которые мы пишем в файле `/etc/fstab`. Мы используем параметры по умолчанию и думаем, что наши проблемы могут быть решены, если мы укажем `fsc` (по умолчанию `nofsc`). Мы обновим вопрос, если это решит проблему. Всем спасибо!
David Chiang avatar
флаг es
После того, как мы изменили параметры монтирования NFS, проблема осталась.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.