Langsamer Systemstart - systemd-tmpfiles-setup

Langsamer Systemstart - systemd-tmpfiles-setup

Ich habe vor Kurzem ein Upgrade auf Debian Jessie durchgeführt (derzeit im Test) und seitdem hat sich die durchschnittliche Startzeit auf 3–4 Minuten erhöht.

Zwischen dem Start grubund gdmdem Schließen erhalte ich diese Meldung für 2–3 Minuten.

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

Hier ist die Ausgabe vonsystemd-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

Sobald das System gestartet ist, systemctlwerden keine Fehler gemeldet.

[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

Warum systemd-tmpfiles-setup.servicestartet es langsam? Wo kann ich detaillierte Protokolle erhalten systemd-tmpfiles-setup.service?

Antwort1

Wenn systemd ein System startet, ist systemd-tmpfiles-setup eine der ersten gestarteten Diensteinheiten. Dieser Dienst führt den folgenden Befehl aus:

# systemd-tmpfiles --create --remove 

Dieser Befehl liest Konfigurationsdateien von (weniger relevante zuerst):

  • /usr/lib/tmpfiles.d/*.conf– Diese Dateien werden vom entsprechenden RPM-Paket bereitgestellt und sollten vom Systemadministrator nicht bearbeitet werden.
  • /run/tmpfiles.d/*.conf- diese Dateien werden normalerweise von Daemons verwendet, um ihre eigenen temporären Laufzeitdateien zu verwalten
  • /etc/tmpfiles.d/*.conf- diese Dateien sind für Systemadministratoren gedacht, um benutzerdefinierte temporäre Speicherorte zu konfigurieren und die vom Hersteller bereitgestellten Standardeinstellungen zu überschreiben.

Außerdem gibt es drei Orte, an denen temporäre Dateien gespeichert werden:

  • /var- Variable Daten, die für dieses System spezifisch sind und zwischen den Startvorgängen bestehen bleiben sollen
  • /laufen- Laufzeitdaten für Prozesse, die seit dem letzten Start gestartet wurden. Dazu gehören unter anderem Prozess-ID-Dateien und Sperrdateien. Der Inhalt dieses Verzeichnisses wird beim Neustart neu erstellt.
  • /tmp- Ein allgemein beschreibbarer Bereich für temporäre Dateien. Dateien, auf die 10 Tage lang nicht zugegriffen, die nicht geändert oder modifiziert wurden, werden automatisch gelöscht. Ein weiteres temporäres Verzeichnis existiert in /var/tmp, in dem Dateien, auf die seit mehr als 30 Tagen nicht zugegriffen, die nicht geändert oder modifiziert wurden, automatisch gelöscht werden.

Zusammenfassen:
Überprüfen Sie die temporären Konfigurationsdateien, um festzustellen, warum die temporäre Einrichtung so viel Zeit in Anspruch nimmt. Achten Sie insbesondere auf die Einträge im Verzeichnis /run, da dieses beim Booten neu erstellt wird.

Antwort2

Dies liegt daran, dass Chrome Beta und CUPS Probleme hatten, bei denen sie Millionen von Dateien in /tmp erstellten. Wenn /tmp für Sie ein tmpfs ist, versuchen Sie, es auszuhängen und erneut einzuhängen. Andernfalls führen Sie rm -rf /tmp aus und erstellen Sie es neu.

Antwort3

systemd-tmpfiles startet vor dem Netzwerk. Daher ist es je nach Ihrer Konfiguration möglich, dass eine der Konfigurationsdateien von systemd-tmpfiles (angeordnet in /usr/lib/tmpfiles.d) versucht, ein Verzeichnis für einen Benutzer oder eine Gruppe zu erstellen, das auf dem System erst verfügbar ist, wenn das Netzwerk aktiv ist, z. B. ein in LDAP definierter Benutzer oder eine Gruppe.

Wenn dies der Fall ist, sollten Sie versuchen, systemd-tmpfiles-setup.service so zu verschieben, dass es nach dem Netzwerk gestartet wird.

verwandte Informationen