一年中こたつ出てる

こたつは最高

毎日0:05付近でサーバーの負荷が上がる現象の犯人

毎日0:05付近にサーバーの負荷が上がるといった現象に頭を悩ませていたんですが、ようやく犯人を突き止めることができました。

犯人はupdatedb.mlocateちゃんでした。

pidstatを仕込んで定期的に見てみてもこれといって負荷の高いプロセスを発見することができなかったので、仕方なしに当該時間帯にtopでプロセスをじっと眺めることでようやく犯人を特定することができました。。。

locateコマンドで検索するためのインデックスを更新するやつみたいですね。locate入れた記憶がないんですが…。

急に4000IOPSとかいくのはやめてほしい。。。
とはいえ、原因がわかったのでなにより。

どうしてあなたは0時に動くんですか

crontabの設定でcron.dailyは6時ごろに動くようになっているように見えるんですが、実際はdailyに入っているものは0時付近に動いているよう。

どう考えてもanacronが動かしているのはわかるんですが(1 5 cron.dailyなので5分のdelayも納得できる)、anacronのキック自体は誰が0時にやっているのかがよくわからず…。

crontab見ても、cron.d見ても…。

どこ見てもcronから叩いているように見えなくて……って調べてみると、ubuntu 18.04では/lib/systemd/system/anacron.timerで設定されていると。

[Unit]
Description=Trigger anacron every hour

[Timer]
OnCalendar=hourly
RandomizedDelaySec=5m
Persistent=true

[Install]
WantedBy=timers.target

なるほどhourly…。
ここでtimerで1時間おきにキックしているので0時に動いてたんですね。なるほど納得しました…。

mackerelで監視してたおかげで気づけたので、あらためて監視大事だなぁ…と思ったところでした。
あと、普段サーバいじらないので、この辺とても勉強になります……。ひぃ。