KR101266421B1 - 클라우드 시스템에서 가상 머신의 에너지 기반 과금 및 스케줄링 장치 및 방법 - Google Patents
클라우드 시스템에서 가상 머신의 에너지 기반 과금 및 스케줄링 장치 및 방법 Download PDFInfo
- Publication number
- KR101266421B1 KR101266421B1 KR1020110052285A KR20110052285A KR101266421B1 KR 101266421 B1 KR101266421 B1 KR 101266421B1 KR 1020110052285 A KR1020110052285 A KR 1020110052285A KR 20110052285 A KR20110052285 A KR 20110052285A KR 101266421 B1 KR101266421 B1 KR 101266421B1
- Authority
- KR
- South Korea
- Prior art keywords
- energy
- virtual machine
- energy consumption
- scheduler
- processor
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R11/00—Electromechanical arrangements for measuring time integral of electric power or current, e.g. of consumption
- G01R11/56—Special tariff meters
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R11/00—Electromechanical arrangements for measuring time integral of electric power or current, e.g. of consumption
- G01R11/02—Constructional details
- G01R11/16—Adaptations of counters to electricity meters
-
- 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/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 클라우드 시스템에서 가상 머신의 에너지 기반 과금 및 스케줄링 기술에 관한 것으로, 클라우드 시스템에서 프로세서 성능 카운터를 모니터링함으로써 가상 머신에 의한 에너지 소비량을 예측하여 에너지 소비 예측 모델을 생성하고, 에너지 소비 예측 모델을 기반으로 사용자가 결정한 예산 내에서 각각의 가상 머신에 대한 에너지 소비율을 제한하는 에너지 소비 스케줄러를 구현하는 것을 특징으로 한다. 본 발명에 의하면, 각 가상 머신의 에너지 소비를 추정하여 클라우드 서비스 요금을 추정하고, 각 가상 머신의 에너지 경비에 적합한 가상 머신 스케줄링을 구현함으로써, 현재 클라우드 서비스의 불합리한 과금 체계를 개선하여 일정한 에너지 사용량을 약정하여 사용자에게 제공할 수 있으며, 클라우드 서비스 제공자 측면에서도 사용자들의 최대 에너지 사용율을 가정하여 설비 등을 확보할 수 있기 때문에 경제적인 운영을 가능하게 할 수 있다.
Description
본 발명은 클라우드 시스템의 운용 기술에 관한 것으로서, 특히 클라우드 시스템에서 프로세서 성능 카운터를 모니터링함으로써 가상 머신에 의한 에너지 소비량을 예측하여 에너지 소비 예측 모델을 생성하고, 에너지 소비 예측 모델을 기반으로 사용자가 결정한 예산 내에서 각각의 가상 머신에 대한 에너지 소비율을 제한하는 에너지 소비 스케줄러를 구현하는데 적합한 클라우드 시스템에서 가상 머신의 에너지 기반 과금 및 스케줄링 장치 및 방법에 관한 것이다.
요즘 들어 데이터센터의 에너지 비용은 급격히 증가하고 있다. 2012년에는 데이터센터의 에너지 비용이 2007년에 비해 2배가 될 것이며, 데이터 센터에 대한 냉각 및 에너지 비용이 서버 자체에 대한 비용을 초과할 것으로 예상된다. 이러한 환경 하에서, 클라우드 컴퓨팅 모델은 에너지 효율로 인해 차세대 기업 컴퓨팅 인프라구조가 될 것으로 기대된다.
클라우드 시스템에서의 가상화는 각각의 사용자에게 리소스를 유연하게 제공하고 다른 사용자로부터 보안 및 안정성 문제를 분리시키는 필수 도구이다. 가상화 기술에 따르면, 클라우드 컴퓨팅 사용자들은 가상 머신을 자신의 전용 물리적 서버를 소유하고 있는 것처럼 사용할 수 있다. 이러한 이점으로 인해, 많은 상업적 클라우드 시스템이 가상화를 이용하여 사용자들이 그들의 가상 서버를 커널(kernel)로부터 애플리케이션까지 자유롭게 구성할 수 있게 한다.
한편, 대부분의 클라우드 서비스는 사용자에게 제공되고 있는 컴퓨팅 리소스의 양에 대해 요금을 청구하게 되며, 전반적으로 과금 체계에 대한 공통적인 기준은 프로세서 시간의 양 또는 할당된 가상 머신의 수가 될 수 있다.
이러한 빌링 시스템(billing systems)은 서버 하드웨어를 소유하고 유지시키는 비용이 동작 시간의 양에 비례한다는 사실에 기초로 한다. 그러나, 서버의 관리 비용에 영향을 미치는 상당한 요인들이 고려되지 않는다면, 이러한 빌링 방식은 적정하지 않은 것일 수 있고, 개선의 여지를 갖는다. 먼저 언급된 바와 같이, 에너지 및 냉각 비용은 하드웨어 비용을 초과할 것이다. 따라서, 적정하게 하기 위해서는, 빌링 시스템에서 각 사용자의 에너지 소비를 고려해야 한다.
그러나, 각각의 가상 머신을 구비한 서버에서 특정 시간 간격 동안에 소비하는 에너지의 양을 측정하는 것은, 가상 머신이 측정 디바이스에 직접적으로 접속할 수 없는 가설상의 개체(hypothetical entity)이기 때문에 이에 대한 에너지 소비를 고려할 수 있는 별다른 방안이 없었다.
상기한 바와 같이 동작하는 종래 기술에 의한 클라우드 서비스의 과금 체계에 있어서는, 클라우드 서비스 이용 시 사용자에게 청구되는 요금의 기준이 되는 프로세서 구동 시간은, 일부의 프로세서 내부 이벤트(in-processor events)가 프로세서 에너지 소비에 상당한 영향을 미칠 수 있으므로, 프로세서 구동 시간을 토대로 한 감가상각비만으로는 프로세서의 에너지 소비를 추정하기에 충분한 것이 아니라는 문제점이 있었다.
이에 본 발명의 실시예는, 클라우드 시스템에서 프로세서 성능 카운터를 모니터링함으로써 가상 머신에 의한 에너지 소비량을 추정하는 에너지 소비 예측 모델을 생성할 수 있는 클라우드 시스템에서 가상 머신의 에너지 기반 과금 및 스케줄링 장치 및 방법을 제공할 수 있다.
이에 본 발명의 실시예는, 클라우드 시스템에서 에너지 소비 예측 모델을 기반으로 사용자가 결정한 예산 내에서 각각의 가상 머신의 에너지 소비율을 제한하는 에너지 소비 스케줄러를 구현할 수 있는 클라우드 시스템에서 가상 머신의 에너지 기반 과금 및 스케줄링 장치 및 방법을 제공할 수 있다.
본 발명의 일 실시예에 따른 클라우드 시스템에서 가상 머신의 에너지 기반 과금 및 스케줄링 장치는, 프로세서 성능 카운터를 모니터링하여 각 사용자 단말기 별로 할당된 가상 머신에 의한 에너지 소비량을 예측하는 프로세서 모니터링부와, 상기 예측된 에너지 소비량을 토대로 에너지 소비 예측 모델을 생성하는 에너지 소비 예측 모델 생성부와, 상기 에너지 소비 예측 모델을 기반으로 사용자로부터 기 설정된 비용 내에서 각 가상 머신에 대한 에너지 소비율을 제한하는 에너지 소비 스케줄러를 포함할 수 있다.
그리고 상기 프로세서 성능 카운트는, 프로세서의 전력 소비에 영향을 미치는 적어도 하나의 이벤트에 대한 카운터로서, 시간 간격에서의 평균 전력 소비, 공유된 콤포넌트들에 대한 전력 소비량 및 인스트럭션을 실행하는 적어도 하나의 코어에 의한 전력 소비의 합, 시간 간격 동안의 퇴거 인스트럭션 수, 메모리 액세스 수, 활성 상태의 코어 수의 합 중 적어도 하나를 기준으로 산정하는 것을 특징으로 할 수 있다.
그리고 상기 에너지 설정값은, 적어도 하나의 가상 머신이 기 설정된 재정시간 간격 동안에 사용할 수 있는 에너지 양인 것을 특징으로 할 수 있다.
그리고 상기 에너지 소비 스케줄러는, 상기 재정시간 간격 동안 추정된 소비 에너지를 상기 에너지 설정값에서 감산하고, 적어도 하나의 가상 머신이 할당된 에너지 설정값이 0인 경우, 스케줄러 큐에서 제어하고, 다음 재정시간 간격에 에너지 설정값을 할당하여 스케줄러 큐에 포함시키는 것을 특징으로 할 수 있다.
본 발명의 일 실시예에 따른 클라우드 시스템에서 가상 머신의 에너지 기반 과금 및 스케줄링 방법은, 유무선 통신망을 통해 클라우드 서비스 장치에 연결된 각 사용자 단말기로 클라우드 서비스를 제공하는 과정과, 프로세서 성능 카운터를 모니터링하여 상기 각 사용자 단말기 별로 할당된 가상 머신에 의한 에너지 소비량을 예측하는 과정과, 상기 예측된 에너지 소비량을 토대로 에너지 소비 예측 모델을 생성하는 과정과, 상기 에너지 소비 예측 모델을 기반으로 사용자로부터 기 설정된 비용 내에서 각 가상 머신에 대한 에너지 소비율을 제한하는 과정을 포함할 수 있다.
그리고 상기 프로세서 성능 카운트는, 프로세서의 전력 소비에 영향을 미치는 적어도 하나의 이벤트에 대한 카운터로서, 시간 간격에서의 평균 전력 소비, 공유된 콤포넌트들에 대한 전력 소비량 및 인스트럭션을 실행하는 적어도 하나의 코어에 의한 전력 소비의 합, 시간 간격 동안의 퇴거 인스트럭션 수, 메모리 액세스 수, 활성 상태의 코어 수의 합 중 적어도 하나를 기준으로 산정하는 것을 특징으로 할 수 있다.
그리고 상기 에너지 설정값은, 적어도 하나의 가상 머신이 기 설정된 재정시간 간격 동안에 사용할 수 있는 에너지 양인 것을 특징으로 할 수 있다.
그리고 상기 에너지 소비 스케줄러는, 상기 재정시간 간격 동안 추정된 소비 에너지를 상기 에너지 설정값에서 감산하고, 적어도 하나의 가상 머신이 할당된 에너지 설정값이 0인 경우, 스케줄러 큐에서 제어하고, 다음 재정시간 간격에 에너지 설정값을 할당하여 스케줄러 큐에 포함시키는 것을 특징으로 할 수 있다.
상기와 같은 본 발명의 실시예에 따른 클라우드 시스템에서 가상 머신의 에너지 기반 과금 및 스케줄링 장치 및 방법에 따르면 다음과 같은 효과가 하나 혹은 그 이상이 있다.
본 발명의 실시예에 따른 클라우드 시스템에서 가상 머신의 에너지 기반 과금 및 스케줄링 장치 및 방법에 의하면, 각 가상 머신의 에너지 소비를 추정하여 클라우드 서비스 요금을 추정하고, 각 가상 머신의 에너지 경비에 적합한 가상 머신 스케줄링을 구현함으로써, 현재 클라우드 서비스의 불합리한 과금 체계를 개선하여 일정한 에너지 사용량을 약정하여 사용자에게 제공할 수 있으며, 클라우드 서비스 제공자 측면에서도 사용자들의 최대 에너지 사용율을 가정하여 설비 등을 확보할 수 있기 때문에 경제적인 운영을 가능하게 할 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따라 클라우드 서비스 장치를 적용할 수 있는 클라우드 시스템의 구성도,
도 2는 본 발명의 실시예에 따른 클라우드 서비스 장치의 세부적인 블록 구성도,
도 3은 본 발명의 실시예에 따른 클라우드 시스템에서 과금 및 스케줄링장치의 동작 절차를 도시한 흐름도,
도 4는 퇴거 마이크로-연산의 수에 따라 300 msec 시간 간격 동안의 평균 전력 소비를 도시한 그래프,
도 5는, 1개 내지 4개의 코어가 동시에 사용될 때, 전력 소비와 퇴거 μ연산 수 사이의 관계를 도시한 그래프,
도 6은 다수의 가상 머신이 상이한 벤치마크를 구동하는 동안의 전력 소비를 도시한 그래프,
도 7은 코어의 시계열 활용을 재구성한 그래프,
도 8 내지 도 10은 추정에 사용되는 파라미터의 수에 따라 각각의 그룹에 속하는 벤치마크들의 평균 추정 에러들을 각각 도시한 그래프,
도 11은 작업부하 혼합 세트에 대한 추정 에러를 도시한 그래프,
도 12는 (표 3)으로부터 무작위로 선택된 일련의 작업부하들을 구동하는 동안 측정된 에너지 소비 및 추정된 에너지 소비의 시계열 중 일부분을 도시한 그래프,
도 13은 본 발명의 실시예에 따른 에너지 소비 스케줄러의 동작 절차를 도시한 흐름도,
도 14는 지정된 에너지 경비 변화 및 측정 에너지 소비율의 시계열을 도시한 그래프.
도 2는 본 발명의 실시예에 따른 클라우드 서비스 장치의 세부적인 블록 구성도,
도 3은 본 발명의 실시예에 따른 클라우드 시스템에서 과금 및 스케줄링장치의 동작 절차를 도시한 흐름도,
도 4는 퇴거 마이크로-연산의 수에 따라 300 msec 시간 간격 동안의 평균 전력 소비를 도시한 그래프,
도 5는, 1개 내지 4개의 코어가 동시에 사용될 때, 전력 소비와 퇴거 μ연산 수 사이의 관계를 도시한 그래프,
도 6은 다수의 가상 머신이 상이한 벤치마크를 구동하는 동안의 전력 소비를 도시한 그래프,
도 7은 코어의 시계열 활용을 재구성한 그래프,
도 8 내지 도 10은 추정에 사용되는 파라미터의 수에 따라 각각의 그룹에 속하는 벤치마크들의 평균 추정 에러들을 각각 도시한 그래프,
도 11은 작업부하 혼합 세트에 대한 추정 에러를 도시한 그래프,
도 12는 (표 3)으로부터 무작위로 선택된 일련의 작업부하들을 구동하는 동안 측정된 에너지 소비 및 추정된 에너지 소비의 시계열 중 일부분을 도시한 그래프,
도 13은 본 발명의 실시예에 따른 에너지 소비 스케줄러의 동작 절차를 도시한 흐름도,
도 14는 지정된 에너지 경비 변화 및 측정 에너지 소비율의 시계열을 도시한 그래프.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
본 발명의 실시예는 클라우드 시스템에서 프로세서 성능 카운터를 모니터링함으로써 가상 머신에 의한 에너지 소비량을 예측하여 에너지 소비 예측 모델을 생성하고, 에너지 소비 예측 모델을 기반으로 사용자가 결정한 예산 내에서 각각의 가상 머신의 에너지 소비율을 제한하는 에너지 소비 스케줄러를 구현하기 위한 것이다.
에너지 소비 스케줄러는 에너지-크레디트 스케줄러(energy-credit scheduler)로서, 통상의 가상 머신 스케줄러는 스케줄링 결정을 수행할 때 프로세서 구동 시간만을 고려하게 된다. 이러한 일반적인 스케줄러와 달리 에너지-크레디트 스케줄러는 가상 머신의 에너지 소비율을 이용한다. 이는 가상 머신의 에너지 소비율이 사용자-지정 값(user-defined values) 보다 미만이 되도록 가상 머신을 스케줄링할 수 있다.
한편, 본 발명의 실시예를 통한 에너지 소비량을 토대로 한 에너지 소비 예측 모델은 5% 이내의 에러율을 토대로 예측할 수 있으나, NIC(Network Interface Card) 또는 디스크와 같은 다른 구성요소들의 파라미터를 추가함으로써 에러율을 더욱 감소시킬 수도 있다.
프로세서의 에너지 소비 예측 방식에 대해 구체적으로 설명하면, 서버에 의해 소비되는 에너지의 양은 그것이 구동하는 작업부하에 따라 크게 변화한다. 서버의 전력 소비의 예측 또는 제어에 대한 기존의 많은 연구들은, 서버의 전력 소비가 대부분은 프로세서에 의해 결정되고, 프로세서의 전력 소비가 우선적으로 프로세서 활용도에 의해 결정된다는 가정에 기초한다.
프로세서의 전력 소비는 주로 작업부하 특성에 의존한다. 따라서, 프로세서 활용도 또는 실행 시간에 기초한 에너지 소비 추정은 대체로 에너지 비용의 빌링 근거로 정확한 것은 아니다.
최근, 서버 판매자는 작동 중에 서버의 전력 소비를 모니터링할 수 있는 전력 측정 하드웨어(예컨대, 파워 미터)를 집적한다. 전력 측정 하드웨어를 통해 전력 소비를 측정함으로써, 서버의 에너지 소비는 정확하게 측정될 수 있다. 그러나, 집적된 파워 미터는 단지 전체 서버 시스템의 전력 소비만을 측정할 수 있을 뿐인데 반해, 클라우드 시스템의 에너지 기반 빌링 시스템은 각각의 가상 머신에 의한 에너지 소비의 측정을 필요로 한다.
레버리지(leverage) 및 전용 측정 하드웨어에 대한 다양한 연구가 있었음에도 불구하고, 가상 머신의 에너지 소비를 판정하는 것은 아래와 같은 이유들로 인해 여전히 어려운 문제이다.
첫째, 집적된 파워 미터의 샘플링 간격은 대체적으로 1초 또는 10초이지만, 스케줄링 가상 머신의 단위는 수백 μsec 내지 수십 msec로 매우 짧다. 측정 및 스케줄링의 시간 규모 사이의 이러한 차이는 집적된 파워 미터 또는 그 밖의 범용 파워 미터로 특정 가상 머신의 에너지 소비를 측정하는 것을 곤란하게 만들 수 있다.
둘째, 멀티코어 프로세서 시스템에서의 가상 머신은 다른 가상 머신과 시스템 리소스를 공유하고 경쟁한다. 따라서, 가상 머신에 의해 소비되는 에너지의 양 뿐 아니라 처리율은 동시에 구동되는 다른 가상 머신들의 특성으로 인해 변화할 수 있다. 따라서, 가상 머신의 에너지 소비를 측정하는 것은 가상 머신의 처리 시간만을 고려하는 블라인드 산술법(blind arithmetic)에 의존할 수 밖에 없다.
결과적으로, 계속해서 급속하게 변화하는 각 가상 머신의 에너지 소비를 식별하기 위해, 하이퍼바이저(hypervisor)는 각 가상 머신의 다양한 활동 및 다른 가상 머신으로부터의 효과를 관찰함으로써 가상 머신의 에너지 소비를 추정할 수 있는 리소스 과금 방식을 갖추어야 한다.
가상 머신-레벨 에너지 측정 방식 이외에도, 에너지 소비의 양에 기초하여 빌링 시스템을 적응시키기 위해, 사용자들이 가상 머신의 에너지 소비를 기 설정된 에너지 경비 내에 있도록 제한할 수 있게 하는 에너지-인식 리소스 제공 방식(energy-aware resource provisioning schemes)이 필요로 할 수 있다.
통상적인 가상 머신 스케줄러들 중 대부분은 각각의 가상 머신에 우선순위에 비례하도록 프로세서-시간을 적정하게 제공하는데 목적이 있으며, 이는 프로세서 시간이 통상적인 컴퓨팅 시스템의 주요 빌링 기준 중 하나이기 때문이다. 다시 말해, 프로세서-시간은 통상적인 스케줄러에서의 주요 스케줄링 기반이다. 따라서, 신규한 에너지-인식 스케줄러는 스크래치(scratch)로부터 설계되어야 한다.
에너지-인식 스케줄링 방식을 활용하기 위해, 각각의 가상 머신은 에너지 경비를 스케줄러에 명시적으로 제공해야 한다. 가상 머신의 에너지 경비는 가상 머신이 재정 시간 간격(fiscal time interval) 동안에 사용할 수 있는 에너지 양이다. 가상 머신이 재정 간격 내에서 에너지 경비를 모두 쓰면, 가상 머신은 현재 재정 간격이 종료되고 다음 간격이 시작할 때까지 중지될 것이다. 가상 머신의 재정 간격은 그것의 목적 및 특성을 고려하여 가상 머신의 소유주에 의해 결정되며, 수십 밀리초 내지 수 분(minutes)의 범위에 이를 수 있다.
재정 간격은 그것이 가상 머신의 처리율 및 응답성에 영향을 미칠 수 있으므로 주의 깊게 선택되어야 한다. 간격이 너무 짧을 때에는, 과도하게 빈번한 콘텍스트 스위치가 발생할 수 있다. 간격이 너무 길면, 가상 머신의 중지 시간이 너무 길어질 수 있고, 그에 따라 가상 머신에 의해 제공되는 서비스의 응답성에 해를 끼칠 수 있다.
예를 들어, 웹 서비스 가상 머신 및 데이터 백업 서비스 가상 머신이 물리적 서버에서 동시에 함께 구동될 때, 웹 서비스 가상 머신이 300 mWh/0.5 sec와 같은 단기 계획을 갖는 것은 유리하지만, 백업 서비스 가상 머신은 오히려 18000 mWh/1min와 같은 장기 계획을 갖는 것이 좋을 것이다.
이에 본 발명의 실시예에서는 멀티코어 서버에서 각 가상 머신의 에너지 소비를 추정하는 에너지 소비 예측 모델을 제공하고, 가상 머신들의 에너지 경비에 따라 그것들을 스케줄링하는 에너지-인식 가상 머신 스케줄러를 제공함으로써, 이를 토대로 클라우드 컴퓨팅 서비스의 빌링 기초에 충분한 정확도를 제공할 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 실시예에 따라 클라우드 서비스 장치를 적용할 수 있는 클라우드 시스템의 구성도이다.
도 1을 참조하면, 클라우드 시스템은 클라우드 서비스 장치(100)가 인터넷, 전용회선, 무선망 등과 같은 유무선 통신망(110)을 통해 다수의 사용자 단말기(120, 122, 124)와 연결된다. 여기서, 도 1에서는 클라우드 서비스 장치(100)가 3대의 사용자 단말기(120, 122, 124)와 연결되는 경우를 예시하였으나, 웹하드, 인터넷하드 등의 용어로 불리는 데이터 저장 서비스를 제공하는 시스템들처럼 매우 많은 사용자 단말기들과 연결될 수 있다. 이에, 클라우드 서비스 장치(100)는 사용자 단말기(120, 122, 124)와 접속하여 각 사용자 단말기(120, 122, 124)에 대한 사용자 인증(예컨대, 아이디/비밀번호 입력 방식)을 수행하고, 가상 머신 할당, 데이터의 저장과 관리, 서비스 과금 책정 및 과금 수행 등을 처리할 수 있다.
그리고 사용자 단말기(120, 122, 124)는 컴퓨터, 노트북, PMP, PDA, 핸드폰, 네비게이션과 같이 유무선 통신망(110)에 접속하여 연결을 수행할 수 있는 다양한 컴퓨팅 장치들을 포함할 수 있다.
도 2는 본 발명의 실시예에 따른 클라우드 서비스 장치의 세부적인 블록 구성도이다.
도 2를 참조하면, 클라우드 서비스 장치(100)는 접속된 사용자 단말기(120, 122, 124)로 클라우드 서비스를 제공하며, 제공된 클라우드 서비스에 대한 과금 체계 및 스케줄링을 수행하기 위한 것으로서, 과금 및 스케줄링 장치로 칭할 수 있다. 이러한 클라우드 서비스 장치(100)는 제어부(200), 사용자 인터페이스부(202), 가상 머신 할당부(204), 저장부(206), 과금 및 스케줄링부(208) 등을 포함할 수 있다.
제어부(200)는 클라우드 서비스 장치(100)에 포함된 각종 구성요소를 제어하며, 입력된 파일에 대한 읽기, 쓰기, 삭제, 저장 등의 요청에 따라 저장부(206)에 저장된 파일을 제어 및 관리할 수 있다. 또한, 사용자 단말기(120, 122, 124)의 요청에 따라 가상 머신 및 저장 공간 할당을 제어하고, 각 사용자 단말기 별 과금 체계 확립 및 과금 체계에 따른 스케줄링의 설정을 제어할 수 있다.
사용자 인터페이스부(202)는 유무선 통신망(110)을 통해 접속된 사용자 단말기(120, 122, 124)와 연동하여 사용자 단말기(120, 122, 124)에 클라우드 서비스를 제공하는 것으로서, 제어부(200)와 가상 머신 생성, 저장 공간 할당 및 파일 송수신 등을 수행할 수 있다.
가상 머신 할당부(204)는 제어부(200)의 제어하에 각 사용자 단말기 별로 적어도 하나의 가상 머신을 할당할 수 있다. 이때, 가상 머신은 프로세스 가상 머신이 될 수 있다.
저장부(206)는 제어부(200)의 제어에 의해 기 설정된 사용자들이 접근을 요청한 파일들을 저장매체에 저장하고, 제어부(200)의 저장 공간 정보 요청에 따라 각 저장 매체 미디어별로 현재 저장된 공간, 사용 가능한 공간 등의 정보를 수집하여 제어부(200)로 전달할 수 있다.
과금 및 스케줄링부(208)는 가상 머신에 의한 에너지 소비량을 예측하여 에너지 소비 예측 모델을 생성하고, 에너지 소비 예측 모델을 기반으로 사용자가 결정한 예산 내에서 각각의 가상 머신에 대한 에너지 소비율을 제한하는 에너지 소비 스케줄러를 설정하는 것으로서, 프로세서 모니터링부(210), 에너지 소비 예측 모델 생성부(212), 에너지 소비 스케줄러(214) 등을 포함할 수 있다.
구체적으로 과금 및 스케줄링부(208) 내 프로세서 모니터링부(210)는 각 가상 머신의 프로세서 성능 카운터를 주기적으로 모니터링을 수행할 수 있다. 여기서 프로세서 성능 카운트는, 프로세서의 전력 소비에 영향을 미치는 적어도 하나의 이벤트에 대한 카운터를 수행하는 것으로서, 카운터를 수행하기 위한 이벤트로는 적어도 하나의 가상머신에서 시간 간격에서의 평균 전력 소비, 공유된 콤포넌트들에 대한 전력 소비량 및 인스트럭션을 실행하는 적어도 하나의 코어에 의한 전력 소비의 합, 시간 간격 동안의 퇴거 인스트럭션 수, 메모리 액세스 수 및 활성 상태의 코어 수의 합 중 적어도 하나를 기준으로 카운팅 할 수 있다.
에너지 소비 예측 모델 생성부(212)는 프로세서 모니터링부(210)의 모니터링을 통해 예측된 에너지 소비량을 토대로 에너지 소비 예측 모델을 생성할 수 있다.
그리고 에너지 소비 스케줄러(214)는 에너지 소비 예측 모델 생성부(212)를 통해 전달된 에너지 소비 예측 모델을 기반으로 에너지 소비 스케줄러를 생성할 수 있다.
또한 에너지 소비 스케줄러(214)는 사용자 단말기 사용자들로부터 에너지 설정값을 설정 정보를 제공받아 설정할 수 있다. 즉, 사용자 단말기에서는 적어도 하나의 가상 머신에 대한 사용자 설정값으로서 에너지 사용량 설정 정보를 사용자 인터페이스부(202)를 통해 제어부(200)로 전달하고, 제어부(200)에서는 해당 가상 머신이 포함된 가상 머신 할당부(204)로 이를 전달하게 된다.
가상 머신 할당부(204)에서는 각 가상 머신에 에너지 사용량 설정 정보를 에너지 경비로서 저장하고, 추후 기 설정된 주기로 제어부(200)를 통해 에너지 소비 스케줄러(214)로 에너지 경비를 전달하게 된다.
이를 통해 에너지 소비 스케줄러(214)는 일정한 에너지 사용량을 약정하여 사용자에게 제공할 수 있으며, 해당 에너지 사용량을 초과하지 않는 범위에서 에너지의 사용이 가능하도록 스케줄링 할 수 있다.
도 3은 본 발명의 실시예에 따른 클라우드 시스템에서 과금 및 스케줄링장치의 동작 절차를 도시한 흐름도이다.
도 3을 참조하면, 300단계에서 제어부(200)는 각각의 사용자 단말기와 사용자 인터페이스부(202)를 통해 연동하여 클라우드 서비스를 제공하는 것으로서, 가상 머신 할당부(204)를 제어하여 각 사용자 단말기에 적어도 하나의 가상 머신을 할당하고, 저장부(206)를 제어하여 각 가상 머신에 저장공간을 제공하게 된다.
그리고 302단계에서 과금 및 스케줄링부(208) 내 프로세서 모니터링부(210)는 가상 머신의 프로세서 성능 카운터를 주기적으로 모니터링하여, 304단계에서는 이를 토대로 에너지 소비량을 예측하게 된다.
306단계에서 프로세서 모니터링부(210)는 예측된 에너지 소비량을 에너지 소비 예측 모델 생성부(212)로 전달하여 에너지 소비 예측 모델 생성부(212)에서 예측된 에너지 소비량을 토대로 에너지 소비 예측 모델을 생성하게 된다.
생성된 에너지 소비 예측 모델은 에너지 소비 스케줄러(214)로 전달되어 308단계에서 에너지 소비 스케줄러(214)에서 에너지 소비 예측 모델 및 사용자 지정값을 기반으로 스케줄러를 설정하게 된다.
이를 통해 과금 및 스케줄링부(208)에서는 기 설정된 과금 체계 및 스케줄링 방식을 토대로 각 사용자 단말에 대한 과금을 책정하고, 에너지 경비 내에서 가상 머신이 사용되도록 스케줄링을 수행하게 된다.
한편, 프로세서 모니터링부(210) 및 에너지 소비 예측 모델 생성부(212)를 통해 책정될 수 있는 에너지 과금 체계와, 에너지 소비 예측 모델, 에너지 소비 스케줄러(214)에서 수행하는 에너지 소비 스케줄러 설정 방식에 대해 구체적으로 설명하도록 한다.
프로세서의 전력 소비는 누설 전력 및 동적 전력으로 분리될 수 있다. 누설 전력의 양은 시스템이 기동되는 동안에는 항상 동일하므로, 과금 또는 제공의 타깃이 될 수 없다. 이에 본 발명의 실시예에서는 가상 머신 스케줄러를 통해 스케줄링 할 수 있는 동적 전력만을 고려할 것이다.
전력은 인스트럭션을 실행시키는 콤포넌트들에 의해 소비된다. 따라서, 전력과 시간의 곱셈인 에너지 소비는 퇴거 인스트럭션(retired instructions)의 수에 비례하는 것으로 예상된다. 그러나, 동일한 수의 퇴거 인스트럭션조차도 인스트럭션의 유형에 따라 상이한 양의 에너지 소비를 유도할 수 있다. 예를 들어, 로딩 및 저장과 같은 메모리 액세스 동작들은 산술 연산의 것과는 상이한 세트의 실행 유닛을 사용한다.
다양한 프로세서 내부 이벤트들이 프로세서 전력 소비에 어느 정도로 영향을 미치는지를 실험 결과를 토대로 설명하도록 한다.
현재 프로세서들 중 대부분은 프로그래밍가능한 성능 카운터를 제공한다. 각각의 성능 카운터는 프로세서형 캐시 미스(processor like cache misses), 브랜치 예측 실패, 퇴거 부동 소숫점 인스트럭션 등에서 특정 종류의 활동성의 발생을 카운트하도록 프로그래밍될 수 있는 특수 레지스터이다. 예를 들어, Intel Nehalem 아키텍처 프로세서는 4개의 프로그래밍가능 성능 카운터를 제공할 수 있다.
이를 통해 각각의 프로세서 내부 카운트와 프로세서 전력 소비 사이의 관계를 식별하고, 에너지 소비 예측 모델에서 이용될 관계를 선택할 수 있다.
최소 스케줄링 유닛인 하이퍼바이저(예컨대, Xen 하이퍼바이저)의 타임 틱(time tick)은 10 msec이다. 결과적으로, CPU-집약적 작업부하가 실행되고 있을 때, 하이퍼바이저는 10msec의 시간 간격에 성능 카운터를 1회 판독할 수 있다. 그러나, 하이퍼바이저가 동일한 가상 머신을 중재 없이 30 msec까지 스케줄링될 수 있기에, 3개의 연속 타임 틱으로 구성되는 30 msec 간격을 추정 시간 단위로 사용할 수 있다.
다만, 30msec는 측정 디바이스가 시스템의 전력 소비를 측정하기에는 너무 짧다. 따라서, 추정 모델을 셋업하기 위해 300ms마다 성능 카운터 값들에 따른 전력 소비 변화를 측정할 수 있다.
도 4는 퇴거 마이크로-연산의 수에 따라 300 msec 시간 간격 동안의 평균 전력 소비를 도시한 그래프이다.
도 4는 쿼드-코어 프로세서를 통해 벤치 마크 프로그램이 실행하는 1개 내지 4개의 가상 머신을 동시에 구동한 경우의 평균 전력 소비값이다.
마이크로-연산(μ연산)은 인스트럭션이라기보다는 프로세서에서의 더욱 미세한 실행 세립 유닛(fine-grained unit)이다. 따라서, 퇴거 마이크로-연산의 수가 퇴거 인스트럭션의 수보다 더욱 정교하게 프로세서 내부의 활동성을 반영할 가능성이 있다.
동일한 작업부하 내에서 조차, 시간 간격 동안의 퇴거 마이크로-연산의 수는 시간에 따라 현저히 변화하며, 이러한 경향은 전력 소비 패턴에 변동성을 가져온다. 직접적으로 에너지 소비 간격으로 해석될 수 있는 시간 간격에서의 평균 전력 소비는 마이크로-연산의 수에 선형적으로 비례하는 것으로 볼 수 있다.
도 4를 참조하면, 모든 작업부하는 CPU 집약적이다. 아래 (표 1)은 30 msec의 작업 부하 동안 최종-레벨 캐시 미스의 평균 값을 나타낸 것이다.
dealⅡ는 (표 1)에 도시한 바와 같이 비교적 대량인 최종-레벨 캐시 미스를 갖는 벤치마크이다. 최종-레벨 캐시 미스가 빈번하면, 초 당 μ연산은 빈번하지 않은 최종-레벨 캐시 미스를 갖는 것보다 낮다. 그러나, 작업부하와 빈번하지 않은 메모리 액세스와의 비교 시, 빈번한 메모리 액세스와 동일한 수의 작업부하의 μ연산을 실행하는 데 더 많은 에너지가 소비될 수 있다.
메모리에 액세스하기 위해, 프로세서는 잠시 동안 스톨링해야 하며, 스톨링 사이클 동안에도 메모리 및 버스 시스템은 꾸준히 전력을 소비한다. 그 결과, 동일한 수의 μ연산에도 불구하고, 메모리-집약적 작업부하는 비메모리-집약적 작업부하보다 더 많은 전력을 소비할 수 있다.
멀티코어 프로세서에서 작업 코어의 수는 프로세서 전력 소비에 심하게 영향을 끼친다. 각각의 코어가 별도의 독립적 실행 유닛이라 하더라도, 그것들은 온-칩 캐시, 버스, 메모리 제어기 등과 같은 많은 콤포넌트들을 공유한다. 따라서, 프로세서의 동적 전력은 <수학식 1>로 공식화될 수 있다. Pshared는 공유된 콤포넌트들에 의한 전력 소비이고, Pcore는 인스트럭션을 실행하고 있는 각각의 코어에 의한 전력 소비이다.
그 결과, 동일한 수의 인스트럭션이 단일 코어 또는 보다 적은 수의 코어에서 실행될 때보다는 인스트럭션이 다수의 코어 전체에서 확산되고 실행될 때, 프로세서가 보다 적은 에너지를 필요로 한다고 예상한다. 도 5에 도시된 실험 결과는 이 가정을 입증할 수 있다.
도 5는, 1개 내지 4개의 코어가 동시에 사용될 때, 전력 소비와 퇴거 μ연산 수 사이의 관계를 도시한 그래프이다.
도 5의 그래프에서 점들은 활성 상태 코어의 수에 따라 4개의 소영역 주위에서 그룹화된다. 1개와 2개, 2개와 3개, 또는 3개와 4개의 코어들 사이의 전력 소비의 차이는 단일 활성 상태 코어의 전력 소비보다 더 적다. 이것은 더 많은 코어들이 연산에 투입되는 경우, 공유된 콤포넌트들이 추가 전력을 거의 사용하지 않기 때문이다.
이러한 경향은 다양한 이종 작업부하들이 동시에 함께 실행될 때에도 나타난다.
도 6은 다수의 가상 머신이 상이한 벤치마크를 구동하는 동안의 전력 소비를 도시한 그래프이다.
더 많은 코어를 사용하는 것은 더 많은 μ연산을 유도한다. 또한, 더 많은 코어를 사용하는 것은 단일 코어의 것에 비해 덜 급격한 전력 소비 기울기로 인해 보다 양호한 에너지 효율을 가져올 수 있다.
이와 같이 μ연산-레벨에서의 정수 연산과 부동소숫점 연산 사이의 에너지 소비 차이는 매크로 연산 레벨에서 복잡성의 막대한 차이에도 불구하고 현저한 차이를 보이지는 않는다. 이 실험에서, 부동소숫점 인스트럭션의 비율과 단위 시간의 에너지 소비 사이의 상관 계수는 약 0.087로 극히 느슨한 관계이다. 이것은 부동소숫점 인스트럭션이 비부동 소숫점 인스트럭션보다 더 많은 수의 μ연산으로 변환되기 쉽기 때문이다. 이러한 관찰에 기초하여, 에너지 소비 예측 모델은 인스트럭션 유형을 분류하지 않는다.
한편, 프로세서의 전력 소비에 영향에 미치는 많은 이벤트가 있다 하더라도, 프로세서는 대체적으로 3개의 이벤트를 동시에 추적할 수 있다. 따라서, 프로세서 전력 소비와 가장 긴밀하게 관련되는 수 개의 이벤트 카운터를 사용하여 추정 모델을 설정할 수 있다.
대체적으로, 성능을 위해 가상 머신의 가상 프로세서는 프로세서 코어에 위탁된다. VM1 내지 VMn개의 가상 머신이 있고 가상 머신 k가 시간 간격 동안에 EVMk를 소비할 때, 본 발명의 실시예에 대한 목적은 VMk를 구동하는 프로세서 코어의 이벤트 카운터에 기초하여 EVMk를 추정하는 것이다.
고정된 시간 간격 동안에 전체 시스템의 동적 전력으로부터 전체 시스템의 전체적인 에너지 소비인 Esystem은 <수학식 2>에서 정의된다.
성능 카운터 값들이 모든 콘텍스트 스위치에서 기록되기 때문에, 시간 간격 동안에 발생한 이벤트의 수를 추적하는 것이 가능하다. 전력 소비가 이벤트에 의해 결정되면, 시간 t에서의 Evmi는 <수학식 3>에 도시된 바와 같은 경향을 가질 것이다. Ni는 시간 간격 동안의 퇴거 인스트럭션의 수이고, Mi는 메모리 액세스의 수이며, St는 시간 t에서 활성 상태 코어의 수이다. St는 활성 상태 코어의 수가 시간에 따라 변하기 때문에 시간 t에 의존한다.
<수학식 2>의 Evmi를 <수학식 3>에 적용하여 아래 <수학식 4>를 얻을 수 있다.
다양한 환경 하에서 샘플링된 데이터 세트들에 대해 다중-가변 선형적 회귀를 이행함으로써 계수 C1, C2 및 C3을 얻는다. 얻어진 계수는 <수학식 3>의 Ni, Mi 및 St를 측정된 성능 카운터 값들에 적용함으로써 가상 머신 간격의 에너지 소비를 추정하는데 사용될 수 있다.
성능 카운터들은 그것들의 변화를 추정하도록 모든 콘텍스트 스위치에서 판독된다. 다른 코어들의 성능 카운터를 판독하기 위해, 코어는 다른 코어들이 성능 카운터를 판독하는 코드로 점프하도록 다른 코어들에게 프로세서간 인터럽트를 유포한다. 그러나, 모든 코어가 항상 프로세서간 인터럽트를 발동하도록 허용한다면, 2개 또는 다수의 코어들이 프로세서간 인터럽트를 동시에 발동하는 경우에는 교착상태(deadlock)가 발생할 수 있다.
이러한 상황을 방지하기 위해, 시계열의 성능 카운터 값들을 수집하기 위한 시스템 소수변경(tweak)을 이용할 수 있다. 각각의 코어가 모든 콘텍스트 스위치에서 어레이 데이터 구조 ec_priv에 타임 스탬프를 갖는 현재 성능 카운터 값을 기록한다. 모든 사전 정의된 시간 간격, 통상적으로 30ms의 말미에, 마스터 코어는 모든 코어의 ec_priv 데이터를 결집시키고, 도 7에 도시된 바와 같이 코어의 시계열 활용을 재구성한다. 코어 활동성 시간표뿐 아니라, 4에서 모든 연속적인 2개의 시점들 사이에 발생한 모니터링된 이벤트의 수가 계산된다.
선형적 회귀를 통해 계수를 획득하는 것은, 모든 시간 간격 t의 에너지 소비 값 Esystem ,t를 필요로 한다. 그리고 외부 디지털 멀티미터 데이터 획득 디바이스를 사용하여 시스템 전력을 측정한다.
이 접근법에 따라, 선형적 회귀에 대한 데이터가 수집되어 계수를 획득한다. 일단 계수가 획득되면, 에너지 소비를 추정하기 위한 외부 측정은 더 이상 요구되지 않는다. 선형적 회귀와는 반대로, 추정 프로세스는 <수학식 4>에서 Ni, Mi 및 St를 대체함으로써 Esystem ,t를 획득할 수 있다.
이러한 에너지 소비 측정 방식을 평가하기 위해 하기 (표 2)와 같은 하드웨어에 특정 오픈 소스(예컨대, Xen 4.0)를 통해 추정 모델을 구현 했다.
시스템 내의 모든 가상 머신의 수집된 추정 에너지 소비 값들을 전체 시스템의 측정된 에너지 소비와 비교하는데, 이는 가상 머신의 에너지 소비를 측정할 실질적인 방법이 없기 때문이다. 결과적으로, 2개의 값들 사이의 에러는 가상 머신에 대한 추정 에러가 아니라, 시스템 내의 모든 가상 머신의 것이다.
각각의 가상 머신은, 단일 가상 프로세서를 갖추고, 벤치마크 슈트로부터 선택된 몇몇 벤치마크 프로그램을 구동하도록 구성된다. 시스템에는 4개의 물리적 코어가 있기 때문에, 최대 4개의 가상 머신이 코어를 공유하지 않고 동시에 구동될 수 있다.
에너지 소비 측정 방식의 평가를 위해 세팅된 벤치마크는 (표 3)에 열거되어 있다.
벤치마크 프로그램은 3개의 그룹으로 분류된다. CPU-집약적 그룹은 비교적 빈번하지 않은 메모리 액세스 또는 최종-레벨 캐시 미스를 갖는 프로그램들로 구성된다. 그것들은 공통적으로 높은 μops./sec를 보여 준다. 메모리-집약적 그룹에서의 벤치마크 프로그램은 메모리에 빈번하게 액세스하며 낮은 최종-레벨 캐시 히트 비율을 갖는다. CPU-집약적 및 메모리-집약적 그룹 양측 모두는 리소스-포화 작업부하(resource-saturating workloads)의 것이다.
다시 말해, 작업부하가 실행 중인 동안, 프로세서는 바쁜 상태를 유지하며 유휴 상태가 아니다. 최종 그룹, 즉 비-리소스 포화 그룹의 작업부하는 많은 디스크 액세스를 포함한다. 프로세서는 작업부하가 디스크 액세스의 종료를 기다리는 동안에는 보통 유휴 상태이다.
프로세서의 간격 활동성이 에너지 소비를 직접적으로 유도한다는 가정이 옳다면, 에너지 소비 예측 모델에서 계수를 획득하기 위한 작업부하의 선택은 추정 정확도에 거의 영향을 미치지 않을 것이다. 이에 선형적 회귀를 이행하기 위한 데이터를 샘플링하여 계수를 획득하도록 6개의 벤치마크 프로그램을 무작위로 선택한다. 선형적 회귀에 사용되는 벤치마크 프로그램은 (표 3)에 표시되어 있다.
첫째, 가상 머신의 작업부하가 이종일 때 추정 모델의 정확도를 측정한다. 이 실험에서, 모든 가상 머신은 동일한 벤치마크 프로그램을 반복적으로 실행하도록 구성된다. 동시에 구동되는 가상 머신의 수는 시간에 따라 1개 내지 4개 사이에서 변화한다.
도 8 내지 도 10은 추정에 사용되는 파라미터의 수에 따라 각각의 그룹에 속하는 벤치마크들의 평균 추정 에러들을 각각 도시한 그래프이다.
각 벤치마크의 좌측 바는 퇴거 인스트럭션의 수만이 고려될 때의 에러를 나타낸다. 중간 바는 퇴거 인스트럭션의 수 및 활성 상태 코어의 수 양측 모두가 고려될 때의 에러를 나타낸다. 우측 바는 메모리 액세스 활동성이 다른 2개의 파라미터와 함께 고려될 때의 에러를 보여 준다. 에러는 누설 전력 및 동적 전력으로부터의 에너지 소비를 포함하는 총 에너지 소비로 표준화된다.
도 8의 그래프는 에너지 소비 예측 모델이 모델의 계수를 획득하는 데 사용된, 작업부하에 적용되는 때의 추정 에러를 보여 준다. 과도 추정은 포지티브 에러를 산출하고, 과소 추정은 네거티브 에러를 산출한다. 모델 계수가 그러한 작업부하의 데이터를 맞추도록 획득되기 때문에 작업부하에 대한 높은 추정 정확도는 자연스러운 결과이다. 그러나, μ연산 카운트만이 고려될 때, 추정 에러는 8% 정도로 상승하며, 그 에러들 중 대부분은 과도 평가로부터 비롯된다.
다수의 코어들 사이에서 공유하는 리소스로부터의 효과를 배제하기 위해, μ연산의 수에만 기초하는 추정 모델에 대한 데이터를 수집할 때 단일 코어를 사용하는 단 하나의 가상 머신을 사용한다. 다수의 코어가 사용 중일 때, 그 계수를 적용하는 경우, 공유된 프로세서 콤포넌트들로부터의 에너지 효율 증진은 에너지 소비 예측 모델이 에너지 소비를 과도 추정하게 만든다. 이로 인해, 추정 정확도는 모델이 활성 상태 코어 수의 인자를 포함할 때 극적으로 개선될 수 있다.
도 9에 도시된 결과 그래프는 에너지 소비 예측 모델이 모델 계수를 획득하는 데 사용되지 않는 작업부하에 적용될 때의 에러이다. 이 실험의 추정 정확도는 도 8에 도시된 것과 유사하다. 메모리 액세스 인자는 도 8 및 도 9에서 작업부하가 메모리에 빈번하지 않게 액세스하기 때문에 정확도에는 거의 영향을 미치지 않는다.
제안된 모델이 메모리 액세스 카운트를 고려하지 않을 때, 모델은 작업부하의 에너지 소비를 과소 평가하기 쉽다. μ연산 카운트-전용 모델은 CPU-집약적 작업부하에 대해서보다 메모리-집약적 작업부하에 대해서 더 양호한 정확도를 보인다. 그러나, 이것은 메모리-집약적 작업부하에 대한 과소 평가 경향이 μ연산 카운트-전용 모델의 과도 평가 특성을 상쇄시키기 때문이다. 메모리 액세스 카운트를 포함하는 추정 모델은 2% 미만의 에러를 보인다.
또한 이종 작업부하를 갖는 다수의 가상 머신들이 동시에 구동되는 경우에 대해 제안된 방식을 평가했다. 하기 (표 4)에 열거된 바와 같은 6개의 작업부하 혼합을 무작위로 생성하였다.
작업부하 혼합 세트에 대한 추정 에러는 도 11에 예시되어 있다. 모든 작업부하 세트에 대해, 에러율은 3%보다 작으며, 0.5 Joule/sec 내지 7.0Joule/sec의 범위에 이른다. 에러 범위를 가상 머신의 수로 나누는 것은 0.5 Joule/sec 내지 3.5 Joule/sec 정도로 많은 VM 당 에러 범위(per-VM error range)를 산출한다.
도 12는 (표 3)으로부터 무작위로 선택된 일련의 작업부하들을 구동하는 동안 측정된 에너지 소비 및 추정된 에너지 소비의 시계열 중 일부분을 도시한 그래프이다.
도 12를 참조하면, 실선은 측정된 에너지 소비를 나타내고, 점선은 추정된 에너지 소비를 나타낸다. 대부분의 경우, 에너지 소비 예측 모델은 격렬한 에너지 소비 변화의 존재에도 불구하고 낮은 에러로 에너지 소비를 추정하고 있다. 이 실험의 평균 에러는 0.96 Joule/sec이다.
한편, 에너지 소비 스케줄러(214)는 기본적으로 사용자로부터 기 설정된 지정값을 토대로 에너지 소비율이 지정값 미만으로 소비되도록 가상 머신을 스케줄링 할 수 있다.
구체적으로 가상 머신 모니터로서 Xen의 디폴트 가상 머신 스케줄러인 크레디트 스케줄러는 가상 머신의 크레디트 값에 따라 가상 머신에 프로세서 시간을 배분하는 일종의 정당한 지분(fair-share)이다. 이러한 크레디트 스케줄러를 변형함으로써, 프로세서 시간 크레디트 대신에 가상 머신의 에너지 경비에 따라 가상 머신을 스케줄링하는 에너지-크레디트 스케줄러를 설정할 수 있다.
크레디트 스케줄러와 유사한 에너지-크레디트 스케줄러에서, 각각의 가상 머신은 자기 자신의 시간 간격, 즉 에너지 재정 간격으로 자신의 에너지 크레디트를 할당받는다. 가상 머신의 재정 간격은 사용자에 의해 제공되며, 가상 머신의 특성에 따라 결정되어야 한다. 너무 짧은 재정 간격은 과도하게 빈번한 콘텍스트 스위치를 유도할 것이고, 너무 긴 간격은 가상 머신이 상당한 시간 동안 중지되게 할 수 있다. 가상 머신 스케줄링의 시간 구획(time slice)은 30 ms 정도로 길기 때문에, 재정 간격은 시간 구획의 2배인 60ms보다 길어서는 안 된다. 가상 머신의 에너지 크레디트의 단위는 재정 당 줄 간격(joule-per-fiscal interval)이다.
통상적인 크레디트 스케줄러에서, 가상 머신에 전용되는 프로세서 시간은 모든 가상 머신 크레디트 값들의 합에 대한 가상 머신의 크레디트 비율에 의해 결정된다. 따라서, 가상 머신의 크레디트 값은 가상 머신에 전용되는 보장된 최소 프로세서 시간으로 해석될 수 있다. 전체 시스템의 처리율을 위해, 크레디트 스케줄러를 포함하는 일반적인 스케줄러들은 구동 가능한 태스크가 있고 이중에서 어떤 것도 사용 가능한 크레디트 값을 갖고 있지 않을 때 크레디트 값을 재배분함으로써 시스템을 바쁜 상태로 유지시키는 보존 스케줄링을 작업한다.
그러나, 에너지-크레디트 스케줄러의 목적은 각 가상 머신의 에너지 소비율을 에너지 경비 아래로 제한하는 것이기 때문에 스케줄링 시간의 상한(ceiling bounds)에 따라 작업할 수 있다. 모든 구동 가능한 가상 머신들이 그들의 에너지-크레디트를 모두 쓸 때, 시스템은 임의의 구동 가능한 가상 머신의 신규 재정 간격이 시작될 때까지 유휴 상태이다. 다시 말해, 에너지-크레디트 스케줄러는 비-작업 보존 스케줄러이다.
도 13은 본 발명의 실시예에 따른 에너지 소비 스케줄러의 동작 절차를 도시한 흐름도이다.
도 13을 참조하면, 1300단계에서 모든 이벤트의 프로세스 완료 여부를 판단하여 모두 완료되었다면, 종료하고, 완료되지 않았다면, 1302 단계로 진행하여 활성 코어들의 수를 카운트하고 종료 시간에 가장 가까운 이벤트를 검색하게 된다.
이후 1304단계에서 모든 활성 코어 프로세스가 완료된 경우에는 1300단계로 복귀하고, 완료되지 않은 경우에는 1306단계로 진행하게 된다. 1306단계에서는 이벤트 동안의 에너지 소비량을 추정하고, 1308단계에서 설정된 에너지로부터 에너지를 감소시키게 된다.
이에 1310단계에서 남은 에너지가 0과 같거나 0보다 적은 경우에는 1304단계로 복귀하고, 남은 에너지가 0보다 크다면, 1312단계로 진행하여 스케줄링을 정지하게 된다. 이후 1304단계로 복귀하여 모든 활성 코어 프로세스가 완료될 때까지 스케줄링을 수행하게 된다.
이와 같이 에너지 소비 스케줄러의 알고리즘은 도 7에서와 같이 T1-T2인 30 ms 간격마다 실행된다. 이 시간 간격은 서로 상이할 수 있는 가상 머신들의 에너지 재정 간격과는 다르다.
매 시간 간격의 말미에서, do_burn_energy는 그 간격 동안에 가상 머신의 잔여 에너지 크레디트로부터 그 가상 머신의 추정된 소비 에너지를 감산할 수 있다. 가상 머신이 어떠한 잔여 크레디트도 갖고 있지 않다면, 스케줄러는 그 가상 머신의 다음 재정 간격이 시작되어 그 가상머신이 크레디트를 다시 얻을 때까지 가상 머신을 스케줄러 큐에서 벗어나 있게 한다.
가상 머신의 재정 간격 동안에 그 가상 머신에 의한 에너지 소비는 제안된 에너지 소비 예측 모델을 이용하여 획득된다. 에너지-크레디트 스케줄러에서 에너지 소비 예측 모델은 모든 3개의 파라미터를 이용할 수 있다.
가상 머신으로의 에너지 크레디트 배분은 가상 머신의 신규 재정 간격이 시작된 후에 스케줄링 알고리즘의 제 1 실행에서 이루어진다. 따라서, 에너지 크레디트 제공의 시간 입도(time granularity)는 30 ms이다. 스케줄러 큐에서 벗어난 가상 머신이 에너지 크레디트를 얻을 때, 스케줄러는 스케줄러 큐에 가상 머신을 다시 참여시킨다.
에너지 크레디트 스케줄러는 Xen 하이퍼바이저에서 구현될 수 있다. 구현된 스케줄러는 상기 (표 2)와 같은 하드웨어에 특정 오픈 소스(예컨대, Xen 4.0)를 통해 평가하였다.
에너지 제공의 정확도를 평가하기 위해, (표 5)에 열거된 작업부하 구성을 이용할 수 있다.
1개 내지 4개의 가상 머신이 동시에 구동되고 그들 각각은 상이한 에너지 경비로 상이한 작업부하를 실행한다. 가상 머신이 자신의 재정 간격을 선택하는 데에서 자유롭다 하더라도, 모든 가상 머신은 용이한 분석을 위해 1초의 에너지 재정 간격을 갖도록 세팅 된다.
추정 모델 평가와 마찬가지로, 모든 가상 머신의 지정된 에너지 소비율의 수집된 값을 전체 물리적 머신의 측정된 에너지 소비율과 비교한다. (표 5)에서 가장 오른쪽에 있는 2개의 컬럼은 초 당 측정된 에너지 소비 및 에너지 제공 에러를 각각 나타내고 있다.
실험 결과에 따르면, 에러율은 총 에너지 소비의 2% 미만이다. 에러는 대부분의 경우에 포지티브 값인데, 이는 측정된 에너지 소비가 에너지 경비를 초과한다는 것을 의미한다. 이것은 이에 대한 접근법이 순향성(proactive)이 아니라 반응성(reactive)이기 때문이다. 에너지 소비 스케줄러는 가상 머신이 에너지 경비를 다 쓴 후에만 가상 머신을 중지시킨다. 따라서, 가상 머신은 에너지 경비보다 약간 더 많은 에너지를 소비하게 된다. 에너지 경비가 엄격하게 보장되어야 한다면, 알고리즘은 순향성인 것으로 개선되어야 한다.
도 14는 지정된 에너지 경비 변화 및 측정 에너지 소비율의 시계열을 도시한그래프이다.
4개의 가상 머신은 그들의 에너지 경비가 동적으로 변화하는 동안에 동시에 구동되었다. 에너지 소비율은 에너지 경비 변화를 급속히 뒤따랐다. 그러나, 5초와 같은 단시간의 규모에서, 지정된 에너지 제공과 실제 사용과의 차이는 현저하게 변하였다. 이것은 에너지 소비율에 영향을 미치는 프로세서 활동성의 구성이 작업부하의 상태에 따라 변화하기 때문이다. 단기 부정확성에도 불구하고, 에너지 소비 스케줄링을 이용한 방식은 결국 에너지 경비에 따라 에너지를 제공할 수 있다.
이상 설명한 바와 같이, 본 발명의 실시예에 따른 클라우드 시스템에서 가상 머신의 에너지 기반 과금 및 스케줄링 장치 및 방법은, 클라우드 시스템에서 프로세서 성능 카운터를 모니터링함으로써 가상 머신에 의한 에너지 소비량을 예측하여 에너지 소비 예측 모델을 생성하고, 에너지 소비 예측 모델을 기반으로 사용자가 결정한 예산 내에서 각각의 가상 머신의 에너지 소비율을 제한하는 에너지 소비 스케줄러를 구현한다.
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되지 않으며, 후술되는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
100 : 클라우드 서비스 장치 110 : 유무선 통신망
120, 122, 124 : 사용자 단말기 200 : 제어부
202 : 사용자 인터페이스부 204 : 가상 머신 할당부
206 : 저장부 208 : 과금 및 스케줄링부
210 : 과금부 212 : 에너지 소비 예측 모델 생성부
214 : 에너지 소비 스케줄러
120, 122, 124 : 사용자 단말기 200 : 제어부
202 : 사용자 인터페이스부 204 : 가상 머신 할당부
206 : 저장부 208 : 과금 및 스케줄링부
210 : 과금부 212 : 에너지 소비 예측 모델 생성부
214 : 에너지 소비 스케줄러
Claims (8)
- 프로세서 성능 카운터를 모니터링하여 각 사용자 단말기 별로 할당된 가상 머신에 의한 에너지 소비량을 예측하는 프로세서 모니터링부와,
상기 예측된 에너지 소비량을 토대로 에너지 소비 예측 모델을 생성하는 에너지 소비 예측 모델 생성부와,
상기 에너지 소비 예측 모델을 기반으로 사용자로부터 기 설정된 에너지 설정값 내에서 각 가상 머신에 대한 에너지 소비율을 제한하는 에너지 소비 스케줄러
를 포함하는 클라우드 시스템에서 가상 머신의 에너지 기반 과금 및 스케줄링 장치.
- 제 1항에 있어서,
상기 프로세서 성능 카운트는,
프로세서의 전력 소비에 영향을 미치는 적어도 하나의 이벤트에 대한 카운터로서,
시간 간격에서의 평균 전력 소비,
공유된 콤포넌트들에 대한 전력 소비량 및 인스트럭션을 실행하는 적어도 하나의 코어에 의한 전력 소비의 합,
시간 간격 동안의 퇴거 인스트럭션 수, 메모리 액세스 수, 활성 상태의 코어 수의 합 중 적어도 하나를 기준으로 산정하는 것을 특징으로 하는 클라우드 시스템에서 가상 머신의 에너지 기반 과금 및 스케줄링 장치.
- 제 1항에 있어서,
상기 에너지 설정값은,
적어도 하나의 가상 머신이 기 설정된 재정시간 간격 동안에 사용할 수 있는 에너지 양인 것을 특징으로 하는 클라우드 시스템에서 가상 머신의 에너지 기반 과금 및 스케줄링 장치.
- 제 3항에 있어서,
상기 에너지 소비 스케줄러는,
상기 재정시간 간격 동안 추정된 소비 에너지를 상기 에너지 설정값에서 감산하고,
적어도 하나의 가상 머신이 할당된 에너지 설정값이 0인 경우, 스케줄러 큐에서 제어하고,
다음 재정시간 간격에 에너지 설정값을 할당하여 스케줄러 큐에 포함시키는 것을 특징으로 하는 클라우드 시스템에서 가상 머신의 에너지 기반 과금 및 스케줄링 장치.
- 유무선 통신망을 통해 클라우드 서비스 장치에 연결된 각 사용자 단말기로 클라우드 서비스를 제공하는 과정과,
프로세서 성능 카운터를 모니터링하여 상기 각 사용자 단말기 별로 할당된 가상 머신에 의한 에너지 소비량을 예측하는 과정과,
상기 예측된 에너지 소비량을 토대로 에너지 소비 예측 모델을 생성하는 과정과,
상기 에너지 소비 예측 모델을 기반으로 사용자로부터 기 설정된 에너지 설정값 내에서 각 가상 머신에 대한 에너지 소비율을 에너지 소비 스케줄러에 의해 제한하는 과정
을 포함하는 클라우드 시스템에서 가상 머신의 에너지 기반 과금 및 스케줄링 방법.
- 제 5항에 있어서,
상기 프로세서 성능 카운트는,
프로세서의 전력 소비에 영향을 미치는 적어도 하나의 이벤트에 대한 카운터로서,
시간 간격에서의 평균 전력 소비,
공유된 콤포넌트들에 대한 전력 소비량 및 인스트럭션을 실행하는 적어도 하나의 코어에 의한 전력 소비의 합,
시간 간격 동안의 퇴거 인스트럭션 수, 메모리 액세스 수, 활성 상태의 코어 수의 합 중 적어도 하나를 기준으로 산정하는 것을 특징으로 하는 클라우드 시스템에서 가상 머신의 에너지 기반 과금 및 스케줄링 방법.
- 제 5항에 있어서,
상기 에너지 설정값은,
적어도 하나의 가상 머신이 기 설정된 재정시간 간격 동안에 사용할 수 있는 에너지 양인 것을 특징으로 하는 클라우드 시스템에서 가상 머신의 에너지 기반 과금 및 스케줄링 방법.
- 제 7항에 있어서,
상기 에너지 소비 스케줄러는,
상기 재정시간 간격 동안 추정된 소비 에너지를 상기 에너지 설정값에서 감산하고,
적어도 하나의 가상 머신이 할당된 에너지 설정값이 0인 경우, 스케줄러 큐에서 제어하고,
다음 재정시간 간격에 에너지 설정값을 할당하여 스케줄러 큐에 포함시키는 것을 특징으로 하는 클라우드 시스템에서 가상 머신의 에너지 기반 과금 및 스케줄링 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110052285A KR101266421B1 (ko) | 2011-05-31 | 2011-05-31 | 클라우드 시스템에서 가상 머신의 에너지 기반 과금 및 스케줄링 장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110052285A KR101266421B1 (ko) | 2011-05-31 | 2011-05-31 | 클라우드 시스템에서 가상 머신의 에너지 기반 과금 및 스케줄링 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120133572A KR20120133572A (ko) | 2012-12-11 |
KR101266421B1 true KR101266421B1 (ko) | 2013-05-22 |
Family
ID=47516912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110052285A KR101266421B1 (ko) | 2011-05-31 | 2011-05-31 | 클라우드 시스템에서 가상 머신의 에너지 기반 과금 및 스케줄링 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101266421B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101602950B1 (ko) * | 2014-09-11 | 2016-03-11 | 경희대학교 산학협력단 | 클라우드 플랫폼을 위한 프로파일 기반 에너지 인식 추천하는 장치 및 방법 |
KR101927462B1 (ko) | 2017-10-31 | 2019-03-12 | 성균관대학교 산학협력단 | 클라우드 컴퓨팅을 활용한 신재생 에너지 관리 시스템 및 그의 처리 방법, 그리고 이 처리 방법을 실행시키기 위해 컴퓨터가 판독 가능한 매체에 저장된 컴퓨터 프로그램 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016106747A1 (zh) * | 2014-12-31 | 2016-07-07 | 华为技术有限公司 | 虚拟机能耗确定方法、物理机和网络系统 |
-
2011
- 2011-05-31 KR KR1020110052285A patent/KR101266421B1/ko not_active IP Right Cessation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101602950B1 (ko) * | 2014-09-11 | 2016-03-11 | 경희대학교 산학협력단 | 클라우드 플랫폼을 위한 프로파일 기반 에너지 인식 추천하는 장치 및 방법 |
US10509429B2 (en) | 2014-09-11 | 2019-12-17 | University—Industry Cooperation Foundation Of Kyung Hee University | Method and apparatus for improving efficiency of a cloud platform based on node usage |
KR101927462B1 (ko) | 2017-10-31 | 2019-03-12 | 성균관대학교 산학협력단 | 클라우드 컴퓨팅을 활용한 신재생 에너지 관리 시스템 및 그의 처리 방법, 그리고 이 처리 방법을 실행시키기 위해 컴퓨터가 판독 가능한 매체에 저장된 컴퓨터 프로그램 |
Also Published As
Publication number | Publication date |
---|---|
KR20120133572A (ko) | 2012-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kim et al. | Energy-credit scheduler: an energy-aware virtual machine scheduler for cloud systems | |
Reiss et al. | Heterogeneity and dynamicity of clouds at scale: Google trace analysis | |
Donyanavard et al. | SPARTA: Runtime task allocation for energy efficient heterogeneous many-cores | |
Tudor et al. | On understanding the energy consumption of arm-based multicore servers | |
Kambadur et al. | Measuring interference between live datacenter applications | |
Podzimek et al. | Analyzing the impact of cpu pinning and partial cpu loads on performance and energy efficiency | |
Govindan et al. | Cuanta: quantifying effects of shared on-chip resource interference for consolidated virtual machines | |
Bailey et al. | Adaptive configuration selection for power-constrained heterogeneous systems | |
Lim et al. | Softpower: fine-grain power estimations using performance counters | |
Dhiman et al. | vGreen: a system for energy efficient computing in virtualized environments | |
Xiao et al. | Virtual machine power measuring technique with bounded error in cloud environments | |
US20140149752A1 (en) | Associating energy consumption with a virtual machine | |
Kim et al. | Energy-based accounting and scheduling of virtual machines in a cloud system | |
Banikazemi et al. | PAM: a novel performance/power aware meta-scheduler for multi-core systems | |
Srikanthan et al. | Data sharing or resource contention: Toward performance transparency on multicore systems | |
Mück et al. | Run-DMC: Runtime dynamic heterogeneous multicore performance and power estimation for energy efficiency | |
Rameshan et al. | Hubbub-scale: Towards reliable elastic scaling under multi-tenancy | |
Feliu et al. | Symbiotic job scheduling on the IBM POWER8 | |
Jahre et al. | GDP: Using dataflow properties to accurately estimate interference-free performance at runtime | |
KR101266421B1 (ko) | 클라우드 시스템에서 가상 머신의 에너지 기반 과금 및 스케줄링 장치 및 방법 | |
Schmitt et al. | Online power consumption estimation for functions in cloud applications | |
Manousakis et al. | TProf: An energy profiler for task-parallel programs | |
Netto et al. | Deciding when and how to move HPC jobs to the cloud | |
Lent | Evaluating the performance and power consumption of systems with virtual machines | |
Liu et al. | Understanding the impact of vcpu scheduling on dvfs-based power management in virtualized cloud environment |
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 | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160512 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170330 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180409 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |