저는 지리적으로 분산된 약 10대의 원격 Linux 시스템으로 구성된 네트워크에서 몇 가지 실험을 실행하고 있습니다.
그 중 일부에는 시계 드리프트가 있는 것으로 의심되지만 수명이 짧습니다(예: 일주일에 한 번 또는 한 달에 두 번).
이러한 클럭 스큐를 감지하고 정량화할 수 있는 도구가 있는지 궁금합니다. 또한 클럭 스큐가 내가 목격한 내용에 대한 올바른 용어인지, 아니면 클럭 동기화라고 부를 수 있는지 궁금합니다.
답변1
시계를 정확한 시간에 동기화하려고 하시나요, 아니면 동기화하지 않고 실시간 시계의 실제 정확도를 확인하려고 하시나요?
시간을 정확하게 지정하려는 경우 시스템은 전체 시간 서버 계층 구조와 동기화할 수 있으며 일반적으로 시간 서버를 지정할 수 있지만 일반적으로 운영 체제에 내장되어 있습니다. 또한 한 시스템은 시간 서버와 동기화한 다음 다른 시스템이 동기화할 수 있도록 자체 시간 서버를 실행할 수 있습니다.
나는 표준 시간에 동기화할 뿐만 아니라 마지막 동기화에서 로컬 컴퓨터의 편차를 따라잡는 프로그램을 본 적이 있고 과거에도 사용해 본 적이 있습니다. 나는 과거에 인터넷 연결이 간헐적으로 끊겼을 때 이 방법을 사용했는데, 프로그램은 예상되는 드리프트 기록을 사용하여 시간을 수정했습니다.
일반적으로 이 두 가지 방법 중 하나를 사용하면 수정 사항이 너무 많으면 오류가 발생하고 전혀 수정되지 않을 수 있습니다.
내가 당신의 요점을 완전히 이해하지 못했기를 바랍니다. :)
답변2
이를 수행하려면 NTP 데몬을 사용하십시오.
연결할 독립적인 ntp 서버 수를 정의합니다(ntp.conf, 서버 지시문). 서버는 3개면 충분하며, 많을수록 좋습니다.
네트워크 시간 프로토콜은 "잘못된" 시간 소스를 필터링합니다. 몇 시간 ntpq -p
동안 실행한 ntpd
후 출력을 확인합니다 .
어떤 마스터 서버가 선택되었는지, 어떤 서버가 "양호"로 간주되고 어떤 서버가 "불량"으로 간주되는지 확인할 수 있습니다. 출력에는 다음도 포함됩니다.지터그리고 지연(오프셋). 이것이 당신이 찾고 있는 가치일지도 모릅니다…
답변3
crony 유틸리티에는 드리프트 파일이 있습니다. 바라보다:http://chrony.tuxfamily.org/manual.html#Configuration-options-overview
이 파일은 제가 직접 설치해본 적이 없어서 파일 형식을 모르겠습니다. 드리프트 정보를 보는 명령이 있습니다: chronyc sourcestats -v
먼저 가상 머신에 crony를 설치할 계획입니다.
이 사이트가 도움이 될 것 같습니다:http://www.markus-gattol.name/ws/time.html
답변4
아무튼 어제는 두 리눅스 시스템의 편차 정도를 직접 확인해야 했습니다. 도구를 찾기 전에 나는 내 목적에 맞는 충분한 결과를 제공하는 이 비과학적인 접근 방식을 사용했습니다(두 시스템의 로그 출력 타임스탬프 비교).
- 각 시스템에서 Putty 세션을 시작하고 나란히 정렬
두 시스템 모두에서 다음 명령을 실행합니다.
$ while true; do date +%H:%M:%S.%N; done
- 스크린샷을 찍어 각 창의 마지막 항목을 비교하세요.
위기에 처한 사람에게 유용할 수도 있습니다!