SYSTEMD-JOURNALD(7) Savvy Admin Process Reference SYSTEMD-JOURNALD(7)
NAME
systemd-journald — The systemd journal daemon: collects kernel, service and syslog messages into binary journal files under /run/log/journal (volatile) or /var/log/journal (persistent), rate-limits chatty services and enforces disk caps.
kind: system daemon · package: systemd · binary: /lib/systemd/systemd-journald (Ubuntu 22.04; /usr/lib/systemd/systemd-journald on merged-/usr systems), started by PID 1 · config: /etc/systemd/journald.conf, /etc/systemd/journald.conf.d/*.conf (drop-ins win) · updated 2026-10-20
SAFE TO KILL?
SYMPTOMS
· /var/log/journal in the hundreds of MB or several GB: persistent storage with the default cap (10% of the filesystem, at most 4 GB) and no time-based retention
· systemd-journald at steady CPU or I/O: one service is logging thousands of lines a second; 'Suppressed N messages' in journald's own log means the rate limit is already dropping them
· journalctl complains about files that are corrupted or not cleanly shut down after a crash or a kill -9: expected, verify and rotate
· logs also fill /var/log/syslog: rsyslog is installed as well and journald forwards to it, so every line is stored twice
DIAGNOSE
FIX
1. Cap the journal and give it a retention period. SystemMaxUse defaults to 10% of the filesystem (capped at 4G) and MaxRetentionSec to 0, which disables time-based deletion; journald uses the smaller of SystemMaxUse and SystemKeepFree (15%). A drop-in survives package upgrades, editing journald.conf does not.
$ sudo mkdir -p /etc/systemd/journald.conf.d && printf '[Journal]\nSystemMaxUse=500M\nMaxRetentionSec=1month\n' | sudo tee /etc/systemd/journald.conf.d/size.conf && sudo systemctl restart systemd-journald2. Reclaim space now. --vacuum-time=30d and --vacuum-files=N are the other two forms. Vacuuming removes archived files only; the active one is rotated first with journalctl --rotate if you need the space immediately.
$ sudo journalctl --vacuum-size=500M3. Fix the flooding service, or let the rate limit do its job. RateLimitIntervalSec=30s and RateLimitBurst=10000 are per service: a unit that exceeds them has the rest of its messages dropped for the interval, with one 'Suppressed' line to say so. Raising the burst hides the problem on disk; lowering the service's log level removes it.
4. Small VM, no need for history across reboots: keep the journal in RAM. Storage=volatile writes only to /run/log/journal (tmpfs, capped by RuntimeMaxUse); Storage=auto, the usual packaged default, is persistent whenever /var/log/journal exists. Delete that directory and restart journald to switch without editing the config.
IMPOSTORS
DISTRIBUTIONS
ubuntu 22.04 ships /var/log/journal, so storage is persistent, and installs rsyslog with ForwardToSyslog on, so /var/log/syslog duplicates the journal; check dpkg -l rsyslog before blaming journald for disk use. Journal files are group adm: add yourself to adm to read system logs without sudo.
any Defaults in this card are the upstream systemd ones from journald.conf(5); distributions may compile in different values, which journald prints on start (see the second diagnose command).
APPLIES TO
systemd 2xx; options and defaults checked against journald.conf(5) upstream on 2026-10-20 and against systemd 249 on Ubuntu 22.04.
SEE ALSO
SOURCES
1. journald.conf(5) — systemd manual (Storage, SystemMaxUse, SystemKeepFree, MaxRetentionSec, RateLimit*), fetched 2026-10-20
Machine-readable: /process/systemd-journald.json · changelog 2026-10-20: first version