KR102062332B1 - 처리 시간에 민감한 워크로드에 대한 메모리 대역폭 할당 방법 및 장치 - Google Patents
처리 시간에 민감한 워크로드에 대한 메모리 대역폭 할당 방법 및 장치 Download PDFInfo
- Publication number
- KR102062332B1 KR102062332B1 KR1020180038523A KR20180038523A KR102062332B1 KR 102062332 B1 KR102062332 B1 KR 102062332B1 KR 1020180038523 A KR1020180038523 A KR 1020180038523A KR 20180038523 A KR20180038523 A KR 20180038523A KR 102062332 B1 KR102062332 B1 KR 102062332B1
- Authority
- KR
- South Korea
- Prior art keywords
- sensitive
- memory bandwidth
- processing time
- workloads
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 처리 시간에 민감한(latency-sensitive) 빅데이터 워크로드와 일괄 처리(batch-processing) 빅데이터 워크로드가 함께 수행 되는 환경에서 자원의 관리를 통해 경합상황을 최소화하는 최적의 자원의 크기를 찾아내는 효과적인 방법에 관한 것으로, 본 발명에 의한 처리 시간에 민감한(latency-sensitive) 워크로드와 일괄 처리(batch-processing) 워크로드가 함께 수행 되는 환경에서 메모리 서브시스템 관리 시스템이 메모리 서브시스템의 메모리 대역폭을 할당하는 방법은, (a) 머신 러닝 방식으로 훈련된 예측 모델에 스트레스 정도, QPS, 테일 레이턴시를 입력값으로 적용하여 처리 시간에 민감한 워크로드에 적용되는 메모리 대역폭 크기를 예측하는 단계; 및 (b) 상기 (a) 단계에서 예측된 크기의 메모리 대역폭을 처리 시간에 민감한 워크로드에 할당하고, 나머지의 대역폭을 일괄 처리 워크로드에 할당하는 단계;를 포함하여 구성된다.
Description
본 발명은 처리 시간에 민감한(latency-sensitive) 빅데이터 워크로드와 일괄 처리(batch-processing) 빅데이터 워크로드가 함께 수행 되는 환경에서 자원의 관리를 통해 경합상황을 최소화하는 최적의 자원의 크기를 찾아내는 효과적인 방법 및 장치에 관한 것이다.
웹 검색 엔진(Web search engine), 소셜 네트워크(social network), 금융 시장(finance market) 응용과 같은 처리 시간에 민감한(latency-sensitive) 빅데이터 워크로드는 서비스 품질(Quality of Service : QoS)을 제공하기 위하여 성능에 매우 민감하다. CPU, 캐시 메모리(cache memory) 및 메모리 컨트롤러(memory controller)와 같은 공유 자원의 경합 상황으로 인해 처리 시간에 민감한 빅데이트 워크로드는 예상치 못한 테일 레이턴시(tail latency)가 발생하여 서비스 레벨 목표(Service Level Objective : SLO)를 만족시키지 못하면 최상의 서비스 품질을 제공하지 못할 수 있다. 따라서 이를 위해 많은 데이터 센터에서는 컴퓨팅 서버 노드에 처리 시간에 민감한 빅데이터 워크로드만을 수행하게 된다. 이런 경우 서버 노드의 사용률은 10%~45%로 하드웨어 자원이 매우 낭비되고 있음을 알 수 있다.
처리 시간에 민감한 빅데이터 워크로드와 타 워크로드들을 동시 수행시킴으로 서버 사용률을 높일 수 있다. 하지만 하드웨어 자원 공유로 인해 생길 수 있는 간섭으로 처리 시간에 민감한 워크로드의 성능 저하가 있을 수 있기 때문에 이를 최소화하는 선행 기술들이 존재한다. 이 선행 기술들은 처리 시간에 민감한 빅데이터 워크로드와 동시 배치되어 수행되는 워크로드와 격리된 하드웨어 자원을 제공하여 처리 시간에 민감한 빅데이터 워크로드의 성능을 보장해주고 있다.
대부분의 선행 기술들은 하드웨어 자원 중 코어와 캐시 메모리의 격리를 통해 처리 시간에 민감한 빅데이터 워크로드의 성능을 보장해주고 있다. 또한 메모리 대역폭에서의 경합에 대해 관리하여 제공해주는 기술도 존재한다.
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-sensitive) 워크로드와 일괄 처리(batch-processing) 워크로드가 함께 수행 되는 환경에서 메모리 서브시스템 관리 시스템이 메모리 서브시스템의 메모리 대역폭을 할당하는 방법은, (a) 머신 러닝 방식으로 훈련된 예측 모델에 스트레스 정도, QPS, 테일 레이턴시를 입력값으로 적용하여 처리 시간에 민감한 워크로드에 적용되는 메모리 대역폭 크기를 예측하는 단계; 및 (b) 상기 (a) 단계에서 예측된 크기의 메모리 대역폭을 처리 시간에 민감한 워크로드에 할당하고, 나머지의 대역폭을 일괄 처리 워크로드에 할당하는 단계;를 포함하여 구성된다.
상기의 처리 시간에 민감한 워크로드에 대한 메모리 대역폭 할당 방법에 있어서, 상기 예측 모델은, (a1) 결정 트리 방식의 예측 모델을 생성하는 머신 러닝 알고리즘을 생성하는 단계; (a2) 스트레스 정도, 메모리 대역폭 크기, QPS(Query Per Second)의 값은 임의로 조합하면서 테일 레이턴시(tail latency)를 측정하여 훈련 데이터 세트를 수집하는 단계; 및 (a3) 수집된 훈련 데이터 세트로 상기 예측 모델을 훈련하는 단계;를 포함하는 방식으로 훈련되는 것을 특징으로 한다.
상기의 처리 시간에 민감한 워크로드에 대한 메모리 대역폭 할당 방법에 있어서, 상기 (a2) 단계에서 상기 훈련 데이터 세트를 수집하기 위한 시스템 환경에서, 처리 시간에 민감한 워크로드를 수행할 코어를 제외한 나머지 코어에서, 일괄처리 워크로드로는 스트림(Stream) 벤치마크를 사용하는 것을 특징으로 한다.
상기의 처리 시간에 민감한 워크로드에 대한 메모리 대역폭 할당 방법에 있어서, 상기 시스템 환경에서 처리 시간에 민감한 워크로드와 스트림(stream) 벤치마크가 사용할 메모리 대역폭을 Memguard로 나누어 각각 제공하는 것을 특징으로 한다.
상기의 처리 시간에 민감한 워크로드에 대한 메모리 대역폭 할당 방법에 있어서, 상기 (a) 단계는 결정 트리에서 리프 노드에 도달 했을 때의 테일 레이턴시의 범위가 SLO 이하임이 보장이 되지 않으면, SLO 이하의 값을 만족시키는 노드로 백트랙킹하여 SLO 이하의 범위로 결정하여 메모리 대역폭 크기를 예측하는 것을 특징으로 한다.
상기의 처리 시간에 민감한 워크로드에 대한 메모리 대역폭 할당 방법에 있어서, 상기 머신 러닝 알고리즘은 포스트 프루닝(post pruning) 방식을 사용하는 REPTree 임을 특징으로 한다.
상기의 목적을 달성하기 위하여, 본 발명의 다른 측면에 의한 처리 시간에 민감한(latency-sensitive) 워크로드와 일괄 처리(batch-processing) 워크로드가 함께 수행 되는 환경에서 메모리 서브시스템의 메모리 대역폭을 할당하는 메모리 서브시스템 관리 시스템은, 머신 러닝 방식으로 훈련된 예측 모델에 스트레스 정도, QPS, 테일 레이턴시를 입력값으로 적용하여 처리 시간에 민감한 워크로드에 적용되는 메모리 대역폭 크기를 예측하는 예측기; 및 상기 예측기에서 예측된 크기의 메모리 대역폭을 처리 시간에 민감한 워크로드에 할당하고, 나머지의 대역폭을 일괄 처리 워크로드에 할당하는 메모리 대역폭 매니저;를 포함하여 구성된다.
상기의 메모리 서브시스템 관리 시스템에 있어서, 상기 예측 모델은 결정 트리 방식의 예측 모델을 생성하는 머신 러닝 알고리즘을 생성하고, 스트레스 정도, 메모리 대역폭 크기, QPS(Query Per Second)의 값은 임의로 조합하면서 테일 레이턴시(tail latency)를 측정하여 훈련 데이터 세트를 수집하고, 수집된 훈련 데이터 세트로 상기 예측 모델을 훈련하는 방식으로 훈련되는 것을 특징으로 한다.
상기의 메모리 서브시스템 관리 시스템에 있어서, 상기 훈련 데이터 세트를 수집하기 위한 시스템 환경으로, 처리 시간에 민감한 워크로드를 수행할 코어를 제외한 나머지 코어에서, 일괄처리 워크로드로는 스트림(Stream) 벤치마크를 사용하는 것을 특징으로 한다.
상기의 메모리 서브시스템 관리 시스템에 있어서, 상기 시스템 환경에서 처리 시간에 민감한 워크로드와 스트림(stream) 벤치마크가 사용할 메모리 대역폭을 Memguard로 나누어 각각 제공하는 것을 특징으로 한다.
상기의 메모리 서브시스템 관리 시스템에 있어서, 상기 예측기는 결정 트리에서 리프 노드에 도달 했을 때의 테일 레이턴시의 범위가 SLO 이하임이 보장이 되지 않으면, SLO 이하의 값을 만족시키는 노드로 백트랙킹하여 SLO 이하의 범위로 결정하여 메모리 대역폭 크기를 예측하는 것을 특징으로 한다.
상기의 메모리 서브시스템 관리 시스템에 있어서, 상기 머신 러닝 알고리즘은 포스트 프루닝(post pruning) 방식을 사용하는 REPTree 임을 특징으로 한다.
상기의 목적을 달성하기 위하여, 본 발명의 또 다른 측면에 의한 컴퓨터로 읽을 수 있는 기록 매체는 상기의 처리 시간에 민감한 워크로드에 대한 메모리 대역폭 할당 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한다.
본 발명에 의하면, 처리 시간에 민감한 워크로드의 SLO를 보장하기 위한 메모리 대역폭의 크기를 정확히 예측하는 것이 가능하다. 따라서 예측한 값을 처리 시간에 민감한 워크로드에게 제공하고 나머지를 타 워크로드에게 주어 서버의 하드웨어 사용률을 높이고 처리 시간에 민감한 워크로드의 성능 목표를 보장할 수 있다.
도 1은 본 발명에 의한 메모리 서브시스템을 관리하기 위한 시스템의 구조를 도시한 것이다.
도 2는 본 발명에 의한 예측 모델 생성의 흐름도이다.
도 3은 모델 생성을 위해 필요한 데이터를 수집할 때의 시스템 구성도를 나타낸 것이다.
도 4는 본 발명에 의해 생성한 예측 모델의 예시이다.
도 5는 본 발명에 의해 생성한 예측 모델을 이용하여 예측 값을 찾는 예시를 나타낸다.
도 6은 본 발명에 의해 생성한 예측 모델을 이용하여 예측 값을 찾는 수정된 알고리즘의 예시를 나타낸다.
도 2는 본 발명에 의한 예측 모델 생성의 흐름도이다.
도 3은 모델 생성을 위해 필요한 데이터를 수집할 때의 시스템 구성도를 나타낸 것이다.
도 4는 본 발명에 의해 생성한 예측 모델의 예시이다.
도 5는 본 발명에 의해 생성한 예측 모델을 이용하여 예측 값을 찾는 예시를 나타낸다.
도 6은 본 발명에 의해 생성한 예측 모델을 이용하여 예측 값을 찾는 수정된 알고리즘의 예시를 나타낸다.
이하에서, 첨부된 도면을 참조하면서 본 발명의 바람직한 실시예에 대하여 상세히 설명하기로 한다.
도 1은 본 발명에 의한 메모리 서브시스템을 관리하기 위한 시스템의 구조를 보여준다. 메모리 서브시스템 관리 시스템의 예측기(predictor)는 머신 러닝 기반으로 각 빅데이터 워크로드에게 주어져야 할 메모리 서브시스템 자원의 크기를 예측해서 전달한다. 예측기(predictor)가 전달한 예측값을 캐시 메모리 매니저(cache memory manager)와 메모리 대역폭 매니저(memory bandwidth manager)가 반영하여 각 워크로드에게 해당 자원을 격리 및 할당한다.
본 발명에 의한 메모리 서브시스템 관리 시스템은 처리 시간에 민감한 워크로드와 일괄 처리 워크로드를 동시 배치하여 수행시킴으로써 서버 하드웨어 사용률을 높이고 처리 시간에 민감한 워크로드의 성능을 보장할 수 있도록 최적의 자원의 크기를 효과적으로 예측할 수 있다.
이를 위해 메모리 서브시스템 관리 시스템의 예측기는 머신 러닝 방식으로 훈련된 예측 모델에 스트레스 정도, QPS, 테일 레이턴시를 입력값으로 적용하여 처리 시간에 민감한 워크로드에 적용되는 메모리 대역폭 크기를 예측하고, 메모리 대역폭 매니저는 예측기에서 예측된 크기의 메모리 대역폭을 처리 시간에 민감한 워크로드에 할당하고, 나머지의 대역폭을 일괄 처리 워크로드에 할당한다.
도 2는 본 발명에 의한 메모리 서브시스템 관리 시스템에서 머신 러닝 알고리즘을 이용한 모델 생성 과정을 보여준다. 먼저 모델을 훈련할 때 필요한 데이터를 수집하며, 수집한 데이터를 머신 러닝 알고리즘으로 모델을 훈련시킨다. 그리고 생성된 모델을 기반으로 입력 값에 대한 결과 값(예측 값)을 보여준다. 도 2에서 입력 값은 스트레스 정도, QPS(Query Per Second), 테일 레이턴시(tail latency)이고, 결과 값(예측 값)은 메모리 대역폭 크기이다.
모델을 훈련시킬 때 필요한 데이터를 수집하기 위해 실제 수행되는 것처럼 도 3과 같이 시스템을 구성한다. 먼저 처리 시간에 민감한 워크로드를 수행할 코어를 제외한 나머지 코어에서, 일괄처리 워크로드로는 스트림(Stream) 벤치마크를 사용한다. 스트림(Stream) 벤치마크는 데이터를 수집하기 위해 사용하는 워크로드로서 메모리 컨트롤러에 일정하게 스트레스(stress)를 준다. 그리고 데이터를 수집하며 Intel Performance Counter Monitor로 처리 시간에 민감한 워크로드를 제외한 일괄 처리 워크로드가 서버의 메모리 대역폭을 얼마나 사용하는지를 측정하는데, 그 값을 스트레스(stress) 정도라고 하고, 단위는 GB/s이다.
그 다음, 처리 시간에 민감한 워크로드와 스트림(stream) 벤치마크가 사용할 메모리 대역폭을 Memguard로 나누어 각각 제공한다. Memguard는 각 워크로드 별로 사용할 메모리 대역폭의 크기를 정하여 제공할 수 있으며, 제공된 크기 이상으로는 메모리 대역폭을 사용하지 못하도록 제한한다.
그리고 처리 시간에 민감한 워크로드의 QPS(Query Per Second)를 기록한다. 이러한 구성에서 처리 시간에 민감한 워크로드의 테일 레이턴시(tail latency)를 측정하여 기록한다.
위에서 설정한 스트레스 정도, 메모리 대역폭 크기, QPS, 테일 레이턴시(tail latency)를 데이터의 특성 항목으로 정의한다(표 1 참조). 정의한 특성들 중 스트레스 정도, 메모리 대역폭 크기, QPS의 값은 임의로 다양하게 조합하며 실제 테일 레이턴시를 측정한다. 이렇게 4가지의 데이터 특징을 기준으로 수집한 데이터가 모델을 훈련할 때 사용할 데이터이다.
특징 (영어 이름) | 설명 |
서버의 메모리 대역폭 스트레스 정도 (Stress Degree) | 처리 시간에 민감한 워크로드 이외의 워크로드들이 메모리 대역폭에 가하고 있는 크기 |
처리 시간에 민감한 워크로드의 1초당 쿼리 개수 (QPS) | 처리 시간에 민감한 워크로드의 1초당 쿼리 개수 |
처리 시간에 민감한 워크로드에게 제공된 메모리 대역폭의 크기 (Allocated BW) | 할당된 메모리 대역폭의 크기 |
처리 시간에 민감한 워크로드의 처리 시간 (Latency 또는 SLO) | 위의 세 가지 요인들을 적용해서 측정된 처리 시간 |
<수집할 데이터의 특징>
위에서 수집한 데이터들을 머신 러닝 알고리즘을 이용하여 자원 크기 예측 모델을 훈련시킨다. 머신 러닝 알고리즘은 weka라는 오픈 소스로 공개된 머신 러닝 툴 중에서 REPTree를 사용하는 것이 바람직하다. REPTree 알고리즘은 빠른 모델 생성과 높은 정확도를 보여주는 알고리즘이다. REPTree 알고리즘은 훈련 데이터 세트(training data set)를 입력 받아 반복적으로 알고리즘을 수행시켜 트리 모델을 생성해낸다.
결정 트리(Decision tree) 모델은 오버피팅(overfitting) 되는 문제가 있다. 오버피팅(overfitting) 이란 훈련한 데이터에만 꼭 맞는 모델로 생성되는 것이다. 이 경우 다른 테스트 데이터에 대한 정확도는 떨어지게 된다. 이를 해결하기 위해 프루닝(pruning)을 적용한다. 프루닝(pruning)은 트리의 크기를 줄여가며 데이터를 분류하는데 필요 없는 가지들을 쳐낸다.
REPTree 알고리즘은 포스트 프루닝(post pruning) 방식을 사용하는데, 포스트 프루닝(post pruning) 방식은 훈련 데이터 세트(training data set)를 완벽하게 분류할 수 있는 트리를 만들고 나서 프루닝(pruning) 작업을 진행하는 것이다. 따라서 생성된 트리는 오차 평가(error estimation) 과정을 거쳐 프루닝(pruning) 과정을 거칠 것인지 아니면 트리의 크기를 더 키우게 될 것인지를 결정한다.
트리 형태의 모델의 리프 노드에 원하는 예측 값이 있다. 리프 노드에 있는 예측 값을 얻기 위해 트리 모델을 검색하면서 루트 노드에서부터 따라 들어간다. 리프 노드를 제외한 각 노드에는 데이터의 특징이 있고 기준 값을 가지고 있다. 기준 값은 현재 노드에서 다음 노드를 결정하는 기준이 되는 값으로 현재 노드의 기준 값과 입력 값을 비교한다. 예를 들어, 도 4에서와 같이 입력 값이 기준 값보다 작다면 왼쪽 가지로 내려가고, 크거나 같으면 오른쪽 가지로 내려갈 수 있다. 리프 노드에 도달할 때까지 각 노드의 기준 값을 비교하면서 내려가면 예측 값을 얻을 수 있다.
Weka 머신 러닝 툴을 이용하여 REPTree 기반의 예측 모델을 생성하여 그대로 사용할 수 있다. 하지만 생성된 모델을 기반으로 리프 노드까지 도달하기 위해 트리 모델을 검색하는데 그대로 모델을 검색하면 정확한 예측 값을 얻을 수가 없다.
예를 들어, 도 5에서 사용자가 원하는 SLO 값이 1.5ms라고 한다. 이 값을 만족시키는 노드를 따라 가며 리프 노드에 도달하게 된다. 그런 다음 SLO 보장을 위한 메모리 대역폭 크기를 얻게 된다. SLO 노드를 검색하며 들어가면서 SLO 범위를 유지하면 리프 노드에서 얻은 예측 값을 실제로 할당하였을 때 예측 가능한 테일 레이턴시의 범위를 구할 수 있게 되고, 도 5의 예로는 1.25ms 이상, 2.32ms 이하로 결정된다. 이 경우, 예측 가능한 테일 레이턴시의 범위가 사용자가 원하는 SLO인 1.5ms를 포함하지만 항상 SLO 이하인 것을 보장할 수 있는 범위는 아니기 때문에 새로운 방법이 필요하다.
도 5에서, SLO는 1.5ms, QPS는 3500, 스트레스 정도는 10.9GB/s일 때,
SLO(Latency) 노드에서 기준 값 트랙킹은,
1.5 < 2.32 ㉠
0.48 <= 1.5 < 2.32 ㉡
1.25 <= 1.5 < 2.32 ㉢
예측 결과값으로 메모리 대역폭 크기를 할당해 주면 1.25 <= x < 2.32의 레이턴시를 보일 것으로 예상된다(여기서 x는 예측한 크기의 메모리 대역폭 할당 후 측정 가능한 실제 레이턴시 크기의 범위 사이의 값을 의미한다).
결정된 범위(1.25 <= x < 2.32)로는 1.5ms 이상의 레이턴시를 보일 가능성이 있으므로 SLO를 완전히 보장하지 못하는 경우가 생길 수 있다.
따라서 본 발명에서는 이러한 문제를 해결하기 위해 트리 모델을 새롭게 검색하는 방법을 제안한다. 먼저 리프 노드에 도달했을 때의 예측 레이턴시 범위가 항상 SLO보다 작아야 한다는 조건을 정한다. 그래서 SLO 노드를 검색할 때마다 SLO 범위를 기준 값으로 유지한다. 그래서 도 6에 예시된 바와 같이 리프 노드에 도달 했을 때의 레이턴시 범위가 SLO 이하임이 보장이 되지 않으면 가장 최근의 SLO 노드로 다시 돌아가서 SLO 이하의 범위로 결정해낸다.
보다 구체적으로 설명하면, 도 6에서 기존의 트리 구조를 검색하는 알고리즘을 수정하여 리프 노드에 도달했을 때 트랙킹한 레이턴시 범위가 항상 SLO 이하인지를 확인하고, SLO보다 항상 작지 않다면 SLO 이하의 값을 만족시키는 노드로 복귀한다.
SLO(Latency) 노드에서 기준 값 트랙킹은,
1.5 < 2.32 ㉠
0.48 <= 1.5 < 2.32 ㉡
1.25 <= 1.5 < 2.32 ㉢
<리프 노드 도달 및 백 트랙킹> ㉣
0.48 <= x < 1.25 <= 1.5 ㉥
결론적으로 수정된 알고리즘으로 찾은 예측 값을 제공해 주었을 때 항상 SLO보다 작은 레이턴시를 제공하는 것이 가능해진다.
한편, 상술한 본 발명의 실시예는 개인용 컴퓨터를 포함한 범용 컴퓨터에서 사용되는 매체에 기록될 수 있다. 상기 매체는 마그네틱 기록매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독매체(예를 들면, 씨디롬, 디브이디 등) 및 전기적 기록매체(예를 들면, 플레쉬 메모리, 메모리 스틱 등)와 같은 기록매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예는 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
Claims (13)
- 처리 시간에 민감한(latency-sensitive) 워크로드와 일괄 처리(batch-processing) 워크로드가 함께 수행 되는 환경에서 메모리 서브시스템 관리 시스템이 수행하는 처리 시간에 민감한 워크로드에 대한 메모리 대역폭을 할당하는 방법에 있어서,
(a) 머신 러닝 방식으로 훈련된 예측 모델에 스트레스 정도, QPS, 테일 레이턴시를 입력값으로 적용하여 처리 시간에 민감한 워크로드에 적용되는 메모리 대역폭 크기를 예측하는 단계; 및
(b) 상기 (a) 단계에서 예측된 크기의 메모리 대역폭을 처리 시간에 민감한 워크로드에 할당하고, 나머지의 대역폭을 일괄 처리 워크로드에 할당하는 단계;를 포함함을 특징으로 하는 처리 시간에 민감한 워크로드에 대한 메모리 대역폭 할당 방법. - 제1항에 있어서, 상기 예측 모델은
(a1) 결정 트리 방식의 예측 모델을 생성하는 머신 러닝 알고리즘을 생성하는 단계;
(a2) 스트레스 정도, 메모리 대역폭 크기, QPS(Query Per Second)의 값은 임의로 조합하면서 테일 레이턴시(tail latency)를 측정하여 훈련 데이터 세트를 수집하는 단계; 및
(a3) 수집된 훈련 데이터 세트로 상기 예측 모델을 훈련하는 단계;를 포함하는 방식으로 훈련되는 것을 특징으로 하는 처리 시간에 민감한 워크로드에 대한 메모리 대역폭 할당 방법. - 제2항에 있어서, 상기 (a2) 단계에서 상기 훈련 데이터 세트를 수집하기 위한 시스템 환경에서,
처리 시간에 민감한 워크로드를 수행할 코어를 제외한 나머지 코어에서, 일괄처리 워크로드로는 스트림(Stream) 벤치마크를 사용하는 것을 특징으로 하는 처리 시간에 민감한 워크로드에 대한 메모리 대역폭 할당 방법. - 제3항에 있어서, 상기 시스템 환경에서
처리 시간에 민감한 워크로드와 스트림(stream) 벤치마크가 사용할 메모리 대역폭을 Memguard로 나누어 각각 제공하는 것을 특징으로 하는 처리 시간에 민감한 워크로드에 대한 메모리 대역폭 할당 방법. - 제2항에 있어서, 상기 (a) 단계는
결정 트리에서 리프 노드에 도달 했을 때의 테일 레이턴시의 범위가 SLO 이하임이 보장이 되지 않으면, SLO 이하의 값을 만족시키는 노드로 백트랙킹하여 SLO 이하의 범위로 결정하여 메모리 대역폭 크기를 예측하는 것을 특징으로 하는 처리 시간에 민감한 워크로드에 대한 메모리 대역폭 할당 방법. - 제2항에 있어서, 상기 머신 러닝 알고리즘은
포스트 프루닝(post pruning) 방식을 사용하는 REPTree 임을 특징으로 하는 처리 시간에 민감한 워크로드에 대한 메모리 대역폭 할당 방법. - 처리 시간에 민감한(latency-sensitive) 워크로드와 일괄 처리(batch-processing) 워크로드가 함께 수행 되는 환경에서 메모리 서브시스템의 메모리 대역폭을 할당하는 메모리 서브시스템 관리 시스템에 있어서,
머신 러닝 방식으로 훈련된 예측 모델에 스트레스 정도, QPS, 테일 레이턴시를 입력값으로 적용하여 처리 시간에 민감한 워크로드에 적용되는 메모리 대역폭 크기를 예측하는 예측기; 및
상기 예측기에서 예측된 크기의 메모리 대역폭을 처리 시간에 민감한 워크로드에 할당하고, 나머지의 대역폭을 일괄 처리 워크로드에 할당하는 메모리 대역폭 매니저;를 포함함을 특징으로 하는 메모리 서브시스템 관리 시스템. - 제7항에 있어서, 상기 예측 모델은
결정 트리 방식의 예측 모델을 생성하는 머신 러닝 알고리즘을 생성하고, 스트레스 정도, 메모리 대역폭 크기, QPS(Query Per Second)의 값은 임의로 조합하면서 테일 레이턴시(tail latency)를 측정하여 훈련 데이터 세트를 수집하고, 수집된 훈련 데이터 세트로 상기 예측 모델을 훈련하는 방식으로 훈련되는 것을 특징으로 하는 메모리 서브시스템 관리 시스템. - 제8항에 있어서, 상기 훈련 데이터 세트를 수집하기 위한 시스템 환경으로,
처리 시간에 민감한 워크로드를 수행할 코어를 제외한 나머지 코어에서, 일괄처리 워크로드로는 스트림(Stream) 벤치마크를 사용하는 것을 특징으로 하는 메모리 서브시스템 관리 시스템. - 제9항에 있어서, 상기 시스템 환경에서
처리 시간에 민감한 워크로드와 스트림(stream) 벤치마크가 사용할 메모리 대역폭을 Memguard로 나누어 각각 제공하는 것을 특징으로 하는 메모리 서브시스템 관리 시스템. - 제8항에 있어서, 상기 예측기는
결정 트리에서 리프 노드에 도달 했을 때의 테일 레이턴시의 범위가 SLO 이하임이 보장이 되지 않으면, SLO 이하의 값을 만족시키는 노드로 백트랙킹하여 SLO 이하의 범위로 결정하여 메모리 대역폭 크기를 예측하는 것을 특징으로 하는 메모리 서브시스템 관리 시스템. - 제8항에 있어서, 상기 머신 러닝 알고리즘은
포스트 프루닝(post pruning) 방식을 사용하는 REPTree 임을 특징으로 하는 메모리 서브시스템 관리 시스템. - 제1항 내지 제6항 중 어느 한 항의 처리 시간에 민감한 워크로드에 대한 메모리 대역폭 할당 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180038523A KR102062332B1 (ko) | 2018-04-03 | 2018-04-03 | 처리 시간에 민감한 워크로드에 대한 메모리 대역폭 할당 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180038523A KR102062332B1 (ko) | 2018-04-03 | 2018-04-03 | 처리 시간에 민감한 워크로드에 대한 메모리 대역폭 할당 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190119223A KR20190119223A (ko) | 2019-10-22 |
KR102062332B1 true KR102062332B1 (ko) | 2020-01-03 |
Family
ID=68420048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180038523A KR102062332B1 (ko) | 2018-04-03 | 2018-04-03 | 처리 시간에 민감한 워크로드에 대한 메모리 대역폭 할당 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102062332B1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220035665A1 (en) * | 2020-07-28 | 2022-02-03 | Microsoft Technology Licensing, Llc | Sharing of compute resources between the virtualized radio access network (vran) and other workloads |
CN112463044B (zh) * | 2020-11-23 | 2022-07-12 | 中国科学院计算技术研究所 | 一种保证分布式存储系统服务器端读尾延迟的方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101682980B1 (ko) | 2013-01-17 | 2016-12-20 | 인텔 코포레이션 | 시스템 온 칩에서의 대역폭 할당의 제어 |
KR101782345B1 (ko) | 2014-12-23 | 2017-09-27 | 인텔 코포레이션 | 엔드-투-엔드 데이터센터 성능 제어 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101113943B1 (ko) * | 2008-12-22 | 2012-03-05 | 한국전자통신연구원 | 워크로드 관리 방법과 장치 및 이를 이용한 분산 컴퓨팅 시스템 |
-
2018
- 2018-04-03 KR KR1020180038523A patent/KR102062332B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101682980B1 (ko) | 2013-01-17 | 2016-12-20 | 인텔 코포레이션 | 시스템 온 칩에서의 대역폭 할당의 제어 |
KR101782345B1 (ko) | 2014-12-23 | 2017-09-27 | 인텔 코포레이션 | 엔드-투-엔드 데이터센터 성능 제어 |
Non-Patent Citations (2)
Title |
---|
남윤성 외 3명. '멀티쓰레드 워크로드를 위한 DVFS 기반 메모리 경합 인지 스케줄링 기법'. 한국정보과학회 2016년 동계학술대회 논문집, 2016.12., pp.1242-1244. |
민지수. '처리 시간에 민감한 워크로드의 성능 보장과 서버 자원 사용률 향상을 위한 효과적인 메모리 대역폭 할당 기법'. 서울대학교 대학원 석사 학위논문, 2018.02., pp.1-28.* |
Also Published As
Publication number | Publication date |
---|---|
KR20190119223A (ko) | 2019-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110301128B (zh) | 基于学习的资源管理数据中心云架构的实现方法 | |
US8533719B2 (en) | Cache-aware thread scheduling in multi-threaded systems | |
CN104123189B (zh) | 一种基于IaaS层应用感知的Web多层应用动态资源调整方法 | |
Ismaeel et al. | Proactive dynamic virtual-machine consolidation for energy conservation in cloud data centres | |
Zhang et al. | Performance modeling of mapreduce jobs in heterogeneous cloud environments | |
US8799916B2 (en) | Determining an allocation of resources for a job | |
Ganapathi et al. | Statistics-driven workload modeling for the cloud | |
Zhang et al. | {OSCA}: An {Online-Model} Based Cache Allocation Scheme in Cloud Block Storage Systems | |
US20130318538A1 (en) | Estimating a performance characteristic of a job using a performance model | |
WO2020220437A1 (zh) | 一种基于AdaBoost-Elman的虚拟机软件老化预测方法 | |
KR102062332B1 (ko) | 처리 시간에 민감한 워크로드에 대한 메모리 대역폭 할당 방법 및 장치 | |
Huang et al. | The improvement of auto-scaling mechanism for distributed database-A case study for MongoDB | |
US9686207B2 (en) | Application service level objective aware demand estimation | |
CN115913967A (zh) | 一种云环境下基于资源需求预测的微服务弹性伸缩方法 | |
Lu et al. | InSTechAH: Cost-effectively autoscaling smart computing hadoop cluster in private cloud | |
Ghanbari et al. | Adaptive learning of metric correlations for temperature-aware database provisioning | |
CN113158435B (zh) | 基于集成学习的复杂系统仿真运行时间预测方法与设备 | |
Zhang et al. | Parameterizable benchmarking framework for designing a MapReduce performance model | |
US10606601B2 (en) | Method, system and non-transitory computer-readable storage medium for analyzing access to storage device | |
Ismaeel et al. | Real-time energy-conserving vm-provisioning framework for cloud-data centers | |
Oikonomou et al. | Energy-aware management of virtual machines in cloud data centers | |
Iglesias et al. | A methodology for online consolidation of tasks through more accurate resource estimations | |
Surya et al. | Dynamic resource allocation for distributed Tensorflow training in kubernetes cluster | |
Campos et al. | Performance evaluation of virtual machines instantiation in a private cloud | |
Hiroshima et al. | Parameter optimization for hybrid auto-scaling mechanism |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |