AI Briefing

가장 빠른 Linux timestamps

·2026.04.26 22:00

x86 Linux에서 vDSO를 우회해 타임스탬프 지연을 30% 줄였다.

OpenTelemetry span의 시작·종료 시각을 찍는 비용이 46~49ns까지 올라가면서, 초저지연 파이프라인에서는 timestamp 자체가 무시할 수 없는 오버헤드로 드러났다.

핵심 배경은 x86의 invariant TSC와 Linux의 vDSO 동작 방식이다. 일반적인 clock_gettime()은 커널 진입 없이 vDSO를 통해 처리되지만, 그 안에서도 시퀀스 락 확인, TSC 읽기, cycles-to-nanoseconds 변환, 초 단위 정규화가 들어간다.

글은 vDSO의 do_hres() 경로를 해부하며, 커널이 데이터 페이지에 기준 시각과 보정값을 갱신하고 사용자 공간이 이를 읽어 현재 시각을 계산하는 구조를 설명한다. 이 과정에서 lfence + rdtsc 또는 rdtscp가 필요하고, TSC 읽기 자체도 완전히 공짜는 아니라는 점을 짚는다.

이후에는 트레이싱 용도에 맞게 더 단순한 경로를 제안한다.

  • monotonic clock은 절대 시각이 아니라 차이값만 필요하므로 cycles 차이를 바로 nanoseconds로 변환할 수 있다.
  • wall clock과 monotonic clock을 따로 두 번 읽는 대신, 필요한 값만 계산해 중복 연산을 없앨 수 있다.
  • 이런 방식으로 x86 Linux에서 타임스탬프 처리 시간을 30% 단축하고, 표준 시스템 clock과 같은 정밀도를 유지할 수 있었다.

다만 저자는 이런 최적화가 대부분의 프로그램에는 과도하다고 분명히 말한다. 초저지연 환경의 tracing 같은 특수한 경우에만 의미가 있는 기법이다.

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.