재시작 후 500ms의 시스템 클럭 편차가 정상입니까?

재시작 후 500ms의 시스템 클럭 편차가 정상입니까?

즉시 부팅 하면 $ ntpq -p 재부팅 후 시스템 시계가 최대 600밀리초까지 늦어지는 것을 볼 수 있습니다.

올바른 NTP 시간으로 수렴하는 데 시간이 걸리기 때문에 우리 사용 사례에서는 약간 짜증스럽습니다. (Ceph 모니터, 시간에 민감함). 이후 재부팅하면 시계 기울기가 다시 표시됩니다.

재부팅 후에 이런 일이 발생합니까? PC의 RTC가 정확하지 않습니까?

조사하기 위해 내가 한 일:

  1. 여러 개의(매우 유사하기는 하지만) 서버(HP dl360 gen9)에서 확인했습니다. 하지만 2009년의 오래된 화이트 라벨 데스크탑도 마찬가지입니다.
  2. 집계된 NTP 시간을 RTC에 저장하고 RTC에서 시스템 시계로 복사합니다. 약 10밀리초 정도의 편차만 볼 수 있습니다. 순진할 수도 있지만 이는 기본적으로 시스템 시간 측면에서 재부팅을 모방합니다.
  3. 재부팅하기 전에 명시적으로 RTC에 저장하세요.
  4. kexec-reboot를 사용하세요. 여전히 발생합니다.
  5. 지금까지는 우분투 16.04에서만 테스트되었습니다.

답변1

RTC는 초만 저장할 가능성이 높으므로(커널이 언제 1초에서 다음 초로 전환할지 알 수 없는 한) 기본적으로 1/2초, 즉 500밀리초만큼 꺼집니다. RTC에 시간을 저장할 때도 마찬가지입니다. 커널이 1초 틱이 발생할 때를 제어할 수 없으면 저장이 최대 500밀리초까지 지연될 수 있습니다.

확실한 해결책은 NTP가 문제를 더 빠르게 수정하도록 하는 것입니다. ntpd를 사용하여 -g(또는 더 강력하게 -G) 시작하면 시작 시 시계를 단계적으로 변경하는 것이 허용(또는 강제)됩니다. / 라인 iburst과 함께 사용 하면 약 10초 이내에 정확한 시계를 제공해야 합니다.serverpool

예를 들어 ntp-waitNTP가 준비될 때까지 시간에 민감한 워크로드를 시작하지 않도록 할 수 있습니다.

관련 정보