실행 타이밍 정보 기록
실행 타이밍 정보 기록 (Record timing info)
-r 또는 --record-timing-info 플래그는 성능 프로파일링 정보를 파일로 저장해요. 이 파일을 snakeviz로 시각화해 dbt 실행의 성능 특성을 파악할 수 있어요. 느린 모델이나 매크로를 찾는 데 유용한 글로벌 설정이에요.
출처: 문서
본문
실행 타이밍 정보 기록
-r 또는 --record-timing-info 플래그는 성능 프로파일링 정보를 파일로 저장해요. 이 파일은 snakeviz로 시각화할 수 있고, dbt 실행의 성능 특성을 이해하는 데 도움이 돼요.
예를 들어 dbt 실행이 어디에서 시간을 많이 쓰는지(특정 모델의 컴파일, 매크로 실행, 어댑터 호출 등) 확인하고 싶다면 이 플래그로 타이밍 프로파일을 만든 다음 브라우저에서 시각적으로 탐색할 수 있어요.
Usage
$ dbt run -r timing.txt
...
$ snakeviz timing.txt
py-spy로 스피드스코프 프로파일 수집
또는 py-spy를 사용해 dbt 명령의 speedscope 프로파일을 수집할 수도 있어요. 이 방식은 프로파일링을 더 낮은 레벨에서 수행해 파서·컴파일러·어댑터의 실행 지점까지 세밀하게 살펴볼 수 있어요.
python -m pip install py-spy
sudo py-spy record -s -f speedscope -- dbt parse
수집된 speedscope 파일은 speedscope.app에서 열어 대화형으로 탐색할 수 있어요. --record-timing-info가 실행 전체(프로젝트 로드부터 실행 완료까지)의 타이밍을 다룬다면, py-spy는 실제 누적 CPU 시간을 프로파일링한다는 점에서 접근 방식이 달라요. 병목이 파서 쪽인지, 컴파일러 쪽인지, SQL 실행 쪽인지 구분하고 싶다면 두 방법을 함께 활용하는 것도 좋아요.
더 알아보기 (Learn more)
- About global configs — 모든 글로벌 플래그 목록 및 우선순위
- snakeviz — cProfile/튜플 프로파일 시각화 도구
- speedscope — 스피드스코프 프로파일 시각화