2009年05月09日
Linux | ロードバランサ配下サーバのcrontab
ロードバランサの配下に複数台のLinuxサーバ(Webサーバ用途)を置く構成で、データセンターのレンタルサーバを先日組んでもらった。
先程Logwatchのメールが送られてくる時間がそれぞれのサーバでずれていることに気付き、/etc/crontabを調べてみると各サーバでcron.dailyやcron.weeklyを実行する時間が異なっていた。
なるほど。例えばログ処理など負荷の掛かるタスクが複数サーバで同一時間帯に実行されると、Webサーバのレスポンスが悪くなってしまう可能性があるため、cron.dailyなどの実行時間設定をずらしているのか。データセンター側でここまで親切に設定してくれているとは。
逆に考えると、同一時間帯に実行したい処理のスクリプトは、/etc/cron.dailyとかに入れずにマニュアルでcron設定する必要があるってことか。
今まで気付かなかったけど、重要なことを見逃すところだった。
Comment
私が気がついたのはCentOSなのですが、おそらくインストーラの段階でちょっと時間ずらした状態のファイルを作るみたいです。
意図はわかるのだけど、設定ファイルを共通管理しにくくなるので、ありがたさとしては微妙……。
ちなみに、同一ファイルで実際に実行されるタイミングをずらしたい場合、私は sleep `jot -r 1 0 360` などを挟んでいます。Linux だと jot 入ってるかわからんけど。
Posted by: kuriyama : 2009年05月09日 07:26
うちもCentOSでした。なるほど、わざわざ設定しているわけではないのですね。
jotというコマンドは初めて知りましたが、CentOSには標準では入ってませんでした。
seqという似たようなコマンドがありましたが、-r に該当するオプションがないみたいです。
Posted by: otsuka : 2009年05月10日 20:49