LINUX.ORG.RU

Долгая работа plymouth-quit-wait.service и загрузка системы

 , ,


0

1

Система с RedOS (на базе CentOS) стала долго загружаться - 11 минут. Произошло это после того как после подвисания была принудительно перезагружена кнопкой на системнике. Сначала грешил на файлы/диск, выполнял проверку и файловой системы и секторов на бэды все проверки успешно пройдены. Смотрел логи загрузки там ругань вида «smb.service: Failed with result 'timeout'.» , «user@0.service: Failed with result 'timeout'.». Посмотрел еще systemd-analyze blame

systemd-analyze blame | egrep '[0-9]s'
11min 57.982s plymouth-quit-wait.service
  5min 5.498s mariadb.service
 2min 33.186s smb.service
 1min 30.225s user@42.service
       5.882s tuned.service
       5.224s NetworkManager-wait-online.service
       4.737s winbind.service
       2.674s systemd-udev-settle.service
       2.025s cprocsp.service
       1.939s lvm2-monitor.service
       1.025s initrd-switch-root.service
Эти же самые 11 минут «ждет» сервис «plymouth-quit-wait.service»
systemctl cat plymouth-quit-wait.service
[Unit]
Description=Hold until boot process finishes up
After=rc-local.service plymouth-start.service systemd-user-sessions.service

[Service]
ExecStart=-/usr/bin/plymouth --wait
Type=oneshot
RemainAfterExit=yes
TimeoutSec=0

Заменил «ExecStart=-/usr/bin/plymouth --wait» на «ExecStart=strace -fyttT -o /tmp/plymouth.txt /usr/bin/plymouth --wait» и перезагрузился, вот концовка из файла:

2107  10:24:47.735753 socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0) = 6<socket:[55452]> <0.000012>
2107  10:24:47.735794 setsockopt(6<socket:[55452]>, SOL_SOCKET, SO_PASSCRED, [1], 4) = 0 <0.000008>
2107  10:24:47.735837 connect(6<socket:[55452]>, {sa_family=AF_UNIX, sun_path=@"/org/freedesktop/plymouthd"}, 29) = 0 <0.000014>
2107  10:24:47.735882 epoll_ctl(3<anon_inode:[eventpoll]>, EPOLL_CTL_ADD, 6<socket:[55452]>, {EPOLLERR|EPOLLHUP, {u32=33669344, u64=33669344}}) = 0 <0.000010>
2107  10:24:47.735934 epoll_ctl(3<anon_inode:[eventpoll]>, EPOLL_CTL_MOD, 6<socket:[55452]>, {EPOLLERR|EPOLLHUP, {u32=33669344, u64=33669344}}) = 0 <0.000008>
2107  10:24:47.735975 epoll_wait(3<anon_inode:[eventpoll]>, [{EPOLLHUP, {u32=33669344, u64=33669344}}], 64, -1) = 1 <717.839128>
2107  10:36:56.162404 ioctl(6<socket:[55452]>, FIONREAD, [0]) = 0 <0.000011>
2107  10:36:56.162478 epoll_ctl(3<anon_inode:[eventpoll]>, EPOLL_CTL_DEL, 6<socket:[55452]>, NULL) = 0 <0.000007>
2107  10:36:56.162514 epoll_ctl(3<anon_inode:[eventpoll]>, EPOLL_CTL_DEL, 4<pipe:[55445]>, NULL) = 0 <0.000007>
2107  10:36:56.162548 close(4<pipe:[55445]>) = 0 <0.000007>
2107  10:36:56.162576 close(5<pipe:[55445]>) = 0 <0.000010>
2107  10:36:56.162606 close(3<anon_inode:[eventpoll]>) = 0 <0.000007>
2107  10:36:56.162649 exit_group(0)     = ?
2107  10:36:56.162811 +++ exited with 0 +++

из которой видно что системный вызов «epoll_wait» длится 717.839128 секунд, т.е. те же самые 11 минут. Как понять чего он ждет, как-то глубже копнуть (без пересборки чего-либо) можно?

Так же еще следующие симптомы: Подключение по ssh так же очень долгое, может не 11 минут, но минут 5 точно (не засекал). Причем подключение, запрос логина и запрос пароля без задержек, а после ввода пароля уже приходится ждать.

Вывод содержимого из /home (и дальше рекурсивно) с помощью ls -l тоже длится несколько минут. При этом навигация там же с помощью Midnight Commander без каких либо задержек. Комп в домене, но на экране приветствия отображается только локальная учетка, под локальной можно зайти - несколько минут переваривает пароль, потом выводит сообщение «произошла ошибка, и системе не удалось восстановиться, обратитесь к системному администратору», которое висит где-то минуту, после чего уже отображается рабочий стол. А доменную не принимает (не принимает даже логин - учетка не прошла проверку).

Кто-нибудь сталкивался с подобным? Как выяснить чего ждет «epoll_wait»? Или с какой еще стороны можно подойти к выяснению причин происходящего?

PS понимаю что проблема не в самой plymouth-quit-wait.service, но она самая «показательная», что ли.



Последнее исправление: Track (всего исправлений: 1)
Ответ на: комментарий от zimniy

Я бы копал в сторону подключения к домену. По симптомам похоже на проблему при попытке запросить информацию о пользователях.

Бинго! Вывел из домена и все симптомы исчезли. Меньше всего я думал что это связано с доменом.

Спасибо!

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

Осталось узнать почему plymouth лагает из-за домена. Ведь это всего лишь программа для показа графической заставки во время загрузки.

из которой видно что системный вызов «epoll_wait» длится 717.839128 секунд, т.е. те же самые 11 минут. Как понять чего он ждет, как-то глубже копнуть (без пересборки чего-либо) можно?

Из лога очень даже видно: открывается unix-сокет @«/org/freedesktop/plymouthd», добавляется в epoll-дескриптор с ожиданием событий ERR или HUP, и затем ждётся. То есть виснет plymouth, как ты и без этого раньше уже заметил.

firkax ★★★★★
()