動かざることバグの如し

近づきたいよ 君の理想に

/tmpに大量にファイルが有る状態で再起動すると起動が終わらない件

環境

問題

Ubuntuの起動がめっちゃ遅い。10分以上かかる。 ディスクの障害かと思ってたけど起動後は普通に速い。

原因調査

そこでsystemd-analyze blame コマンドで各サービスの起動にかかる時間調査したら systemd-tmpfiles-setup.service にめちゃくちゃ時間かかっていた。

systemd-tmpfiles-setupはOSが起動する時に一時的なファイルやディレクトリ」を作成・削除・管理する役割 を持っているサービス。起動時に/tmpが空っぽなのはこのサービスのおかげだったってわけ。 今回問題になったサーバーは/tmpにファイルが大量にあったため削除に時間がかかってしまったんだと思われる。

対応

デフォルトタイムアウトが無制限なのでタイムアウトを設定する。

❯ sudo systemctl edit systemd-tmpfiles-setup.service

エディターが起動するので以下追記

[Service]
TimeoutStartSec=120s

以下のように表示されればOK

Successfully installed edited file '/etc/systemd/system/systemd-tmpfiles-setup.service.d/override.conf'.

設定を反映

sudo systemctl daemon-reload

確認

❯ systemctl show systemd-tmpfiles-setup.service -p TimeoutStartUSec
TimeoutStartUSec=2min

参考リンク