
2026/08/14 3:41
単一のログ行が ext4 では 49KB 超、btrfs では 110KB 超の systemd-journald ディスク書き込みとなります。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Debian 13 で
systemd-journald バージョン 257.9 が XFS ファイルシステム上で動作する場合(カーネル 6.12.57+)、ハードドライブへのログ書き込みで深刻な性能ボトルネックが発生します。根本原因は、journald が使用する極めて非効率的なデータ形式であり、ジャーナルファイルが実際のログデータの遥かに多いディスク容量を消費しています。テストでは、仮想マシンが 1 秒あたり 2 つのログエントリを処理しても IOPS は約 50 までしか維持できず、従来の syslog の期待值に比べて劇的に劣っています。また、これらのジャーナルファイルは、不潔な再起動時に耐性欠如のため破損しやすいという問題もあります。この問題は閉じたバグ #15292 と同様のものですが、まだ解決されていません。効率性と完全性のリスクに対処されるまで、永続ストレージをログ用途に使用する組織はデータ損失およびストレージ枯渇の危険性に直面しており、安定した本番環境のためには即座の対応が必要です。本文
systemd-journald の IOPS 低下問題について(Debian 13, カーネル 6.12)
環境情報
- システムドメインバージョン:
257.9 - ディストリビューション: Debian 13
- Linux カーネル:
6.12.57+deb13-amd64 - コンポーネント:
systemd-journald
問題の概要
期待される動作と実際に見られた異常なパフォーマンスの乖離です。
- 期待動作: ログ書き込み量は標準的な syslog と同等であるべきですが、実際には約50 IOPSという低い値しか得られていません(VM で 1 秒間に 2 件のエントリーを生成しても)。
- 類似課題: これは以前 #15292 として「正当な理由なし」で閉じられた全く同一の問題です。
問題の再現手順
以下の条件で問題が発現します。
をハードディスク(XFS ファイルシステム)に書き出すモードで起動する。systemd-journald- VM 内で連続的なログエントリーストリームを生成する。
- 生成速度:約2 件/秒
- ログ例:
Jan 03 13:37:01 cthylla haproxy[727]: 192.168.1.1:48550 [03/Jan/2026:13:37:01.392] f_www b_icinga/web ... "GET / HTTP/1.0" Jan 03 13:37:03 cthylla haproxy[727]: 192.168.1.1:36892 [03/Jan/2026:13:37:03.403] f_www b_icinga/web ... "GET / HTTP/1.0" ...(略)... Jan 03 13:37:19 cthylla haproxy[727]: 192.168.1.1:45862 [03/Jan/2026:13:37:19.500] f_www b_icinga/web ... "GET / HTTP/1.0"
- VM 内の I/O トラフィックを測定する。
考察と原因分析
問題の根本原因在于「カーネル側の最適化不足」ではなく、
systemd-journald の実装自体に大きな課題があります。
- IOPS の解釈: 「iotop が正確ではない」という懸念(#15292)は OS による書き込みまとめ処理前のものであり、今回のケースではカーネルの全メカニズムを働かせても低性能であることが証明されています。
- ボトルネックの所在:
が極めて非効率的な形式を採用しており、これがパフォーマンス低下の主因です。systemd-journald
結論:実装の脆弱性と効率性の欠如
- 非効率な形式: ジャーナリングメカニズム自体が最適化されていない。
- データ破損のリスク: 不潔な再起動後にデータ破損を引き起こすほど回復力に欠けると言える(著者が実際に観測)。
- サイズ膨張: ファイル内の実際の書き込み量と比較して、サイズが数倍にも達する非効率さ。
要約: 単なるスロさの問題ではなく、
systemd-journald のアーキテクチャ上の重大な欠陥が I/O パフォーマンスとデータ整合性の両方に悪影響を及ぼしている。