myuser@myhost:~$ sudo journalctl > log.txt
myuser@myhost:~$ sudo journalctl --disk-usage
Archived and active journals take up 3.0G on disk.
myuser@myhost:~$ ls -lh log.txt
-rw-rw-r-- 1 myuser myuser 298M Oct 31 15:15 log.txt
因此,我的日志占用了 3G 的磁盘空间,但实际日志条目只有约 300M。我猜想日志元数据占用了剩余的空间。
是否可以更改元数据与日志条目的比例?或者也许不是元数据而是其他东西?
几乎所有这些日志都是由容器化应用程序生成的,dockerd --log-driver=journald
更新:
我的journald.conf
:
[Journal]
Storage=persistent
RateLimitInterval=0
RateLimitBurst=0
ForwardToSyslog=no
答案1
首先,您看到报告为“在磁盘上”的内容可能根本不在磁盘上。正如最近错误修复,新语言表示“在文件系统中”,可以是内存文件系统,也可以是磁盘文件系统。Ubuntu 16.04 默认是内存文件系统,但有一个错误报告,使 Ubuntu 中的 systemd 日志默认持久化。
现在如何减少空间。如果您不确定从哪里开始查找有关 journald 的文档,man -k journald
请查看是否已安装相关文档:
$ man -k journald
journald.conf (5) - Journal service configuration files
journald.conf.d (5) - Journal service configuration files
systemd-journald (8) - Journal service
systemd-journald-audit.socket (8) - Journal service
systemd-journald-dev-log.socket (8) - Journal service
systemd-journald.service (8) - Journal service
systemd-journald.socket (8) - Journal service
由于您似乎希望调整配置,man journald.conf
因此这是一个不错的检查点。您会在那里找到与磁盘空间相关的几个选项的文档,您可以在那里阅读有关它们的详细信息。以下是摘要:
Compress=
默认启用,压缩数据SystemMaxUse=
并RuntimeMaxUse=
控制日志最多可以使用多少磁盘空间。MaxRetentionSec=
存储日记帐分录的最长时间。
请参阅所提到的手册页以获取完整文档,然后编辑/etc/systemd/journald.conf
。
最后systemctl daemon-reload && systemctl reload systemd-journald
让你的更改生效。