「journalctl --disk-usage」と「journalctl | wc」がうまく一致しないのはなぜですか?

「journalctl --disk-usage」と「journalctl | wc」がうまく一致しないのはなぜですか?

長い話を短くログは約770MiBを保存しますが、表示ログは90MiBのデータのみを生成するのはなぜですか?

#修正する# 私はjournalctl -a -o verbose少なくとも約530MiBを生成しましたが、ジャーナルがディスクで使用する770MiBより少ないものを作成しました。いずれにせよ、ディスクのログは何らかの形で圧縮され、530MiBより小さくなければなりません。どうしたの?

#アップデート2#

journaldほとんどは空のログファイルを生成する傾向があるようです。

$> cat [email protected]~ | wc -c
8388608
#> cat [email protected]~ | sed 's/\x00//g' | wc -c
47181

これは@Mioriinのコメントが提案するものかもしれません。ジャーナルドが保存したログファイルが8MiBですが、ほとんど空になる理由はありますか?

背景を持つ長いバージョン

/var/log私のシステムは、Linuxカーネルdmesg出力、gnome DEなどで非常におしゃべりです。残念ながら、使用しているシステムロガーを介して私のディレクトリを埋めますjournald(まだ標準のシステムアーチLinuxで)。

探してみるとdu -hs /var/log約2GiBくらい出てくるのに主にジャーナルですjournaldね。 90日を過ぎたデータを削除しましたが、journalctl --vacuum-time=90d残念ながら3ヶ月を過ぎたログは削除され、ログjournaldに使用されるディスク容量が約770MiBに減りました。

$> journalctl --disk-usage 
Archived and active journals take up 768.0M in the file system.

本当にすごいです。しかし、私のアーチLinuxボックスに収められた90日間の770MiBデータはかなり多いようで、770MiBがどのような用途に使用されるのかを調べてみました。ログ出力の初期サイズを測定するために、IMHOの最初の論理ステップを実施した。

$> journalctl | wc
584467 7662317 90227741

そしてもう一度確認してみてください。

$ journalctl | dd of=/dev/null iflag=fullblock bs=1M
86+1 records in
86+1 records out
90244229 bytes (90 MB, 86 MiB) copied, 9.21893 s, 9.8 MB/s

何らかの理由で読んでいることを示します。「スペースを節約するのでバイナリです」 journaldプレーンテキストは、770MiB未満のデータを生成せず、90MiBのみを生成します。

今私の質問はなぜこれらの2つの数字が一致しないのですか?愛する人はどのようにjournald770MiBを使用して90MiBのデータを保存できますか?

「結果を測定し、混乱させること」に加えて、自分自身を助けるために何をしましたか?

私は長いコンテンツを見て、man journactlそれが提供するかなり複雑な詳細にはっきりと圧倒されましたが、バイナリ圧縮ジャーナルデータがバイナリ圧縮ジャーナルデータよりも多くのスペースを使用できるようにする反直観的なコンテンツを提案するものが見つかりませんでしたです。実際のプレーンテキスト複製ログ。

私は「簡単な」説明があるべきだと思う。

関連情報