KR101889657B1 - 빅데이터 워크로드 처리를 위한 메모리 서브시스템 자원 관리 방법 - Google Patents
빅데이터 워크로드 처리를 위한 메모리 서브시스템 자원 관리 방법 Download PDFInfo
- Publication number
- KR101889657B1 KR101889657B1 KR1020170068198A KR20170068198A KR101889657B1 KR 101889657 B1 KR101889657 B1 KR 101889657B1 KR 1020170068198 A KR1020170068198 A KR 1020170068198A KR 20170068198 A KR20170068198 A KR 20170068198A KR 101889657 B1 KR101889657 B1 KR 101889657B1
- Authority
- KR
- South Korea
- Prior art keywords
- latency
- big data
- memory
- critical
- workload
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
본 발명은 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드와 배치 처리(batch-processing) 빅데이터 워크로드가 함께 수행 되는 환경에서 공유하여 사용되는 메모리 서브시스템 자원의 경합상황을 방지해주는 최적화 방법에 관한 것으로, 메모리 서브시스템 자원 관리 방법은 (a) 레이턴시 크리티컬 빅데이터 워크로드에서 요구되는 서비스 레벨 목표(SLO)를 유지할 수 있는 캐시 크기를 결정하여 결정된 크기의 캐시 메모리를 레이턴시 크리티컬 빅데이터 워크로드에 격리 할당하고, 나머지의 캐시 메모리를 배치 처리 빅데이터 워크로드에 할당하는 단계; 및 (b) 레이턴시 크리티컬 빅데이터 워크로드에서 요구되는 서비스 레벨 목표(SLO)를 유지할 수 있는 메모리 대역폭을 결정하여 결정된 크기의 메모리 대역폭을 레이턴시 크리티컬 빅데이터 워크로드에 격리 할당하고, 나머지의 메모리 대역폭을 배치 처리 빅데이터 워크로드에 할당하는 단계;를 포함하여 구성되어, 공유 메모리 자원에서의 경합상황을 완화하여 레이턴시 크리티컬 빅데이터 워크로드의 성능 목표인 서비스 레벨 목표(SLO)를 보장하고, 배치 처리 빅데이터 워크로드의 성능 목표인 서버 사용률을 향상시킨다.
Description
본 발명은 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드와 배치 처리(batch-processing) 빅데이터 워크로드가 함께 수행 되는 환경에서 공유하여 사용되는 메모리 서브시스템 자원(캐시 메모리, 메모리 대역폭)의 경합상황을 방지해주는 최적화 방법에 관한 것이다.
웹 검색 엔진(Web search engine), 소셜 네트워크(social network), 금융 시장(finance market) 응용과 같은 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드는 서비스 레벨 목표(Service Level Objective : SLO)들을 보장하기 위하여 테일 레이턴시(tail latency)에 매우 민감하다. CPU, 캐시 메모리(cache memory) 및 메모리 컨트롤러(memory controller)와 같은 공유 자원을 다른 워크로드와 함께 사용하게 되면 그로 인한 간섭(interference) 때문에 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드의 예상치 못한 테일 레이턴시(tail latency)를 발생하게 한다. 따라서 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드를 처리하는 데이터 센터는 컴퓨팅 서버 노드에 동시 수행(co-executing) 워크로드 없이 오직 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드만 수행하게 하여 SLO들을 만족시키게 하지만, 컴퓨팅 서버 노드의 서버 사용률은 10%~45%로 하드웨어 자원이 매우 낭비되고 있다.
이런 제한점 때문에 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드의 SLO들을 보장하면서 서버 사용률을 높이는 방법이 필요하다. 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드의 예상치 못한 테일 레이턴시(tail latency) 발생을 저지하기 위하여 타 워크로드와의 하드웨어 자원 공유로 인한 간섭(interference)을 방지해야 한다. 이를 위하여, 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드가 동시 수행(co-executing) 워크로드와 격리된 하드웨어 자원을 사용하여 성능 격리(performance isolation)를 가능하게 하는 선행 기술이 몇몇 존재한다.
하지만 대부분의 선행 기술들은 빅데이터 워크로드의 성능 목표를 보장하기 위해서 격리해야 되는 공유 자원의 종류를 대부분 코어(core)로 제한하고 있다. 그렇지 않은 선행 기술의 경우는 빅데이터 워크로드의 성능 목표를 엄격하게 보장하지 못하여 성능 목표 보장에 민감하게 반응하는 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드에게 실제 적용하기에는 어려움이 많다.
Harshad Kasture et al., Ubik: Efficient Cache Sharing with Strict QoS for Latency-CriticalWorkloads, in Proc. of the 19th international conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-XIX), March 2014.
본 발명은 빅데이터 워크로드의 성능 목표를 보장하기 위해 격리되어 할당되어야 하는 공유 하드웨어 자원을 메모리 서브 시스템으로 확장하고, 캐시 메모리와 메모리 대역폭의 경합 상황을 완화시키기 위해 해당 자원들을 소프트웨어적인 방법으로 격리하여 빅데이터 워크로드의 메모리 서브시스템 사용 패턴에 맞춰 제공함으로써, 메모리 서브시스템 자원 격리 및 할당 기법을 통해 빅데이터 워크로드의 성능 목표를 엄격하게 보장할 수 있게 하는 것을 그 목적으로 한다.
상기의 목적을 달성하기 위하여, 본 발명에 의한 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드와 배치 처리(batch-processing) 빅데이터 워크로드가 함께 수행 되는 환경에서의 메모리 서브시스템 자원 관리 방법은, (a) 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드에서 요구되는 서비스 레벨 목표(SLO)를 유지할 수 있는 캐시 크기를 결정하여 결정된 크기의 캐시 메모리를 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드에 격리 할당하고, 나머지의 캐시 메모리를 배치 처리(batch-processing) 빅데이터 워크로드에 할당하는 단계; 및 (b) 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드에서 요구되는 서비스 레벨 목표(SLO)를 유지할 수 있는 메모리 대역폭을 결정하여 결정된 크기의 메모리 대역폭을 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드에 격리 할당하고, 나머지의 메모리 대역폭을 배치 처리(batch-processing) 빅데이터 워크로드에 할당하는 단계;를 포함하여 구성된다.
상기 메모리 서브시스템 자원 관리 방법에 있어서, 상기 (a) 단계는 소프트웨어에 의한 캐시 분할 기법을 사용하여 캐시 메모리를 격리 할당하고, 상기 (b) 단계는 소프트웨어에 의한 메모리 대역폭 분할 기법을 사용하여 메모리 대역폭을 격리 할당하는 것을 특징으로 한다.
상기 메모리 서브시스템 자원 관리 방법에 있어서, 상기 (b) 단계는 (b1) 샘플링된 QPS(Query Per Second)와 메모리 대역폭으로 메모리 대역폭 크기에 따른 QPS별 테일 레이턴시(tail-latency) 예측선을 점진적 학습 방법으로 생성하는 단계; 및 (b2) (b1) 단계에서 생성된 예측선을 이용하여 주어진 QPS에 따른 메모리 대역폭별 테일 레이턴시(tail-latency) 예측선을 생성하는 단계;를 구비하고, 상기 (b2) 단계에서 생성된 예측선을 이용하여 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드에서 요구되는 서비스 레벨 목표(SLO)를 유지할 수 있는 메모리 대역폭을 결정하는 것을 특징으로 한다.
상기 메모리 서브시스템 자원 관리 방법에 있어서, 상기 (b1) 단계는 QPS의 최소값, 중간값, 최대값을 샘플링하여 사전 프로파일링을 하고, 각 프로파일링 결과를 비교하여 테일 레이턴시(tail-latency)가 더 급격히 변하는 구간을 기준으로 다시 중간값을 샘플링하는 방식을 다수 반복한 후, 이웃하는 QPS를 직선으로 이어 예측선을 생성하는 것을 특징으로 한다.
상기 메모리 서브시스템 자원 관리 방법에 있어서, 상기 (b1) 단계는 메모리 대역폭을 최대로 사용하는 스트림 벤치마크(stream benchmark)를 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드가 사용하고 있는 코어를 제외한 나머지 코어에서 수행하는 최악 경우(worst case) 상태에서 측정한 테일 레이턴시(tail-latency)에 의한 예측선임을 특징으로 한다.
본 발명에 의하면, 빅데이터 워크로드의 공유 메모리 자원 사용 패턴을 기반으로 빅데이터 워크로드의 성능 목표를 달성할 수 있도록 공유 메모리 자원을 격리하여 할당시켜준다. 따라서 공유 메모리 자원에서의 경합상황을 완화하여 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드의 성능 목표인 서비스 레벨 목표(Service Level Objective : SLO)를 보장하고, 배치 처리(batch-processing) 빅데이터 워크로드의 성능 목표인 서버 사용률을 향상시킨다.
도 1은 본 발명에 의한 메모리 서브시스템을 관리하기 위한 시스템의 구조를 도시한 것이다.
도 2는 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드와 배치 처리(batch-processing) 빅데이터 워크로드의 캐시 크기에 따른 성능 변화 민감도를 측정한 결과를 보여주는 그래프이다.
도 3은 샘플링 된 QPS 지점들에 대하여 메모리 대역폭 크기에 따른 테일 레이턴시(tail latency)를 예측하는 예측선을 보여주는 그래프이다.
도 4는 도 3의 예측선을 이용하여 QPS별로 특정 메모리 대역폭 크기에 따른 테일 레이턴시(tail latency)를 예측하는 예측선을 보여주는 그래프이다.
도 5는 특정 QPS를 선택하여 예측한 예측선과 실제값을 함께 비교하여 나타낸 그래프이다.
도 6 실제로 배치 처리(Batch-processing) 빅데이터 워크로드와 함께 수행했을 때의 테일 레이턴시(tail-latency)의 값과 예측선을 함께 나타낸 그래프이다.
도 2는 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드와 배치 처리(batch-processing) 빅데이터 워크로드의 캐시 크기에 따른 성능 변화 민감도를 측정한 결과를 보여주는 그래프이다.
도 3은 샘플링 된 QPS 지점들에 대하여 메모리 대역폭 크기에 따른 테일 레이턴시(tail latency)를 예측하는 예측선을 보여주는 그래프이다.
도 4는 도 3의 예측선을 이용하여 QPS별로 특정 메모리 대역폭 크기에 따른 테일 레이턴시(tail latency)를 예측하는 예측선을 보여주는 그래프이다.
도 5는 특정 QPS를 선택하여 예측한 예측선과 실제값을 함께 비교하여 나타낸 그래프이다.
도 6 실제로 배치 처리(Batch-processing) 빅데이터 워크로드와 함께 수행했을 때의 테일 레이턴시(tail-latency)의 값과 예측선을 함께 나타낸 그래프이다.
이하에서, 첨부된 도면을 참조하면서 본 발명의 바람직한 실시예에 대하여 상세히 설명하기로 한다.
본 발명은 엄격하게 SLO(Service Level Objective)를 보장해야 하는 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드가 사용하는 데이터 센터의 자원 낭비를 완화시키기 위하여, 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드의 SLO을 보장 시킴과 동시에 낭비되는 자원을 batch-processing 빅데이터 워크로드에게 할당함으로써 서버 이용률을 향상시키는 기술에 관한 것이다.
본 발명에서는 엄격하게 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드의 SLO을 지키기 위하여 배치 처리(batch-processing) 빅데이터 워크로드와 함께 사용하며 성능 방해를 받던 메모리 서브시스템 자원을 격리하여 제공한다. 또한 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드의 SLO들을 보장하면서도 남은 자원을 배치 처리(batch-processing) 빅데이터 워크로드에게 할당시키기 위해, 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드가 최소한으로 필요한 공유 자원의 크기를 사전에 알아야 한다. 그 크기는 QPS(Query Per Second)마다 다르게 나타나기 때문에 모든 QPS에 따라 보장받아야 할 공유자원의 크기를 모두 사전 프로파일링하는 것은 불가능하다. 따라서 본 발명에서는 최소한의 사전 프로파일링을 통해 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드가 보장받아야 하는 공유 메모리 서브 시스템의 크기를 예측하는 기술을 소개한다.
도 1은 본 발명에 의한 메모리 서브시스템을 관리하기 위한 시스템의 구조를 보여준다. 예측기(predictor)는 점진적인 학습으로 만들어진 예측선을 기반으로 각 빅데이터 워크로드에게 주어져야 할 메모리 서브시스템 자원의 크기를 예측해서 전달한다. 예측기(predictor)가 전달한 예측값을 캐시 메모리 매니저(cache memory manager)와 메모리 대역폭 매니저(memory bandwidth manager)가 반영하여 각 워크로드에게 해당 자원을 격리 및 할당한다.
ⅰ. 캐시 메모리 자원 격리
레이턴시 크리티컬(latency-critical) 빅데이터 워크로드와 배치 처리(Batch-processing) 빅데이터 워크로드가 함께 수행될 시 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드의 테일 레이턴시(tail latency)를 증가시키는 메모리 서브시스템 공유자원은 캐시 메모리보다는 메모리 컨트롤러이다.
대부분의 배치 처리(Batch-processing) 빅데이터 워크로드는 접근하는 데이터의 크기가 매우 크기 때문에 메모리로의 접근이 불가피하고 메모리로의 접근으로 인해 캐시 메모리로의 접근 속도가 빠르지 않다. 따라서 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드가 배치 처리(Batch-processing) 빅데이터 워크로드와 캐시 메모리를 공유함으로써 발생되는 방해 정도는 크지 않다. 하지만 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드는 사용하는 캐시 크기에 따라 테일 레이턴시(tail latency)가 변화하기 때문에 SLO들을 보장하기 위해서는 캐시 메모리로의 방해를 최소화하기 위해 배치 처리(Batch-processing) 빅데이터 워크로드와 격리된 캐시 메모리를 사용하여야 한다. 이를 위해 소프트웨어적인 방법으로 특정 캐시 공간을 사용할 수 있도록 메모리 내의 페이지를 구분하여 할당해 주는 캐시 분할 기법을 사용한다. 캐시 분할 기법은 이미 공지된 내용으로 이에 대한 구체적인 설명은 생략하기로 한다.
캐시 분할 기법을 이용하면 각 워크로드가 사용할 수 있는 캐시 메모리의 크기를 조절할 수 있으며 이런 조절을 통해 각 워크로드의 캐시 메모리 크기에 따른 성능 변화 민감도를 예측할 수 있다. 도 2는 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드와 배치 처리(Batch-processing) 빅데이터 워크로드의 캐시 메모리 크기에 따른 성능 변화 민감도를 측정한 결과를 보여주는 그래프이다.
레이턴시 크리티컬(latency-critical) 빅데이터 워크로드는 캐시 크기에 따라 테일 레이턴시(tail latency)가 민감하게 영향을 받는 것을 확인할 수 있지만 배치 처리(Batch-processing) 빅데이터 워크로드의 경우 캐시 크기에 따라 성능 영향이 거의 없는 것을 확인할 수 있다. 따라서 본 발명에서는 배치 처리(Batch-processing) 빅데이터 워크로드가 레이턴시 크리티컬(latency-critical) 워크로드의 캐시 메모리 사용을 방해하지 않도록 사용하는 캐시 메모리는 격리하여 제공하되, 캐시 메모리 크기에 민감한 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드에게 대부분의 캐시 메모리를 사용할 수 있도록 한다.
즉, 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드에게 할당되는 캐시 크기를 조절해가면서 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드의 성능이 나빠지지 않는 선으로 캐시 크기를 결정할 수 있는데, 본 발명의 일 실시예에서는 전체 캐시 크기의 3/4을 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드에게 할당한다.
ⅱ. 메모리 대역폭 자원 격리
레이턴시 크리티컬(latency-critical) 빅데이터 워크로드의 SLO를 엄격하게 보장하기 위해 최소한으로 할당 받아야 하는 메모리 대역폭의 크기를 메모리 대역폭 분할 기법을 사용하여 보장한다. 메모리 대역폭 분할 기법은 소프트웨어적인 방법으로, 해당 워크로드가 ms당 사용하는 메모리 대역폭을 측정하고, 해당 워크로드에게 주어진 대역폭을 다 사용했을 경우 스케줄링 큐에서 제거하여 남은 실행 할당 시간(Time slice)동안 메모리 대역폭에 접근하지 못하도록 하는 방법이다. 메모리 대역폭 분할 기법은 이미 공지된 내용으로 이에 대한 구체적인 설명은 생략하기로 한다.
메모리 대역폭 분할 기법을 통해 메모리 대역폭의 크기를 조절하면서 QPS별 테일 레이턴시(tail latency)의 변화를 나타낼 수 있다. 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드는 QPS가 증가할수록 테일 레이턴시(tail latency)가 일정 값을 유지하다가 급증하는 것을 확인할 수 있으며, 메모리 대역폭 크기가 증가할수록 테일 레이턴시(tail latency)가 감소하는 것을 확인할 수 있다.
따라서 이러한 테일 레이턴시(tail latency)가 변화하는 특징을 이용하여 특정 QPS와 특정 메모리 대역폭을 선택하여 사전 프로파일링을 최소한으로 하여 테일 레이턴시(tail latency)를 예측할 수 있다고 판단할 수 있다. 샘플링된 QPS와 메모리 대역폭으로 사전 프로파일링을 하고, 샘플링된 사전 프로파일링 결과를 통해서 SLO들을 지켜주기 위한 QPS별 메모리 대역폭의 크기를 예측한다.
ⅲ. 성능 격리를 위한 메모리 서브시스템 자원 크기 예측 방법
본 발명에서 사용하는 메모리 대역폭 분할 기법은 물리적으로 메모리 대역폭을 분할 및 격리하여 사용하는 것이 아니기 때문에 같은 워크로드에게 같은 크기의 메모리 대역폭을 할당하더라도 혼자 수행했을 때의 성능과 다른 워크로드와 함께 수행했을 때의 성능이 다르다. 또한 함께 수행되는 워크로드의 메모리 대역폭 사용 특성에 따라 메모리 대역폭에서의 경합 정도가 다르기 때문에 같은 워크로드에게 같은 크기의 메모리 대역폭을 할당하더라도 함께 수행되는 워크로드에 따라 성능이 다르다. 따라서 다양한 메모리 대역폭 사용 특징을 가진 모든 배치 처리(Batch-processing) 빅데이터 워크로드와의 동시 수행에 대비하여 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드의 SLO들을 만족시킬 수 있는 메모리 대역폭 크기를 예측해야 한다.
이를 위해 본 발명에서는 메모리 대역폭의 경합 정도가 가장 심했을 경우를 최악 경우(worst case)로 가정하고 해당 상황에서까지 SLO들을 보장할 수 있도록 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드에게 할당되어야 하는 메모리 대역폭의 크기를 예측한다.
메모리 대역폭의 경합 정도가 극심한 경우를 가정하기 위하여 메모리 대역폭을 최대로 사용하는 스트림 벤치마크(stream benchmark)를 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드가 사용하고 있는 코어를 제외한 나머지 코어에 수행시킨다. 해당 상황에서 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드의 테일 레이턴시(tail latency) 변화를 보다 정확하게 예측하기 위해 사전 프로파일링 해야 하는 QPS 크기를 분할 정복 방법으로 샘플링하여 선택하고 프로파일링 한다.
레이턴시 크리티컬(latency-critical) 빅데이터 워크로드의 테일 레이턴시(tail latency)는 일정한 값을 유지하다가 급증하는 특징을 가지므로 급증하는 구간을 찾기 위해 프로파일링 된 테일 레이턴시(tail latency)를 확인 및 학습하며 프로파일링 해야 될 QPS 크기를 조절한다.
점진적인 샘플링 방법은 이진 검색 알고리즘을 기반으로 한다. 우선 QPS의 최소값, 중간값, 최대값을 샘플링하여 사전 프로파일링을 하고, 각 프로파일링 결과를 비교해 본 후 테일 레이턴시(tail latency)가 더 크게 향상 된 구간을 기준으로 다시 이진 검색을 수행한다(도 3을 참조하면, 최소값 1000, 중간값 5000, 최대값 10000으로 샘플링 하고, 이후 더 급격히 변한 구간인 5000 ~ 10000 구간에서 중간값 7500을 샘플링하고, 이후 더 급격히 변한 구간인 7500 ~ 10000 구간에서 중간값 8750을 샘플링한다).
이와 같은 점진적인 학습으로 선택된 QPS 몇 개와 해당 특정 메모리 대역폭 크기를 바탕으로 사전 프로파일링된 데이터를 이용하여 도 3과 도 4와 같은 예측선을 만든다. 다양한 QPS 지점들에 대하여 이웃하는 QPS 지점을 이어 메모리 대역폭 크기에 따른 테일 레이턴시(tail latency)를 예측하는 도 3과 같은 예측선을 만들고, 도 3의 예측선을 이용하여 QPS별로 특정 메모리 대역폭 크기에 따른 테일 레이턴시(tail latency)를 예측하는 도 4와 같은 예측선을 만든다. 도 4는 도 3을 바탕으로 QPS가 1000, 5000, 7500, 8750, 10000일 때의 대역폭 크기에 따른 테일 레이턴시(tail latency)를 예측하는 그래프이다. 위와 같은 방법으로 예측선들을 이용하면 모든 QPS에서 SLOs을 보장할 수 있는 메모리 대역폭의 크기를 예측할 수 있다.
본 발명에서 사용하는 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드는 MIT대학에서 개발한 Tailbench 벤치마크를 사용했다. 해당 벤치마크는 BigDataBench와 같은 빅데이터 어플리케이션이 레이턴스(latencies)를 엄격하게 측정할 수 없는 부분에 제한점을 두고 테일 레이턴시(tail latency)를 측정할 수 있도록 만든 벤치마크이다. 배치 처리(Batch-processing) 빅데이터 워크로드로는 HiBench 벤치마크를 사용했다.
ⅰ. 샘플링의 통한 예측값의 정확도
레이턴시 크리티컬(latency-critical) 빅데이터 워크로드의 테일 레이턴시(tail latency)는 QPS(Query Per Second)에 따라 변화하고 QPS마다 주어지는 메모리 대역폭 크기에 따라 변화한다. 따라서 모든 QPS에 대해 메모리 대역폭 크기에 따른 테일 레이턴시(tail latency)를 파악해야만 하는데 이 모든 값들을 사전 프로파일링 통해 구하기는 힘들다.
따라서 본 발명에서는 모든 QPS에 대해 메모리 대역폭 크기에 따른 테일 레이턴시(tail latency)를 점진적 학습 방법으로 선택된 최소한의 사전 프로파일링을 통하여 예측선을 만들어 추측한다. 엄격한 SLO들을 보장하기 위해서는 사전 프로파일링을 통해 구한 예측값과 실제값이 가까워야 한다.
도 5는 특정 QPS를 선택하여 예측한 예측선과 실제값을 함께 비교하여 나타낸 그래프이다. 대부분의 실제값이 예측선과 가깝게 위치하는 것을 볼 수 있고, 정확도를 수치화 했을 때 최소 74%에서 최대 98%인 것을 확인할 수 있었다. 또한 실제값과 예측값이 일치하지 않더라도 예측값이 실제값보다 더 큰 레이턴시(latency)를 갖게 하기 때문에 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드의 SLO을 보장하기에 문제가 없다.
ⅱ. 빅데이터 워크로드의 성능 목표 달성 정도
메모리 대역폭 경합이 가장 극심한 상황을 최악 경우(worst case)로 가정하고 이를 기반으로 QPS별 메모리 대역폭 크기에 따른 테일 레이턴시(tail latency)를 예측하는 예측선을 만들었기 때문에 해당 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드는 어떠한 배치 처리(Batch-processing) 빅데이터 워크로드와 함께 수행되더라도 예측값과 같거나 작아야 한다.
도 6은 실제로 배치 처리(Batch-processing) 빅데이터 워크로드와 함께 수행했을 때의 테일 레이턴시(tail-latency)의 값과 예측선을 함께 나타낸 그래프이다. 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드에게 주어지는 메모리 대역폭의 크기와 배치 처리(Batch-processing) 빅데이터 워크로드의 종류에 따라 예측값과 실제값의 차이폭이 다르게 나타나긴 하나 모든 실제값이 예측값보다 작게 나타나는 것을 알 수 있다. 이로 인해 해당 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드는 어떤 상황에서도 SLO들을 보장받을 수 있음을 증명한다.
레이턴시 크리티컬 빅데이터 워크로드 | 배치 처리 빅데이터 워크로드와 함께 | |
서버 사용률 | 17 % | 71 % |
<메모리 서브시스템 자원 관리 시스템 적용 유무에 따른 서버 사용률>
표 1은 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드 홀로 서버 노드에 실행했을 때와, 메모리 서브시스템 격리 할당을 통해 성능 격리(performance isolation)를 가능하게 하여 배치 처리(Batch-processing) 빅데이터 워크로드와 함께 수행했을 때의 서버 사용률을 측정한 결과를 보여준다. 서버 사용률은 CPU 사용률을 기반으로 측정했고 410% 향상된 것을 볼 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예는 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다
Claims (5)
- 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드와 배치 처리(batch-processing) 빅데이터 워크로드가 함께 수행 되는 환경에서 메모리 서브시스템 관리 시스템이 메모리 서브시스템의 자원을 관리하는 방법에 있어서,
(a) 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드에서 요구되는 서비스 레벨 목표(SLO)를 유지할 수 있는 캐시 크기를 결정하여 결정된 크기의 캐시 메모리를 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드에 격리 할당하고, 나머지의 캐시 메모리를 배치 처리(batch-processing) 빅데이터 워크로드에 할당하는 단계; 및
(b) 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드에서 요구되는 서비스 레벨 목표(SLO)를 유지할 수 있는 메모리 대역폭을 결정하여 결정된 크기의 메모리 대역폭을 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드에 격리 할당하고, 나머지의 메모리 대역폭을 배치 처리(batch-processing) 빅데이터 워크로드에 할당하는 단계;를 포함함을 특징으로 하는 메모리 서브시스템 자원 관리 방법. - 제1항에 있어서, 상기 (a) 단계는 소프트웨어에 의한 캐시 분할 기법을 사용하여 캐시 메모리를 격리 할당하고,
상기 (b) 단계는 소프트웨어에 의한 메모리 대역폭 분할 기법을 사용하여 메모리 대역폭을 격리 할당하는 것을 특징으로 하는 메모리 서브시스템 자원 관리 방법. - 제1항에 있어서, 상기 (b) 단계는,
(b1) 샘플링된 QPS(Query Per Second)와 메모리 대역폭으로 메모리 대역폭 크기에 따른 QPS별 테일 레이턴시(tail-latency) 예측선을 점진적 학습 방법으로 생성하는 단계; 및
(b2) (b1) 단계에서 생성된 예측선을 이용하여 주어진 QPS에 따른 메모리 대역폭별 테일 레이턴시(tail-latency) 예측선을 생성하는 단계;를 구비하고,
상기 (b2) 단계에서 생성된 예측선을 이용하여 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드에서 요구되는 서비스 레벨 목표(SLO)를 유지할 수 있는 메모리 대역폭을 결정하는 것을 특징으로 하는 메모리 서브시스템 자원 관리 방법. - 제3항에 있어서, 상기 (b1) 단계는,
QPS의 최소값, 중간값, 최대값을 샘플링하여 사전 프로파일링을 하고, 각 프로파일링 결과를 비교하여 최소값과 중간값의 구간과 중간값과 최대값의 구간 중에서 테일 레이턴시(tail-latency)가 더 급격히 변하는 구간을 기준으로 다시 새로운 중간값을 샘플링하는 방식을 다수 반복한 후, 이웃하는 QPS 지점을 이어 예측선을 생성하는 것을 특징으로 하는 메모리 서브시스템 자원 관리 방법. - 제3항에 있어서, 상기 (b1) 단계는 메모리 대역폭을 최대로 사용하는 스트림 벤치 마크(stream benchmark)를 레이턴시 크리티컬(latency-critical) 빅데이터 워크로드가 사용하고 있는 코어를 제외한 나머지 코어에서 수행하는 상태에서 측정한 테일 레이턴시(tail-latency)에 의한 예측선임을 특징으로 하는 메모리 서브시스템 자원 관리 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170054276 | 2017-04-27 | ||
KR20170054276 | 2017-04-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101889657B1 true KR101889657B1 (ko) | 2018-08-20 |
Family
ID=63442883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170068198A KR101889657B1 (ko) | 2017-04-27 | 2017-06-01 | 빅데이터 워크로드 처리를 위한 메모리 서브시스템 자원 관리 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101889657B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200045927A (ko) * | 2018-10-23 | 2020-05-06 | 울산과학기술원 | 시스템의 메모리 대역폭을 분할하는 방법 및 장치 |
KR20210004710A (ko) | 2019-07-05 | 2021-01-13 | 서울대학교산학협력단 | 데이터센터 워크로드를 위한 적응형 성능격리 시스템 |
US11330042B2 (en) * | 2018-05-17 | 2022-05-10 | International Business Machines Corporation | Optimizing dynamic resource allocations for storage-dependent workloads in disaggregated data centers |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7774554B2 (en) * | 2007-02-20 | 2010-08-10 | International Business Machines Corporation | System and method for intelligent software-controlled cache injection |
JP2012515971A (ja) * | 2009-01-30 | 2012-07-12 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | キャパシティ計画及び作業負荷管理を統合するためのシステム及び方法 |
US8812797B2 (en) * | 2009-08-14 | 2014-08-19 | Nxp, B.V. | Memory controller with external refresh mechanism |
KR20160076969A (ko) * | 2014-12-23 | 2016-07-01 | 인텔 코포레이션 | 엔드-투-엔드 데이터센터 성능 제어 |
-
2017
- 2017-06-01 KR KR1020170068198A patent/KR101889657B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7774554B2 (en) * | 2007-02-20 | 2010-08-10 | International Business Machines Corporation | System and method for intelligent software-controlled cache injection |
JP2012515971A (ja) * | 2009-01-30 | 2012-07-12 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | キャパシティ計画及び作業負荷管理を統合するためのシステム及び方法 |
US8812797B2 (en) * | 2009-08-14 | 2014-08-19 | Nxp, B.V. | Memory controller with external refresh mechanism |
KR20160076969A (ko) * | 2014-12-23 | 2016-07-01 | 인텔 코포레이션 | 엔드-투-엔드 데이터센터 성능 제어 |
Non-Patent Citations (2)
Title |
---|
Harshad Kasture et al., Ubik: Efficient Cache Sharing with Strict QoS for Latency-CriticalWorkloads, in Proc. of the 19th international conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-XIX), March 2014. |
남윤성 외 3명. '멀티쓰레드 워크로드를 위한 DVFS 기반 메모리 경합 인지 스케줄링 기법'. 한국정보과학회 2016년 동계학술대회 논문집, 2016.12, pp.1242-1244. * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11330042B2 (en) * | 2018-05-17 | 2022-05-10 | International Business Machines Corporation | Optimizing dynamic resource allocations for storage-dependent workloads in disaggregated data centers |
KR20200045927A (ko) * | 2018-10-23 | 2020-05-06 | 울산과학기술원 | 시스템의 메모리 대역폭을 분할하는 방법 및 장치 |
KR102132598B1 (ko) | 2018-10-23 | 2020-07-10 | 울산과학기술원 | 시스템의 메모리 대역폭을 분할하는 방법 및 장치 |
KR20210004710A (ko) | 2019-07-05 | 2021-01-13 | 서울대학교산학협력단 | 데이터센터 워크로드를 위한 적응형 성능격리 시스템 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jog et al. | Exploiting core criticality for enhanced GPU performance | |
EP3507692B1 (en) | Resource oversubscription based on utilization patterns in computing systems | |
US7818594B2 (en) | Power efficient resource allocation in data centers | |
US8707300B2 (en) | Workload interference estimation and performance optimization | |
US8190795B2 (en) | Memory buffer allocation device and computer readable medium having stored thereon memory buffer allocation program | |
US9921861B2 (en) | Virtual machine management method and information processing apparatus | |
KR101889657B1 (ko) | 빅데이터 워크로드 처리를 위한 메모리 서브시스템 자원 관리 방법 | |
US10884779B2 (en) | Systems and methods for selecting virtual machines to be migrated | |
KR102469927B1 (ko) | 분할 메모리 관리장치 및 방법 | |
JP2008191949A (ja) | マルチコアシステムおよびマルチコアシステムの負荷分散方法 | |
US20120042322A1 (en) | Hybrid Program Balancing | |
US20080195447A1 (en) | System and method for capacity sizing for computer systems | |
KR101848418B1 (ko) | 불균일 기억 장치 접근(numa) 구조에서 메모리 정책기반 쓰레드 재배치 방법 | |
JP6158751B2 (ja) | 計算機資源割当装置及び計算機資源割当プログラム | |
KR20190119223A (ko) | 처리 시간에 민감한 워크로드에 대한 메모리 대역폭 할당 방법 및 장치 | |
KR102319718B1 (ko) | 동적 매니코어 파티셔닝 장치 및 방법 | |
Liu et al. | Using aggressor thread information to improve shared cache management for CMPs | |
Modi et al. | CABARRE: Request Response Arbitration for Shared Cache Management | |
Nabavinejad et al. | Data locality and VM interference aware mitigation of data skew in hadoop leveraging modern portfolio theory | |
US10642657B2 (en) | Client-server architecture for multicore computer system to realize single-core-equivalent view | |
Jing et al. | An energy efficient and resource‐constrained scheduling framework for smart city application | |
Zhang et al. | Real-time Prediction Model of Cache Miss Rate Based on Local Memory Access Characteristics | |
CN104951369A (zh) | 消除热点资源竞争的方法和装置 | |
US12118394B2 (en) | Method and apparatus for memory integrated management of cluster system | |
US11163705B2 (en) | Method and apparatus for partitioning memory bandwidth of system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |