質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.36%

  • CentOS

    2011questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

サーバの時刻のズレについて

解決済

回答 4

投稿 2015/11/27 11:38 ・編集 2015/11/27 15:49

  • 評価
  • クリップ 4
  • VIEW 1,384

tkda

score 13

さくらのクラウド(仮想サーバ)にてCentOS 6.5のサーバを運用しているのですが、時刻に25秒のズレが生じております。
NTPサーバーによる時刻同期も行っているのですが、正しく同期されません。

ntpq -p

     remote           refid      st t when poll reach   delay   offset  jitter
=====================================================================
*ntp-b3.nict.go. .NICT.           1 u   14   64   17   17.997   -1.667   1.409
+ntp1.jst.mfeed. 133.243.236.17   2 u    9   64   17   15.973   -0.730   2.682
+ntp2.jst.mfeed. 133.243.236.17   2 u   15   64   17   13.952    0.502   1.142
 ntp3.jst.mfeed. 133.243.236.17   2 u    8   64   17   17.953   -0.217   1.372


ただ、phpでdate('H:i:s'); を実行した結果にはズレが生じていないことが分かりました。
以下、比較の数字を記載します。

■サーバー
date
2015年 11月 27日 金曜日 11:48:55 JST

hwclock
2015年11月27日 11時48分28秒  -0.797000 秒

■PHP
<?php echo date('H:i:s'); ?>
11:49:22


どうぞ宜しくお願いします。


※追加※
以下の様なcronを5分毎に実行してみました。
> */5 * * * * echo date +"\%Y/\%m/\%d \%H:\%M:\%S" >> /tmp/cron.log

その結果、秒数は正確な時刻「00秒」ですが、時間が1分ズレてcronのスケジュールが走っていることが分かりました。
詳細は以下のとおりです。

2015/11/27 15:45:35
cron動作時の正しい時刻:15:46:00
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • yuba

    2015/11/27 12:02

    実マシンですか、仮想マシンですか? もし仮想マシンなら、VMWare Toolsのようなゲスト側支援ソフトウェアは動いている状態ですか?

    キャンセル

  • tkda

    2015/11/27 13:45 編集

    さくらのクラウドを利用しておりますので、仮想サーバーになります。VMWare Toolsについては把握しておりません。

    キャンセル

回答 4

check解決した方法

0

yum updateでサーバを最新の状態にアップデートしたところ、時刻の誤差がなくなりましたので遅くなりましたが報告します。具体的に何が悪さをしていたのか記載できずに申し訳ないです。

投稿 2016/01/13 17:45

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

システム(OS)の時刻とハードウェアの時刻がずれているのではないでしょうか? hwclock コマンドでチェックしてみて、違うようならhwclock  -wコマンドで同期させる対策が必要でしょう。

投稿 2015/11/27 11:44

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/11/27 11:59

    hwclockの値を追加しました。
    date: 11:48:54
    hwclock: 11:48:28
    php: 11:49:22
    と見事にバラバラでした。

    hwclock -wコマンドを実行したのですが、それぞれの値に変化はありませんでした。

    キャンセル

0

php は gettimeofday(), date は clock_gettime(CLOCK_REALTIME) を使うという、システムコールの違いはありますが、両方ともシステムクロックの値を取得するものですので、通常は相違はないはず ...... 変ですね。

cron の検証結果を見ると、date コマンドが 85秒(1分25秒)遅れということでしょうか?
kernel 起動直後からそうなのか、それともだんだんと遅れていくのでしょうか?
php (gettimeofday()) の方が正しいというのは、他のシステムと比べて?

ヤマ勘ですが、
cpuspeed が稼働していると、CPU の周波数が可変になるので、補正のしかたによってはズレがでるかもしれません。また、仮想環境&SMP ならば irqbalance も悪さをするかもしれません。

あとは、Try してうまくいくかどうか、というレベルですが、
  • kernel 起動パラメータで clocksource= を変更する
cat /sys/devices/system/clocksource/clocksource0/available_clocksource
(可能なclocksource)

cat /sys/devices/system/clocksource/clocksource0/current_clocksource
(現在のclocksource)
  • kernel 起動パラメータで divider=10 などで、クロック精度を落とす。
  CONFIG_HZ_1000=y (1000Hz) ならば divider=10 で 100Hz に。

投稿 2015/11/27 15:08

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/11/27 15:17

    正しい時刻に誤りがありました(修正済みです)。
    date コマンドが 25秒遅れです。
    まずは修正点のみコメントさせていただきます。

    キャンセル

  • 2015/11/27 15:39

    kernel起動直後かどうかは未確認です。
    phpの方が正しいというのは、他のシステムと比べてです。

    原因が分からない場合は一度パラメータを変更の上で再起動してみようと思います。

    キャンセル

  • 2016/01/13 17:46

    kernel 起動パラメータの修正だけでは解決には至りませんでした。ご回答ありがとう御座います。

    キャンセル

0

ゲストOSからはハードウェアクロックは変えられないと思います。
また、ハードウェアクロックは起動時に参照されるだけなので、rcスクリプトでntpdateを動かしていればずれていてもあまり問題はないと思います。

ntpdも正しく動いていそうだし、phpの値は正しいとのことですから、システムクロックがおかしいと言うよりは、dateコマンドの異常と思えます。

とすれば考えられるのは以下の2点
・/bin/dateが壊れている
・/bin/dateではない別のスクリプトが動いている

投稿 2015/12/02 15:50

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/12/02 16:08

    ありがとう御座います。
    確認の上でまた報告させていただこうと思います。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

ただいまの回答率

91.36%

関連した質問

同じタグがついた質問を見る

  • CentOS

    2011questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。