vine-users ML アーカイブ



[vine-users:078767] Re: cronに ついて

  • From: Hiroshi Suzuki <setter@xxxxxxxx>
  • Subject: [vine-users:078767] Re: cronに ついて
  • Date: Mon, 22 Sep 2008 08:11:07 +0900
鈴木です。

logger を使った方法だと、あまりに時間がばらつくので、
crond 自体を改造(といっても、syslog に書き込むところで
gettimeofday(&t, NULL);
の結果を追加して解像度を上げただけですが)
して、ログを観測してみました。
すると、

Sep 22 01:26:00 irish CROND[3668]: [1222014360.277894](user_1) CMD (~/check_fetch 2>&1 /dev/null)
Sep 22 01:27:00 irish CROND[3704]: [1222014420.468917](user_1) CMD (~/check_fetch 2>&1 /dev/null)
Sep 22 01:28:00 irish CROND[3732]: [1222014480.651941](user_1) CMD (~/check_fetch 2>&1 /dev/null)
Sep 22 01:29:00 irish CROND[3760]: [1222014540.806967](user_1) CMD (~/check_fetch 2>&1 /dev/null)
Sep 22 01:30:00 irish CROND[3788]: [1222014600.997993](user_1) CMD (~/check_fetch 2>&1 /dev/null)
Sep 22 01:30:01 irish CROND[3792]: [1222014601.009001](user_2) CMD (/home/user_2/setDDNS.sh>/dev/null)
..............
Sep 22 01:36:00 irish CROND[4008]: [1222014960.292252](user_1) CMD (~/check_fetch 2>&1 /dev/null)
Sep 22 01:37:00 irish CROND[4052]: [1222015020.483267](user_1) CMD (~/check_fetch 2>&1 /dev/null)
Sep 22 01:38:00 irish CROND[4097]: [1222015080.674313](user_1) CMD (~/check_fetch 2>&1 /dev/null)
Sep 22 01:39:00 irish CROND[4129]: [1222015140.861303](user_1) CMD (~/check_fetch 2>&1 /dev/null)
Sep 22 01:40:01 irish CROND[4160]: [1222015201.052362](user_1) CMD (~/check_fetch 2>&1 /dev/null)
Sep 22 01:40:59 irish CROND[4197]: [1222015259.815549](user_1) CMD (~/check_fetch 2>&1 /dev/null)
Sep 22 01:42:00 irish CROND[4233]: [1222015320.994509](user_1) CMD (~/check_fetch 2>&1 /dev/null)
Sep 22 01:42:01 irish CROND[4236]: [1222015321.002658](user_2) CMD (/home/user_2/setDDNS.sh>/dev/null )

何やら、常時オフセットが加算されていっているような結果が出ました。
このオフセットは、システムの忙しさにも左右されるように見えます。
起動が早すぎる 01:40:59 のログも、ntpd 関連にしては
-180ms とオフセットが大きすぎますし、
(ntpd が、このときだけ step モードで時間調整したと考えることもできますが...)
やはり、
次のジョブが起動するまでの sleep() に与える秒数を計算するとき、
秒の境界付近にいると、オーバーヘッドにより結果が1秒少なくなくなるときがある
というのが正解のように見えます。

-- 
 Hiroshi Suzuki              It's crucial   qp
 setter AT i-red DOT info        to my     (..)/
 http://my.reset.jp/~setter/  Well-being   -  -
 http://i-red.info/                         ~~
 Powered by Linux/DeleGate   _____________*-_____