Antworten:
Der systemd-journal-flush.service
Journal-Daemon wird aufgefordert, alle in / run / log / journal gespeicherten Protokolldaten in / var / log / journal zu löschen, wenn der persistent
Speicher aktiviert ist. Wenn Sie (bereits) große Protokolldateien haben, führt dies zu einem langsameren Booten. Außerdem muss die Festplatte (mit /var/log
) dazu in einem beschreibbaren Modus bereitgestellt werden.
Um es zusammenzufassen: Riesige alte Protokolldateien, die beim Booten überprüft werden, und das Anhängen neuer Protokolldaten führen zu einer langsameren Startzeit.
So überprüfen Sie den Journalctl-Protokollgrößentyp
journalctl --disk-usage
Geben Sie den folgenden Befehl ein, um Informationen zu Zeit und Speicherplatz der Flush-Verarbeitung abzurufen
journalctl -b --unit systemd-journald
Die entsprechende Ausgabe sieht so aus
-- Logs begin at Sat 2018-12-08 00:40:23 CET, end at Mon 2018-12-10 19:40:27 CET. --
Dec 10 12:51:38 ubuntu01 systemd-journald[479]: Journal started
Dec 10 12:51:38 ubuntu01 systemd-journald[479]: Runtime journal (/run/log/journal/265c93c062bf4c8da41abfe2ae793452) is 4.7M, max 38.3M, 33.5M free.
Dec 10 12:51:38 ubuntu01 systemd-journald[479]: Time spent on flushing to /var is 7.066904s for 132 entries.
Dec 10 12:51:38 ubuntu01 systemd-journald[479]: System journal (/var/log/journal/265c93c062bf4c8da41abfe2ae793452) is 128.0M, max 256.0M, 128M free.
Deaktivieren Sie den Dienst (nicht empfohlen)
Dann ist es möglich, dass nicht alle Protokolldaten auf die Festplatte geschrieben werden. ärgerlich beim Debuggen von Bootfehlern.
Verwenden Sie einen journalctl --vacuum
Befehl
Von journalctl -h
--vacuum-size = BYTES Reduzieren Sie die Festplattennutzung unter die angegebene Größe.
--vacuum-files = INT Belassen Sie nur die angegebene Anzahl von Journaldateien.
--vacuum-time = TIME Entfernen Sie Journaldateien, die älter als die angegebene Zeit sind
Also mach a
sudo journalctl --vacuum-size=1G --vacuum-time=5d --vacuum-files=5
Speichertyp ändern von systemd-journal-flush.service
Überprüfen Sie zuerst Ihren Speichertyp mit
systemctl cat systemd-journal-flush.service | grep -i storage
Von man journald.conf
Speicher =
Steuert, wo Journaldaten gespeichert werden sollen. Eine von "flüchtig", "persistent", "auto" und "keine".
Bei " flüchtig " werden Journalprotokolldaten nur im Speicher gespeichert, dh unterhalb der Hierarchie / run / log / journal (die bei Bedarf erstellt wird).
Bei " persistent " werden die Daten vorzugsweise auf der Festplatte gespeichert, dh unterhalb der Hierarchie / var / log / journal (die bei Bedarf erstellt wird), mit einem Fallback auf / run / log / journal (die bei Bedarf erstellt wird) vorzeitiger Start und wenn die Festplatte nicht beschreibbar ist.
" auto " ähnelt "persistent", aber das Verzeichnis / var / log / journal wird bei Bedarf nicht erstellt, sodass seine Existenz steuert, wohin die Protokolldaten gehen.
" none " schaltet den gesamten Speicher aus, alle empfangenen Protokolldaten werden gelöscht. Die Weiterleitung an andere Ziele wie die Konsole, den Kernel-Protokollpuffer oder einen Syslog-Socket funktioniert jedoch weiterhin. Der Standardwert ist "auto".
Bearbeiten Sie die Datei
sudo nano /etc/systemd/journald.conf
Im Journalbereich auskommentieren und ändern:
Storage=auto
SystemMaxFileSize=1G
SystemMaxFiles=5
Speichern und neu starten.
Laut diesem Beitrag von der Systemd-Entwickler-Homepage können Sie das Problem beheben, indem Sie die Unit-Datei ändern .
Öffnen Sie dazu /lib/systemd/system/systemd-journal-flush.service
zB
sudo vim /lib/systemd/system/systemd-journal-flush.service
und ändern Sie die Vorher-Abhängigkeit von
Before=systemd-user-sessions.service systemd-tmpfiles-setup.service
 bis
 Before=systemd-tmpfiles-setup.service

Dieser Fix wird automatisch für systemd-Versionen>  v240 geändert.
Vergessen Sie nicht, die Datei zu speichern.