sypark9646 / paper-logs

2022.10 ~
0 stars 0 forks source link

Fast and Efficient Container Startup at the Edge via Dependency Scheduling #23

Closed sypark9646 closed 1 year ago

sypark9646 commented 1 year ago

어떤 내용의 논문인가요? 👋

컨테이너 오케스트레이터의 스케줄러가 컨테이너의 높은 시작 지연 시간과 오버헤드를 개선하기 위해 작업의 종속성을 고려하여 작업을 배치하는 종속성 스케줄링을 제안한 연구

Abstract (요약) 🕵🏻‍♂️

Containers are becoming the canonical way of deploying compute tasks at the edge. Unfortunately, container startup latency and overhead remain high, limiting responsiveness and resource efficiency of edge deployments. This latency comes mostly from fetching container dependencies including system libraries, tools, configuration files, and data files. To address this, we propose that schedulers in container orchestrators take into account a task’s dependencies. Hence, in dependency scheduling, the scheduler tries to place a task at a node that has the maximum number of the task’s dependencies stored locally. We implement dependency scheduling within Kubernetes and evaluate it through extensive experiments and measurement-driven simulations. We show that, for typical scenarios, dependency scheduling improves task startup latency by 1.4-2.3x relative to current dependency-agnostic schedulers. Our implementation of dependency scheduling has been adopted into the mainline Kubernetes codebase.

이 논문을 읽어서 무엇을 배울 수 있는지 알려주세요! 🤔

💡 요약

  • abstract: 컨테이너 오케스트레이터의 스케줄러가 컨테이너의 높은 시작 지연 시간과 오버헤드를 개선하기 위해 작업의 종속성을 고려하여 작업을 배치하는 종속성 스케줄링을 제안한 연구
  • introduction: (엣지에서 컨테이너 사용이 보편화 되었지만) 컨테이너의 높은 시작 지연 시간과 오버헤드는 주로 시스템 라이브러리 및 구성 파일과 같은 종속성 가져오기로 인해 발생하며, 응답성과 리소스 효율성을 저해한다는 문제가 있다.
  • related works:
    • 스토리지 최적화: 독점적인 NFS 구현을 사용하여 컨테이너 이미지 콘텐츠를 느리게 가져오고 시작 지연을 개선 ex) Slacker
    • 스토리지 백엔드의 복잡성을 증가시키고, 인프라 변경이 필요
    • 유니커널: 불필요한 종속성을 제거하여 시작 시간을 단축
    • 컨테이너 재사용: 엣지 컴퓨팅 환경에서 자주 사용되는 컨테이너를 캐싱 == FaaS
    • 엣지 환경에서는 메모리와 같은 제한된 리소스를 과도하게 사용하므로 핫캐싱이 잘 이루어지지 않을 수 있다.
  • method: 필요한 종속성의 일부 또는 전부를 이미 가지고 있는 노드에 작업을 배치하여 외부 소스에서 종속성을 가져올 필요가 없도록 하여 지연 시간을 최적화한다.
    • image-match policy: 전체 컨테이너 이미지를 종속성으로 취급하고 캐시된 이미지가 가장 많이 겹치는 노드에 작업을 배치
    • 워커 노드에서 kubelet이 이미지 상태를 검색하고 주기적으로 API 서버에 전달
    • 새 포드 요청에 포함된 각 이미지의 이름을 각 노드에 캐시된 이미지의 이름과 비교해야하는데, 이때 이미지 이름을 정규화함으로써 스케줄러가 글로벌 클러스터 상태에 저장된 노드별 이미지 정보를 사용하여 이미지 매칭을 구현할 수 있도록 확장한다.
    • layer-match policy: 레이어 단위로 종속성을 추적하고 일치시켜 이미지의 내부 구성을 고려하여 서로 다른 작업의 종속성 간의 중첩을 활용
    • 워커 노드에서 kubelet이 캐시된 레이어를 추적하고 레이어 메타데이터를 수집하여 API 서버로 전달
    • 종속성 스케줄링은 컨테이너를 노드에 할당하기 위해 컨테이너의 레이어 정보가 필요하므로, 스케줄러가 들어오는 파드 요청의 이미지와 해당 레이어의 고유 식별자 간의 매핑을 알 수 있어야 한다.
    • 새로운 이미지가 포함된 파드 요청이 들어올 때마다, 외부 이미지 리포지토리를 쿼리하여 레이어 매핑에 대한 이미지를 가져와서 캐시에 저장하고, 이후에는 캐시된 매핑을 사용하게 된다.
  • experiment: 총 이미지 및 레이어 수, 이미지 및 레이어 크기의 합계, 평균 이미지 및 레이어 풀 레이턴시, 이미지당 평균 레이어 수와 같은 다양한 메트릭을 포함하여 평가 진행
    • startup latency: 종속성 스케줄링이 기존의 종속성에 구애받지 않는 스케줄러에 비해 작업 시작 지연 시간을 1.4배~2.3배까지 개선
    • resource usage: 종속성 스케줄링을 사용하면 각 노드에서 이미지를 더 잘 패킹할 수 있어 노드당 더 많은 이미지를 저장할 수 있다.
  • conclusion & discussion: 본 논문은 엣지 컴퓨팅의 맥락에서 데이터 로컬리티, 특히 종속성 로컬리티의 문제를 다루는 것을 목표로 하고 있다. 하지만, 종속도가 높은 노드에 대해 로드밸런싱 병목현상은 여전히 존재할 수 있다.

같이 읽어보면 좋을 만한 글이나 이슈가 있을까요?

레퍼런스의 URL을 알려주세요! 🔗

markdown 으로 축약하지 말고, 원본 링크 그대로 그냥 적어주세요!