Smi*_*_33 9 logging systemd journald
当我做一个时,journalctl --disk-usage
它说日志文件的大小大约为300MB,但是当我查看实际文本时,journalctl | wc -c
它大约为28MB。嗯,journald 有压缩,甚至考虑到元数据,如时间戳、uid、消息哈希等,在我看来,这似乎是对磁盘空间的荒谬浪费。
有人能告诉我为什么日志文件与里面的实际文本相比如此之大吗?
有两个原因。首先,正如@Mella 提到的,当前日志与所有日志之间存在差异。
其次,如 中所述man journalctl
,有多种输出格式。您正在测量最紧凑/最不详细的尺寸。要查看 systemd 日志中的最大数据,请使用:
journactl --output=verbose
Run Code Online (Sandbox Code Playgroud)
在我的例子中,紧凑型日志输出返回 32 Megs 的数据,同时返回 128 MB--output=verbose
和 152M journalctl --disk-usage
,包含活动日志和存档日志。
如果您担心,请参阅man journald.conf
了解如何限制磁盘空间journald
使用量。
由于它在上游指示并且因此为 journald 的开发人员所知,二进制日志格式中使用的 根本不是很好(还没有?)。
/etc/systemd/journald.conf
named 中还有一个选项Compress=yes
,它可能在您的系统上未激活,因此实际上没有压缩。
虽然原则上 journald 区分了活动日志和存档日志日志,但这是对其他答案的误导性回复,因为man journalctl
它明确指出:
输出从所有可访问的日志文件中交错,无论它们是轮换的还是当前正在写入的,也无论它们是属于系统本身还是可访问的用户日志。
因此,另一个答案在这里具有误导性。
“文件碎片/分配问题”
在我journalctl --version == "systemd 239[...]"
的机器上,包含数据的日志文件以 8MiB 的倍数存在。因此,在我的系统日志文件中,即使只有一小部分(例如 56kiB)数据实际存储在其中,也会有 8MiB 大。
“反腐败问题,”据开发商珀特林一个journald
,并systemd
在该杂志被认为已成为被损坏的情况下journald
,它不会被“固定”,而是保持原样,以防止进一步的问题。(见https://bugs.freedesktop.org/show_bug.cgi?id=64116#c3)
这当然意味着未压缩的、几乎为空的日志二进制日志文件很有可能位于您的 var 日志中,这使得它实际上比正常的明文替代方案要大得多。
归档时间: |
|
查看次数: |
3173 次 |
最近记录: |