Linux 인스턴스의 타임스탬프 비교하기
Linux 인스턴스의 타임스탬프 비교하기
Amazon Time Sync Service를 사용 중이라면, ClockBound로 Amazon EC2 Linux 인스턴스의 타임스탬프를 비교해 이벤트의 정확한 시간을 확인할 수 있어요. ClockBound는 EC2 인스턴스의 시계 정확도를 측정하고, 주어진 타임스탬프가 인스턴스의 현재 시계 기준으로 과거인지 미래인지 확인할 수 있게 해 줘요. 이 정보는 각 인스턴스의 지리적 위치와 무관하게 EC2 인스턴스 간 이벤트·트랜잭션의 순서와 일관성을 확인하는 데 유용해요.
출처: 문서
본문
ClockBound는 오픈 소스 데몬이자 라이브러리예요. 설치 지침을 포함한 ClockBound에 대한 자세한 내용은 GitHub의 ClockBound를 참고하세요. ClockBound는 Linux 인스턴스에서만 지원돼요.
PTP 하드웨어 시계에 대한 직접 PTP 연결을 사용한다면 chrony 같은 시간 데몬은 시계 오차 범위(error bound)를 과소평가해요. PTP 하드웨어 시계는 NTP처럼 올바른 오차 범위 정보를 chrony에 전달하지 않기 때문이에요. 결과적으로 시계 동기화 데몬은 시계가 UTC에 정확하다고 가정하므로 오차 범위가 0이 돼요. 전체 오차 범위를 측정하기 위해 Nitro System은 PTP 하드웨어 시계의 오차 범위를 계산하고, ENA 드라이버의 sysfs 파일시스템을 통해 EC2 인스턴스에 제공해요. 이 값을 나노초 단위의 값으로 직접 읽을 수 있어요.
PTP 하드웨어 시계 오차 범위 검색하기
- 먼저 다음 명령 중 하나를 사용해 PTP 하드웨어 시계 디바이스의 올바른 위치를 찾습니다. 인스턴스를 실행하는 데 사용한 AMI에 따라 경로가 달라요.
- Amazon Linux 2:
cat /sys/class/net/eth0/device/uevent | grep PCI_SLOT_NAME
- Amazon Linux 2023:
cat /sys/class/net/ens5/device/uevent | grep PCI_SLOT_NAME
출력은 PCI 슬롯 이름이며, 이는 PTP 하드웨어 시계 디바이스의 위치예요. 이 예시에서 위치는 0000:00:03.0이에요.
PCI_SLOT_NAME=0000:00:03.0
- PTP 하드웨어 시계 오차 범위를 검색하려면 다음 명령을 실행합니다. 이전 단계의 PCI 슬롯 이름을 포함하세요.
cat /sys/bus/pci/devices/0000:00:03.0/phc_error_bound
출력은 PTP 하드웨어 시계의 시계 오차 범위(나노초)예요.
PTP 하드웨어 시계에 대한 직접 PTP 연결을 사용할 때 특정 시점의 올바른 시계 오차 범위를 계산하려면, chrony가 PTP 하드웨어 시계를 폴링하는 시점의 chrony 또는 ClockBound의 시계 오차 범위를 더해야 해요. 시계 정확도 측정과 모니터링에 대한 자세한 내용은 Amazon Time Sync Service와 Amazon CloudWatch로 Amazon EC2 인스턴스 시계 정확도 관리하기 – Part 1을 참고하세요.
더 알아보기
- 퍼블릭 Amazon Time Sync Service 사용하기
- 인스턴스의 시간대 변경하기