медленная загрузка systemd - systemd-tmpfiles-setup

медленная загрузка systemd - systemd-tmpfiles-setup

Недавно я обновился до Debian Jessie (текущее тестирование), и после этого среднее время загрузки увеличилось до 3-4 минут.

Между запуском grubи gdmзапуском я получаю это сообщение в течение 2-3 минут.

A job is running for creating volatile and temporary files and directories

Вот выводsystemd-analyze blame

[smit: ~] $ systemd-analyze blame 
    3min 14.096s systemd-tmpfiles-setup.service
          8.657s NetworkManager.service
          8.244s apache2.service
          7.048s ModemManager.service
          6.328s networking.service
          6.004s accounts-daemon.service
          5.288s binfmt-support.service
          4.557s systemd-logind.service
          4.541s alsa-restore.service
          4.541s console-kit-log-system-start.service
          4.530s lm-sensors.service
          4.521s pppd-dns.service
          4.520s redis-server.service
          4.519s hostapd.service
          4.519s minissdpd.service
          4.519s timidity.service
          4.519s nvidia-kernel.service
          4.518s rc-local.service
          4.437s bluetooth.service
          4.408s avahi-daemon.service
          2.243s systemd-fsck-root.service
          1.437s exim4.service
          1.415s keyboard-setup.service

После запуска системы systemctlникаких ошибок не выдает.

[smit: ~] $ sudo systemctl status systemd-tmpfiles-setup
● systemd-tmpfiles-setup.service - Create Volatile Files and Directories
   Loaded: loaded (/lib/systemd/system/systemd-tmpfiles-setup.service; static)
   Active: active (exited) since Fri 2014-10-17 01:19:09 IST; 1h 41min ago
     Docs: man:tmpfiles.d(5)
           man:systemd-tmpfiles(8)
  Process: 230 ExecStart=/bin/systemd-tmpfiles --create --remove --boot --exclude-prefix=/dev (code=exited, status=0/SUCCESS)
 Main PID: 230 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/systemd-tmpfiles-setup.service

Почему systemd-tmpfiles-setup.serviceзапуск медленный? Где можно получить подробные логи systemd-tmpfiles-setup.service?

решение1

Когда systemd запускает систему, одним из первых запущенных сервисных модулей является systemd-tmpfiles-setup. Этот сервис запускает команду:

# systemd-tmpfiles --create --remove 

Эта команда считывает файлы конфигурации из (сначала менее важные):

  • /usr/lib/tmpfiles.d/*.conf- эти файлы предоставляются соответствующим пакетом RPM и не должны редактироваться системным администратором.
  • /run/tmpfiles.d/*.conf- эти файлы обычно используются демонами для управления собственными временными файлами времени выполнения.
  • /etc/tmpfiles.d/*.conf- эти файлы предназначены для системных администраторов, чтобы они могли настраивать пользовательские временные расположения и переопределять значения по умолчанию, предоставленные поставщиком.

Также есть три места, где хранятся временные файлы:

  • /вар- Переменные данные, характерные для этой системы, которые должны сохраняться между загрузками
  • /бегать- Данные о времени выполнения для процессов, запущенных с момента последней загрузки. Сюда входят файлы идентификаторов процессов и файлы блокировки, среди прочего. Содержимое этого каталога воссоздается при перезагрузке.
  • /тмп- Пространство для записи временных файлов. Файлы, к которым не обращались, которые не изменялись или не модифицировались в течение 10 дней, автоматически удаляются. Другой временный каталог существует в /var/tmp, в котором файлы, к которым не обращались, которые не изменялись или не модифицировались более 30 дней, автоматически удаляются.

Подводя итоги:
проверьте файлы конфигурации tmp, чтобы понять, почему настройка tmp занимает так много времени, особенно обратите внимание на записи в каталоге /run, поскольку он создается заново во время загрузки.

решение2

Это потому, что у Chrome Beta и Cups были проблемы, когда они создавали миллионы файлов в /tmp. Если /tmp — это tmpfs для вас, то попробуйте размонтировать его и перемонтировать. В противном случае, rm -rf /tmp, а затем пересоздайте его.

решение3

systemd-tmpfiles запускается до запуска сети, поэтому в зависимости от конфигурации возможно, что один из файлов конфигурации systemd-tmpfiles (расположенных в /usr/lib/tmpfiles.d) пытается создать каталог для пользователя или группы, которые доступны в системе только после запуска сети, например, для пользователя или группы, определенных в LDAP.

Если это так, вам следует попытаться переместить systemd-tmpfiles-setup.service в режим запуска после сети.

Связанный контент