Skip to content
← 논문으로
KIPS ACK 2023

A Performance Analysis of Pulling Rate Based on Image Layer Concurrency Level in Docker Environment for Cold Start Mitigation

Minwoo Kang, Heonchang Yu, Donggyun Kim, Jihun Kang

Annual Conference of KIPS (ACK 2023)

이미지 레이어를 무조건 많이 내려받는다고 빨라지지는 않습니다. 이미지 크기·레지스트리 위치·동시 다운로드 수를 바꾸며 풀링 시간을 비교했습니다.

역할
공동저자 · 이미지 풀링 성능 분석
핵심 결과
10Mbps·10개 레이어 조건에서 대부분 동시 다운로드 5~7개가 유리. 도쿄의 10MB 이미지에서는 동시성 증가에 따라 계속 개선되는 예외 확인.
Bar charts of image-pulling time versus concurrent image-layer count, for 10/100/500MB images from Tokyo, Bangkok, and Silicon Valley registries
지역·이미지 크기별 layer 동시 풀링 소요시간 (도쿄·방콕·실리콘밸리 registry)

배경

서버리스의 콜드 스타트—함수를 처음 실행할 때 컨테이너를 초기화·구동하는 지연—중 상당 부분은 원격 레지스트리에서 컨테이너 이미지를 내려받는 이미지 풀링이 차지합니다. 풀링 비용을 줄이면 콜드 스타트 지연도 줄일 수 있습니다.

이 논문은 도커가 이미지 레이어를 동시에 몇 개까지 내려받느냐(동시 풀링 개수, 기본값 3)를 조절하면 풀링 속도를 개선할 수 있는지 분석했습니다.

실험

텐센트 클라우드에서 서울에 클라이언트를, 가까운 순서로 도쿄·방콕·실리콘밸리에 사설 도커 레지스트리를 두고, 각각 1MB·10MB·50MB 레이어 10개로 이뤄진 10MB·100MB·500MB 이미지를 배포했습니다.

대역폭 10Mbps·Intel Xeon Cascade Lake·Ubuntu 22.04 환경에서 동시 풀링 개수를 1·3·5·7·9·10으로 바꿔가며 `time docker pull`로 소요시간을 측정했고, 매 반복마다 캐시를 지우고 서로 다른 시간대에 각 10회씩 진행했습니다.

결과

10Mbps 환경에서는 여러 레이어를 동시에 받는 편이 순차 다운로드보다 빨랐고, 대부분 동시성 5~7개에서 유리했습니다. 그 이상에서는 개선 폭이 작아지거나 오히려 느려졌습니다.

다만 도쿄의 10MB 이미지에서는 동시성을 늘릴수록 계속 빨라졌습니다. 이미지 크기와 레지스트리 위치에 따라 결과가 달라, 동시 다운로드 수는 실제 배포 환경에서 측정해 정할 필요가 있었습니다.