web-dev-qa-db-ja.com

systemd-journal-flush.serviceの使用は何ですか?

システムの起動時間が遅くなります。

無効にできますか?

起動時に無効にするとどうなりますか?

Ubuntuバージョン18.04を使用しています。

9
vivek

systemd-journal-flush.serviceは、persistentストレージが有効になっている場合、/ run/log/journalに保存されているログデータを/ var/log/journalにフラッシュするようジャーナルデーモンに要求します。 (すでに)巨大なログファイルがある場合、これにより起動が遅くなります。さらに、それを行うには、ディスク(/var/log)を書き込み可能な方法でマウントする必要があります。

要約すると、ブート中にチェックされる巨大な古いログファイルと新しいログデータの追加により、ブート時間が遅くなります。

Journalctlログサイズタイプを確認するには

journalctl --disk-usage

フラッシュ処理の時間とディスク容量の情報を取得するには、次のコマンドを入力します

journalctl -b --unit systemd-journald

対応する出力は次のようになります

-- Logs begin at Sat 2018-12-08 00:40:23 CET, end at Mon 2018-12-10 19:40:27 CET. --
Dec 10 12:51:38 ubuntu01 systemd-journald[479]: Journal started
Dec 10 12:51:38 ubuntu01 systemd-journald[479]: Runtime journal (/run/log/journal/265c93c062bf4c8da41abfe2ae793452) is 4.7M, max 38.3M, 33.5M free.
Dec 10 12:51:38 ubuntu01 systemd-journald[479]: Time spent on flushing to /var is 7.066904s for 132 entries.
Dec 10 12:51:38 ubuntu01 systemd-journald[479]: System journal (/var/log/journal/265c93c062bf4c8da41abfe2ae793452) is 128.0M, max 256.0M, 128M free.


あなたはどちらか

  • サービスを無効にします(非推奨)

    その後、すべてのログデータがディスクに書き込まれるとは限りません。ブート障害をデバッグするときに迷惑です。


  • journalctl --vacuumコマンドを使用します

    journalctl -hから

    --vacuum-size = BYTES指定したサイズよりディスク使用量を減らす
    -vacuum-files = INT指定された数のジャーナルファイルのみを残す
    -vacuum-time = TIME指定した時間よりも古いジャーナルファイルを削除します

    したがって、

     Sudo journalctl --vacuum-size=1G --vacuum-time=5d --vacuum-files=5
    


  • systemd-journal-flush.serviceのストレージタイプを変更

    まず、ストレージタイプを確認します

     systemctl cat systemd-journal-flush.service  | grep -i storage
    

    man journald.confから

    ストレージ=

    ジャーナルデータを保存する場所を制御します。 「volatile」、「persistent」、「auto」、および「none」のいずれか。

    volatile」の場合、ジャーナルログデータはメモリにのみ、つまり/ run/log/journal階層の下に保存されます(必要に応じて作成されます)。

    "persistent"の場合、データはできればディスク上、つまり/ var/log/journal階層(必要に応じて作成されます)の下に保存され、/ run/log/journal(これは必要に応じて作成されます)、初期ブート中、およびディスクが書き込み可能でない場合。

    "auto"は "persistent"に似ていますが、必要に応じてディレクトリ/ var/log/journalは作成されないため、ログデータの行き先を制御できます。

    "none"はすべてのストレージをオフにし、受信したすべてのログデータはドロップされます。ただし、コンソール、カーネルログバッファー、syslogソケットなどの他のターゲットへの転送は引き続き機能します。デフォルトは「auto」です。

    ファイルを編集する

    Sudo nano /etc/systemd/journald.conf
    

    ジャーナルセクションで、コメントを解除して変更します。

    Storage=auto
    SystemMaxFileSize=1G
    SystemMaxFiles=5
    

    保存して再起動します。


6
abu_bua

systemd developer homepage からのこの投稿によると、Unitファイルを変更することで修正できます。

これを行うには、/lib/systemd/system/systemd-journal-flush.serviceを開きます。たとえば

Sudo vim /lib/systemd/system/systemd-journal-flush.service

およびBefore依存関係から

 Before=systemd-user-sessions.service systemd-tmpfiles-setup.service

〜

 Before=systemd-tmpfiles-setup.service

Systemdバージョン> d v240の場合、この修正は自動的に変更されます。

ファイルを保存することを忘れないでください。

2
abu_bua