[Microservice Workload Characteristics]
Microservice는 중첩된 (nested) 호출 구조를 가지며, 전체 서비스의 호출 경로는 graph 형태의 call tree로 표현된다. 이에 따라 microservice architecture의 성능 분석에는 전체 서비스의 call depth와 microservice간의 dependency가 반영되어야 한다.
하나의 사용자 요청은 수십 개의 microservice path를 포함할 수 있으며, 특정 software module에서 발생한 병목이 전체 요청에 대한 응답 지연을 유발할 수 있다. 따라서 전체 end-to-end 서비스의 tail-latency 및 Service Level Agreement (SLA) 만족 여부는 주요 평가 지표로 작용할 수 있다.
Microservice 구조에서 RPC 기반 통신은 송수신 queue, RPC 처리 stack, network stack 등 소프트웨어 계층의 추가적인 메모리 할당을 요구하므로 Request per Second (RPS) 증가와 메모리 할당에 대한 delayed reclaim은 fast tier 계층의 memory pressure를 증가시킬 수 있다.

Microservices [Gan et al., ASPLOS 2019]
[DeathStarBench suite]
DeathStarBench는 microservice workload 평가를 위한 대표적인 benchmark suite 중 하나로, 실제 cloud 서비스의 현실적인 호출 깊이를 반영한 총 5개의 end-to-end 서비스를 포함한다 [Gan et al., ASPLOS 2019].
DeathStarBench는 다양한 microservice 연구에서 실증적 benchmark로 채택되어 왔으며, 신뢰성 있는 workload로서 선행 연구들과의 정합성을 확보할 수 있다 [Seemakhupt et al., SOSP’23], [Pourhabibi et al., MICRO’21], [Pourhabibi et al., ASPLOS’20].
개인 연구의 평가 환경은 Request generator와 CXL-based tiered memory system으로 구성하며, DeathStarBench를 기반으로 RPS 증가에 따른 memory tier별 page movability 변화, 각 microservice-level 및 전체 end-to-end level에서 성능에 미치는 영향을 관찰하고자 한다.

RPC components [Seemakhupt et al., SOSP’23]