How to check systemd journal size in Linux

A growing systemd journal can quietly consume log storage before an operator notices the rest of the filesystem is tight. Checking its current size first keeps low-space troubleshooting focused on the journal only when retained logs are actually a meaningful part of the problem.

The systemd-journald service stores binary journal files either persistently or in volatile runtime storage. journalctl reports the combined size of active and archived journal files, while a direct du check shows which storage path is carrying the blocks.

Reading the full system journal usually requires sudo or membership in the systemd-journal group. If the persistent journal directory is missing or small, the host may be keeping logs only until reboot, and effective limits from the main journald configuration or drop-ins can explain why the journal stays above or below an expected threshold.

Steps to check systemd journal size in Linux:

  1. Display the total space used by active and archived journal files.
    $ sudo journalctl --disk-usage
    Archived and active journals take up 184.0M in the file system.

    The total includes the current writable journal files and rotated archives. Vacuum commands remove only archived files, so the reported number may not shrink all the way to the requested limit.

  2. Compare the persistent and runtime journal directories.
    $ sudo du -sh /var/log/journal /run/log/journal
    185M	/var/log/journal
    4.0K	/run/log/journal

    /var/log/journal keeps logs across reboots. /run/log/journal holds volatile logs that normally disappear at reboot; if one path does not exist, use the path that exists on the host.

  3. Review the effective journald configuration and drop-ins.
    $ systemd-analyze cat-config systemd/journald.conf
    # /etc/systemd/journald.conf
    
    [Journal]
    #Storage=persistent
    #SystemMaxUse=
    #SystemKeepFree=
    #SystemMaxFileSize=
    #RuntimeMaxUse=
    #RuntimeKeepFree=
    #RuntimeMaxFileSize=
    #MaxRetentionSec=0
    #MaxFileSec=1month
    ##### snipped #####
    
    # /etc/systemd/journald.conf.d/50-size.conf
    
    [Journal]
    SystemMaxUse=500M
    SystemKeepFree=2G

    Uncommented values in later file sections set explicit limits or override earlier defaults. If SystemMaxUse and RuntimeMaxUse are blank, systemd-journald uses its compiled defaults and free-space rules.