KR20170017183A - 가상 cpu를 제어하는 장치, 방법 및 컴퓨터 프로그램 - Google Patents
가상 cpu를 제어하는 장치, 방법 및 컴퓨터 프로그램 Download PDFInfo
- Publication number
- KR20170017183A KR20170017183A KR1020150110738A KR20150110738A KR20170017183A KR 20170017183 A KR20170017183 A KR 20170017183A KR 1020150110738 A KR1020150110738 A KR 1020150110738A KR 20150110738 A KR20150110738 A KR 20150110738A KR 20170017183 A KR20170017183 A KR 20170017183A
- Authority
- KR
- South Korea
- Prior art keywords
- cpu
- virtual
- physical
- server
- priority application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
가상 CPU를 제어하는 장치는 가상 서버의 사양 및 SLA(Service Level Agreement)를 포함하는 청약 정보를 입력 받는 입력부, 상기 청약 정보에 기초하여 물리적 CPU(Central Processing Unit)를 할당하여 상기 가상 서버를 생성하는 생성부, 상기 가상 서버의 가상 CPU와 상기 가상 서버에 할당된 물리적 CPU의 매핑 관계를 저장하는 저장부, 기 설정된 시간 간격으로 상기 가상 CPU의 사용률과 상기 물리적 CPU의 사용률을 수집하는 수집부, 및 상기 물리적 CPU의 사용률이 기 설정된 임계치 기준을 만족하는 경우 상기 물리적 CPU와 매핑되어 저장된 적어도 2개 이상의 가상 CPU 중 적어도 하나를 제어하는 제어부를 포함하되, 상기 SLA는 CPU 우선 적용의 설정 여부를 포함하고, 상기 제어부는 CPU 우선 적용을 설정한 가상 CPU에 가중치를 할당하거나 또는 CPU 우선 적용을 설정하지 않은 가상 CPU에 제한(Capping)을 부여함으로써 상기 적어도 2개 이상의 가상 CPU의 사용량을 조절하도록 구성된다.
Description
본 발명은 가상 CPU를 제어하는 장치, 방법 및 컴퓨터 프로그램에 관한 것이다.
물리적인 하드웨어의 사용을 최적화 하기 위해서는 일반적으로 가상화 기술을 활용하여 하나의 물리적인 자원을 공유하면서 하이퍼바이저 기반에서 다양한 가상 서버를 사용하게 된다. 이때 각각의 가상서버간에 사용하는 하이퍼바이저의 스케줄링 관리 기능은 가상 시스템의 성능 및 처리량에 영향을 준다. 일반적으로 가상서버에 할당된 가상 CPU(Central Processing Unit)는 비동기적으로 물리적인 CPU에 각각 할당되어서 성능 및 처리량을 최대화할 수 있도록 하이퍼바이저가 관리를 한다.
그러나 하이퍼바이저가 가상서버간 물리적인 CPU 자원을 공유하여 사용하는 경우 일부 가상서버가 CPU 자원을 과다하게 사용하는 경우 다른 가상서버에게 영향을 주게 된다. Xen, vmware 등의 하이퍼바이저 도구가 스케줄링을 최적화 하더라도 가상화 특성상 오버 프로비저닝(overprovisioning)을 적용하는 경우, 물리적인 CPU를 가상서버간 공유할 수 밖에 없는 구조이다. 결국, 이를 해결하기 위해서는 일부 가상서버가 CPU를 과다하게 일정시간 사용하는 것에 대한 관리 및 제어가 필요하다.
이와 관련하여, 선행기술인 한국공개특허 제2009-0055459호는 가상 머신 모니터 및 멀티프로세서 시스템에 관한 것으로서, 인터페이스를 통해 I/O 디바이스의 물리 위치 정보를 취득하고, 취득한 물리 위치 정보를 사용하여 가상서버에 대한 리소스의 할당을 지정된 폴리시에 따라 최적화하는 구성을 개시하고 있다.
클라우드 서비스 사업자는 가상 서비스를 제공하면서 사업 비용을 최소화 하기 위한 방법으로 CPU(Central Processing Unit) 리소스에 대해서 오버 프로비저닝 기법을 사용하여 제공한다. 예를 들어 오버 프로비저닝이 1.2면 20% 물리적인 CPU 자원을 가상서버가 서로 공유하면서 사용하게 된다. 이 때 사용자가 가상 서버를 사용시 다른 가상서버의 CPU 처리/사용에 의해 가상 서버의 성능 및 처리속도량에 영향 받는 부분을 최소화하고 가상 서버에 대한 QoS를 만족할 수 있도록 가상 CPU를 제어하는 장치, 방법 및 컴퓨터 프로그램을 제공하고자 한다. 과부하를 사용하는 가상 CPU 코어에 대해 제어를 수행함으로써 물리적 노드의 개별 코어 부하를 평준화시키고 가상 서버의 서비스 장애를 감소시킬 수 있는 가상 CPU를 제어하는 장치, 방법 및 컴퓨터 프로그램을 제공하고자 한다. CPU 오버 프로비저닝 비율을 높여 투자비 절감 및 사용자의 가상서버 사용에 대한 처리 시간 등의 체감 품질 등을 향상시킬 수 있는 가상 CPU를 제어하는 장치, 방법 및 컴퓨터 프로그램을 제공하고자 한다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 실시예는 가상 CPU(Central Processing Unit)를 제어하는 장치에 있어서, 가상 서버의 사양 및 SLA(Service Level Agreement)를 포함하는 청약 정보를 입력 받는 입력부, 상기 청약 정보에 기초하여 물리적 CPU를 할당하여 상기 가상 서버를 생성하는 생성부, 상기 가상 서버의 가상 CPU와 상기 가상 서버에 할당된 물리적 CPU의 매핑 관계를 저장하는 저장부, 기 설정된 시간 간격으로 상기 가상 CPU의 사용률과 상기 물리적 CPU의 사용률을 수집하는 수집부, 및 상기 물리적 CPU의 사용률이 기 설정된 임계치 기준을 만족하는 경우 상기 물리적 CPU와 매핑되어 저장된 적어도 2개 이상의 가상 CPU 중 적어도 하나를 제어하는 제어부를 포함하되, 상기 SLA는 CPU 우선 적용의 설정 여부를 포함하고, 상기 제어부는 CPU 우선 적용을 설정한 가상 CPU에 가중치를 할당하거나 또는 CPU 우선 적용을 설정하지 않은 가상 CPU에 제한(Capping)을 부여함으로써 상기 적어도 2개 이상의 가상 CPU의 사용량을 조절하는 것인, 가상 CPU 제어 장치를 제공할 수 있다.
또한, 본 발명의 다른 실시예는, 가상 CPU를 제어하는 방법에 있어서, 가상 서버의 사양 및 SLA(Service Level Agreement)를 포함하는 청약 정보를 입력 받는 단계, 상기 청약 정보에 기초하여 물리적 CPU(Central Processing Unit)를 할당하여 상기 가상 서버를 생성하는 단계, 상기 가상 서버의 가상 CPU와 상기 가상 서버에 할당된 물리적 CPU의 매핑 관계를 저장하는 단계, 기 설정된 시간 간격으로 상기 가상 CPU의 사용률과 상기 물리적 CPU의 사용률을 수집하는 단계 및 상기 물리적 CPU의 사용률이 기 설정된 임계치 기준을 만족하는 경우 상기 물리적 CPU와 매핑되어 저장된 적어도 2개 이상의 가상 CPU 중 적어도 하나를 제어하는 단계를 포함하되, 상기 SLA는 CPU 우선 적용의 설정 여부를 포함하고, 상기 제어하는 단계는 CPU 우선 적용을 설정한 가상 CPU에 가중치를 할당하거나 또는 CPU 우선 적용을 설정하지 않은 가상 CPU에 제한(Capping) 을 부여함으로써 상기 적어도 2개 이상의 가상 CPU의 사용량을 조절하는 것인, 가상 CPU 제어 방법을 제공할 수 있다.
또한, 본 발명의 또 다른 실시예는, 컴퓨팅 장치와 연동하여 가상 CPU를 제어하는 매체에 저장된 컴퓨터 프로그램으로서,
상기 컴퓨터 프로그램은 상기 컴퓨팅 장치에 의해 실행될 경우, 가상 서버의 사양 및 SLA(Service Level Agreement)를 포함하는 청약 정보를 입력 받고, 상기 청약 정보에 기초하여 물리적 CPU(Central Processing Unit)를 할당하여 상기 가상 서버를 생성하고, 상기 가상 서버의 가상 CPU와 상기 가상 서버에 할당된 물리적 CPU의 매핑 관계를 저장하고, 기 설정된 시간 간격으로 상기 가상 CPU의 사용률과 상기 물리적 CPU의 사용률을 수집하고, 상기 물리적 CPU의 사용률이 기 설정된 임계치 기준을 만족하는 경우 상기 물리적 CPU와 매핑되어 저장된 적어도 2개 이상의 가상 CPU 중 적어도 하나를 제어하도록 하는 명령어들의 시퀀스를 포함하는 컴퓨터 프로그램으로서, 상기 SLA는 CPU 우선 적용의 설정 여부를 포함하고, 상기 제어하는 단계는 CPU 우선 적용을 설정한 가상 CPU에 가중치를 할당하거나 또는 CPU 우선 적용을 설정하지 않은 가상 CPU에 제한(Capping) 을 부여함으로써 상기 적어도 2개 이상의 가상 CPU의 사용량을 조절하는 것인, 컴퓨터 프로그램을 제공할 수 있다.
상술한 과제 해결 수단은 단지 예시적인 것으로서, 본 발명을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 기재된 추가적인 실시예가 존재할 수 있다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 가상 서버를 사용시 다른 가상서버의 처리/사용에 의해 영향 받는 부분을 최소화하고 가상 서버에 대한 QoS를 만족시킬 수 있는 가상 CPU(Central Processing Unit)를 제어하는 장치, 방법 및 컴퓨터 프로그램을 제공할 수 있다. 과부하를 사용하는 가상 CPU 코어에 대해 제어를 수행함으로써 물리적 노드의 개별 코어 부하를 평준화시키고 가상 서버의 서비스 장애를 감소시킬 수 있는 가상 CPU를 제어하는 장치, 방법 및 컴퓨터 프로그램를 제공할 수 있다. CPU 오버 프로비저닝 비율을 높여 투자비 절감 및 사용자의 가상서버 사용에 대한 처리 시간 등의 체감 품질 등을 향상시킬 수 있는 가상 CPU를 제어하는 장치, 방법 및 컴퓨터 프로그램을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 가상 CPU 제어 장치의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 가상 서버의 청약 정보를 입력받는 유저 인터페이스를 설명하기 위한 도면이다.
도 3 본 발명의 일 실시예에 따른 가상 서버를 생성하는 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 물리적 CPU 코어와 가상 CPU 코어의 매핑 관계를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 물리적 서버와 가상 서버간의 CPU 공유 관계를 나타내는 스키마 테이블을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 가중치 할당 및 CPU 제한에 따른 가상 CPU 제어를 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 가상 CPU의 제어 수행 결과를 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 가상 CPU를 제어하는 과정을 설명하기 위한 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 가상 서버의 청약 정보를 입력받는 유저 인터페이스를 설명하기 위한 도면이다.
도 3 본 발명의 일 실시예에 따른 가상 서버를 생성하는 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 물리적 CPU 코어와 가상 CPU 코어의 매핑 관계를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 물리적 서버와 가상 서버간의 CPU 공유 관계를 나타내는 스키마 테이블을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 가중치 할당 및 CPU 제한에 따른 가상 CPU 제어를 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 가상 CPU의 제어 수행 결과를 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 가상 CPU를 제어하는 과정을 설명하기 위한 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미하며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다.
본 명세서에 있어서 단말 또는 디바이스가 수행하는 것으로 기술된 동작이나 기능 중 일부는 해당 단말 또는 디바이스와 연결된 서버에서 대신 수행될 수도 있다. 이와 마찬가지로, 서버가 수행하는 것으로 기술된 동작이나 기능 중 일부도 해당 서버와 연결된 단말 또는 디바이스에서 수행될 수도 있다.
이하 첨부된 도면을 참고하여 본 발명의 일 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 가상 CPU 제어 장치의 구성도이다. 도 1을 참조하면, 가상 CPU(Central Processing Unit) 제어 장치(100)는 입력부(110), 생성부(120), 저장부(130), 수집부(140), 제어부(150) 및 임계치 입력부(160)를 포함할 수 있으며, 이에 제한되지 않고, 청약 DB(112), 매핑 DB(132), CPU 사용률 DB(142), 제어 이력 DB(152), 임계치 DB (162)를 더 포함할 수 있다. 이하에서는 가상 CPU 제어 장치(100)의 각 구성에 대해 상세히 설명하도록 한다.
입력부(110)는 사용자로부터 가상 서버의 사양 및 SLA(Service Level Agreement)를 포함하는 청약 정보를 입력 받을 수 있다. 가상 서버의 사양은 가상 서버의 명칭, 패스워드, 가상 코어 수, 메모리용량, 디스크 용량, CPU 클럭수를 포함할 수 있으며, SLA는 CPU자원 우선 적용의 설정 여부를 포함할 수 있으나 이에 제한되지는 않는다.
입력부(110)는 가상서버 청약 UI를 통해 사용자로부터 가상 서버의 사양 및 SLA를 포함하는 청약 정보를 입력 받을 수 있으며 입력 받은 청약 정보를 청약 DB(112)에 저장할 수 있다. 이하에서는 도 2를 참조하여, 가상서버 청약 UI에 대해 설명하도록 한다.
도 2는 본 발명의 일 실시예에 따른 가상 서버의 청약 정보를 입력받는 유저 인터페이스를 설명하기 위한 도면이다. 도 2를 참조하면, 유저 인터페이스는 가상서버 생성을 위한 기본 서버 사양 (가상 코어수, 메모리 용량(MM), 디스크 용량 및 CPU 클럭수)와 SLA 제공을 위한 데이터(CPU 자원 우선적용 또는 CPU 자원 비우선 적용)를 입력받을 수 있다. 이 때 SLA 정보 선택에 따라 가상서버 사용에 대한 비용을 차별적으로 부가될 수 있다. 따라서, 예컨대 사용자가 사용하는 가상서버가 서비스 처리 시간에 민감하지 않는 경우, CPU 자원 비우선 적용을 선택하여 가상서버 사용 비용을 할인 받아서 사용할 수 있도록 할 수 있다. CPU 클럭수는 물리적 코어가 제공하는 클럭수 범위안에서 요청할 수 있으며, 예를 들어 물리적 코어의 클럭수가 2.98Ghz인 경우, 사용자는 1Ghz~2Ghz를 선택할 수 있다. CPU 클럭수가 높을수록 CPU 자원 경합 시 우선 순위 적용을 선택 받기 때문에, 더 많은 사용 비용이 부가될 수 있다. CPU 자원 우선순위 적용 필드가 체크되는 경우 CPU 경합이 발생 시 우선적으로 CPU 자원을 할당 받을 수 있도록 서비스가 제공될 수 있다.
다시 도 1로 돌아와서, 생성부(120)는 입력부(110)에서 입력 받은 청약 정보에 기초하여 물리적 CPU를 할당하여 가상 서버를 생성할 수 있다.
생성부(120)는, 이 후 CPU 경합 발생 시를 대비하여, 가상 CPU 생성 시 CPU 우선 적용을 설정한 가상 CPU와 CPU 비우선 적용을 설정한 가상 CPU가 물리적 CPU에 균등하게 매핑될 수 있도록 물리적 CPU를 할당할 수 있다. 즉, 생성부(120)는 청약 내용의 SLA 데이터 중 CPU자원 우선순위 데이터 여부를 가지고 하나의 물리적 서버(300)에 균등하게 가상서버(310, 320)를 생성할 수 있다. 예를 들어서 하나의 물리적 서버(300)에 생성되는 가상서버(310, 320)들은 평균적으로 CPU 자원 우선적용 : CPU자원 비우선적용 = 50:50 비율로 생성될 수 있다. 이하에서는, 도 3을 참조하여 물리적 자원을 할당하여 가상 서버를 생성하는 예시적인 방법에 대해 설명하도록 한다.
도 3 본 발명의 일 실시예에 따른 가상 서버를 생성하는 방법을 설명하기 위한 도면이다. 도3을 참조하면, 가상 서버(310, 320)의 생성에 요청이 있는 경우 CPU 스케줄러(340) 및 메모리/디스크/네트워크 스케줄러(360)는 물리적인 CPU자원(200), 메모리자원(220), 디스크자원(240), 네트워크자원(260)을 할당하여 가상 서버(310, 320)를 생성할 수 있다.
이 때, 하나 이상의 가상서버(310, 320)는 하나의 물리적 장치 서버에서 동작될 수 있으며, 일반적인 하이퍼바이저는 물리적인 자원을 가상서버(310, 320)에 제공하기 위해서 내부적으로 "fair-share balancing algorithm"을 통해서 자원을 분배할 수 있다. 이를 통해 가상서버들(310, 320)이 물리적인 CPU자원(200), 메모리자원(220), 디스크자원(240), 네트워크자원(260) 등을 공유할 수 있도록 제공할 수 있다. 특히 CPU 자원(200)이나 디스크 자원(240)인 경우에는 가상 서버(310, 320)가 동시에 busy/full 하게 사용하지 않는다는 개념(overprovisioning)을 도입하여 가상서버간 자원 공유를 수행할 수 있다. 예를 들어서 CPU 오버 프로비저닝(overprovisioning) 값이 1.2 이면 CPU 코어가 10개 일 때 가상서버(310, 320)에게는 최대 12개까지 가상 CPU를 할당할 수 있다.
다시 도 1로 돌아와서, 저장부(130)는 가상 서버의 가상 CPU와 가상 서버에 할당된 물리적 CPU의 매핑 관계를 저장할 수 있다. 이 때, 물리적 CPU는 하나 이상의 물리적 CPU 코어를 포함하고, 가상 CPU는 하나 이상의 가상 CPU 코어를 포함할 수 있으며, 저장부(130)는 물리적 CPU 코어와 가상 CPU 코어간의 매핑 관계를 스키마 테이블에 저장할 수 있다. 이하에서는 도 4 및 도 5를 참조하여, 물리적 CPU 코어와 가상 CPU 코어의 매핑 관계 및 스키마 테이블에 대해서 설명하도록 한다.
도 4는 본 발명의 일 실시예에 따른 물리적 CPU 코어와 가상 CPU 코어의 매핑 관계를 설명하기 위한 도면이다. 도 4를 참조하면, 복수의 가상서버(310, 320, 330)가 물리적 CPU 자원(200)을 공유하는 형태를 도식화하고 있다. 도 4는 CPU 오버 프로비저닝 값이 1.2인 경우로, 물리적 코어가 10개 있고 이에 할당된 가상서버 당 가상 CPU가 4개(총 12개)로 클라우드 서비스를 제공하는 것을 도시하고 있다. 하이퍼바이저는 서로간의 CPU 충돌 방지 및 최적의 리소스 사용률을 최적화 하기 위해서 가상서버 당 전용(dedicated) CPU 자원을 할당하고 나머지 2개의 물리적 CPU(200의 7번 8번 코어)에 대해서는 서로 공유하여 자원을 사용하도록 매핑할 수 있다. 공유된 가상서버(320, 330) 중 하나의 가상서버가 CPU를 과대하게 사용하는 경우에는 다른 가상서버에게 영향을 미칠 수 있으며, 이러한 상황에서 본원발명의 일 실시예에 따른 가상 CPU를 제어하는 방법이 수행될 수 있다.
도 5는 본 발명의 일 실시예에 따른 물리적 서버와 가상 서버간의 CPU 공유 관계를 나타내는 스키마 테이블을 설명하기 위한 도면이다. 도5를 참조하면, 본 발명의 일 실시예에 따른 스키마 테이블은 물리적 코어, 가상 서버명, 가상 코어, 물리적 코어를 공유하고 있는 가상 코어의 수 및 SLA의 신청 여부 정보를 포함할 수 있으나, 이에 제한되지 않는다.
도 5를 참조하면, 스키마 테이블은 물리적 코어 별로 할당된 가상 코어 정보를 수집하며 저장할 수 있다. 예를 들어, 스키마 테이블을 참조하면 물리적 코어 3번은 VM(Virtual Machine)1의 가상 코어 3과 VM2의 가상 코어 1이 공유해서 CPU 자원을 사용하게 되는 것을 알 수 있다. 또한, 경합 여부를 판단하기 위해서 추가적으로 공유 수를 관리할 수 있으며, 공유하는 가상 코어의 개수가 2 이상인 물리적 코어에 대해서 이 후, CPU 제어를 수행할 수 있다. 또한 스키마 테이블을 구축할 때 청약 정보를 조회하여 해당 사용자의 SLA 신청 여부도 함께 구축하여 CPU제어의 필요여부를 판단할 수 있다.
다시 도 1로 돌아와서, 수집부(140)는, 기 설정된 시간 간격으로 가상 CPU의 사용률과 물리적 CPU의 사용률을 수집할 수 있다. 수집부(140)는 물리적 서버(300) 및 가상 서버(310, 320)에 설치된 에이전트(202, 312, 322)를 이용하여 물리적 CPU의 사용률 및 가상 CPU의 사용률을 수집할 수 있다. 에이전트(202)는 클라우드 서버 OS 내부에 설치될 수 있으며, 에이전트(312, 322)는 가상 서버 생성시 필요에 따라 미리 설치하여 이미지화 한 후 배포 설치할 수 있다.
수집부(140)는 물리적 서버의 CPU 코어 별로 사용률을 주기적으로 수집할 수 있으며, 가상서버의 가상 CPU의 사용률도 주기적으로 수집할 수 있다. 또한, 수집부(140)는 수집한 가상 서버의 가상 CPU의 사용률과 물리적 CPU의 사용률을 CPU 사용률 DB(142)에 저장할 수 있다.
제어부(150)는 입력부(100)에서 입력된 청약 정보, 수집부(140)에서 수집한 물리적 CPU 및 가상 CPU 사용률, 저장부(130)에 저장된 매핑 관계 및 임계치 입력부(160)에서 입력된 임계치 기준에 기초하여 가상 CPU의 제어 명령을 수행할 수 있다.
제어부(150)는 가상 서버의 CPU에 대해 제어 명령을 수행하며, 가상 서버의 CPU가 복수의 가상 코어를 가지는 경우, 가상 코어 각각에 대해서 제어 명령를 수행할 수 있다.
제어부(150)는 수집부(140)에서 수집한 물리적 CPU의 사용률이 설정된 임계치 기준을 만족하는 경우 해당 물리적 CPU와 매핑되어 저장된 적어도 2개 이상의 가상 CPU 중 적어도 하나 이상을 제어할 수 있다.
임계치 기준은 물리적 CPU의 최대 사용률 및 유지 시간을 포함할 수 있다. 예를 들어 퍼블릭(public) 클라우드 시스템인 경우는 90%, 5분으로 설정하거나, 특정 사용자의 프라이빗(private) 클라우드 서버인 경우에는 80% 1분 등으로 임계치 기준을 설정할 수 있으며, 이러한 경우, 해당 물리적 CPU 코어에 90%(또는 80%) 사용률을 5분(또는 1분) 이상 경합 사용률이 발생하면 제어부(150)가 가상 CPU의 제어를 수행할 수 있다.
제어부(150)의 동작을 상술한 도 5를 예로 들어 설명하도록 한다. 제어부(150)는 물리적 코어 3가 임계치 기준 (예) 90%이상 5분 이상 지속)을 만족하는 경우 해당 물리적 코어 3를 사용하는 VM1 코어 3과 VM2 코어 1에 대해서 각각 SLA 수준 레벨을 확인 한 후 해당 가상 코어에 다음과 같은 방법으로 CPU제어 명령어를 수행할 수 있다.
제어 명령어의 종류는 크게 2가지로 CPU 자원을 우선적으로 제공하는 방법과 CPU자원을 비 우선적(CPU 자원을 일부 양보)으로 제공하는 방법을 포함할 수 있다. 우선적으로 CPU자원을 사용하는 방법으로는 해당 CPU 코어에 가중치(weight)를 추가적으로 할당하여 경합 발생시 우선적 더 많은 CPU 자원을 사용할 수 있도록 제어 처리하는 하는 방법이다. 예들 들어서 weight=512를 할당하면 기본 256 대비 2배로 CPU 자원을 더 사용하여 작업을 수행할 수 있다. 비 우선적인 방법으로는 해당 가상 서버 CPU 코어에 제한(capping)을 부여하여 전체 수행 대비 제한(capping)한 비율로만 CPU 자원을 사용하도록 할 수 있다. 예를 들어서 cap=80이면 전체 CPU 자원에 80% 만 사용할 수 있다.
제어부(150)는 수집한 물리적 CPU의 사용량을 이용하여 물리적 CPU의 기 설정된 시간 동안의 평균 사용률을 계산하고,
평균 사용률과 임계치 기준을 비교하여 평균 사용률이 임계치 기준을 만족하는지 판단할 수 있다. 제어부(150)는 물리적 CPU의 평균 사용률이 임계치 기준을 만족하는 경우, 물리적 CPU와 매핑된 가상 CPU 및 가상 CPU의 CPU 우선 적용의 설정 여부를 조회하고, CPU 우선 적용의 설정 여부에 기초하여 가상 CPU를 제어할 수 있다.
물리적 CPU와 매핑된 복수의 가상 CPU의 SLA에 설정 여부는 a) 특정 물리적(physical) CPU 코어를 공유하는 가상 서버 모두 SLA를 신청하는 경우, b) 일부 가상서버만 SLA를 신청하는 경우, c) 모든 가상서버가 SLA를 신청하지 않는 경우 일 때로 구분될 수 있다. 제어부(150)는 경합이 발생하는 특정 물리적 CPU 코어에 매핑된 가상 CPU가 모두 SLA를 신청한 경우(a) 별도의 제어 없이 리턴할 수 있다. (b)나 (c) 경우의 가상 CPU 자원에 대해서 SLA를 신청한 가상서버는 CPU 자원을 많이 사용할 수 있도록 가중치를 통한 우선순위를 적용할 수 있다. 또한, 우선순위가 미적용된 가상 서버인 경우에는 제한(capping) 기능을 활용하여 일부 자원만 활용할 수 있도록 제한할 수 있다. 이하에서는 도 6 및 도 7을 참조하여, 제어부(150)의 동작에 대해 보다 상세히 설명하도록 한다.
도 6은 본 발명의 일 실시예에 따른 가중치 할당 및 CPU 제한에 따른 가상 CPU 제어를 설명하기 위한 도면이다. 도 6을 참조하면, 하나의 물리적 서버에 8개의 가상서버가 표에 기재된 가상서버 스펙으로 운용중에 있을 때 가중치(weight) 및 캡(cap) 값에 따라 CPU 자원을 사용할 수 있는 우선순위 할당이 결정될 수 있다.
가중치(Weight) 값이 높을수록 가상 코어가 우선적으로 할당될 수 있으며, 가중치(Weight) 기본 값은 물리적 코어가 2.98Ghz인 경우 VM1~VM4까지는 256*2Ghz(할당) / 2.98Ghz (physical) = 172이고 VM5~VM8 까지는 256*1Ghz(할당) / 2.98Ghz (physical) = 86이며 경합 발생시 weight 값이 높은 가상 서버에 자원을 더 할당한다.
캡(Cap) 값은 전체 CPU 자원 대비 사용할 수 있는 비율로 0 값은 무한대이고 그 외는 해당 비율만큼 CPU 자원을 사용할 수 있다. 예컨대, VM2인 경우 제한을 부여하면 2Ghz(할당) / 2.98Ghz(physical) = 0.68로 총 CPU 자원 중 68%만 사용 가능할 수 있다. 또한, 4코어인 VM4인 경우는 0.68/4 = 0.17로 코어당 17%만 사용 가능할 수 있다.
도 7은 본 발명의 일 실시예에 따른 가상 CPU의 제어 수행 결과를 설명하기 위한 도면이다. 도 7의 (a)를 참조하면, 가상화 환경에서 하나의 물리적 서버에 4개의 가상서버가 운용 중에 있고 각각의 가상 CPU 사용률이 100%를 지속적으로 사용 중인 경우를 도시하고 있다. 제어부(150)는 가상 서버의 SLA 기준을 참조하여 예컨대, 가상 서버 44095VM과 44096VM가 CPU 자원 비우선 적용을 설정한 경우 44095VM과 44096VM에 대해 CPU capping을 수행할 수 있다. 도 7의 (b)를 참조하면, 제어부(150)가 실시간으로 CPU 자원을 제한하여 해당 가상 서버가 사용하는 실제 물리적 CPU 사용자원을 최소화하고 나머지 가상서버(44085VM, 44094VM)에 대해서는 좀 더 많은 CPU 자원을 사용하여 처리할 수 있다.
다시 도 1로 돌아와서, 제어 이력 DB(152)는 제어부(150)에 의해 수행된 가상 CPU의 제어 이력을 저장할 수 있다.
임계치 입력부(160)는 운영자 또는 사용자로부터 임계치 기준을 입력받을 수 있다. 임계치 기준은 물리적 CPU의 최대 사용률 및 유지 시간을 포함할 수 있으며, 예를 들어 퍼블릭(public) 클라우드 시스템인 경우는 90%, 5분으로 설정하거나, 특정 사용자의 프라이빗(private) 클라우드 서버인 경우에는 80% 1분 등으로 임계치 기준을 설정할 수 있다. 임계치 DB(162)는 임계치 기준을 저장할 수 있다.
도 8은 본 발명의 일 실시예에 따른 가상 CPU를 제어하는 과정을 설명하기 위한 흐름도이다. 도 8을 참조하면, 입력부는 사용자로부터 가상서버의 사양과 SLA 관련 정보를 입력 받아(S801) 청약DB에 사용자 별로 관리한다(S802). 생성부는 입력 받은 청약 정보에 기초하여 물리적 CPU를 할당하여 가상서버를 생성한다(S803). 이 때 생성부는 물리적 CPU당 SLA 조건이 균등하게 분포될 수 있도록 가상 서버를 생성할 수 있다.
이 후 수집부는 물리적 CPU의 사용률을 수집한다(S804). 수집부는 신규로 생성된 가상서버를 포함하여 전체 클라우드 물리적 시스템과 가상 서버의 가상 CPU사용률도 주기적으로 수집할 수 있다. 저장부는 물리적 CPU와 가상 CPU의 매핑 관계를 매핑 DB에 저장한다(S805). 저장부는 물리적 CPU와 가상 CPU의 매핑관계를 주기적으로 보관 관리하며, 이 데이터는 물리적 CPU에 경합이 발생하여 제어가 필요한 조건이 발생하는 경우 가상 서버의 CPU 제어를 수행 시 이용될 수 있다.
임계치 입력부는 임계지 기준을 사용자 또는 운용자로부터 입력받거나 또는 임계치 DB에 기 저장되어 있는 임계치 기준을 로딩할 수 있다(S806). 임계치 기준은 CPU 경합 여부를 판단하는데 이용될 수 있다.
제어부는 CPU의 사용률 및 임계치 기준을 기초로 일정 시간 간격마다 CPU 경합이 발생하는지 확인한다(S807). 제어부는 예컨대 물리적 CPU 단위의 임계치 정보를 로딩하고, 또한 주기적으로 일정 시간대 평균 CPU 사용률을 계산하여 두 값을 비교할 수 있다.
제어부가 CPU 발생 여부를 판단한 결과(S808), 물리적 CPU의 사용률이 임계치 기준을 만족하는 경우, 제어부는 해당 물리적 CPU 코어 번호를 리턴하고(S810), 해당 물리적 CPU 코어에 매핑된 가상 코어 및 가상 서버의 SLA 신청 여부를 함께 추출한다(S811).
제어부는 SLA 신청 여부를 확인하여(S812), 매핑된 모든 가상 서버가 CPU 우선 적용을 설정한 경우 별도의 제어 없이 리턴하고(S813), 일부 가상 서버가 우선 적용을 설정하거나 또는 모든 가상 서버가 SLA를 우선 적용을 설정하지 않은 경우, 우선 적용을 설정한 가상 서버에 가중치를 할당하거나(S814) 비우선 적용을 설정한 가상 서버에 제한을 부여함으로써(S815) 가상 서버를 제어할 수 있다. 제어 이력DB는 제어부의 가상 서버 제어 이력을 저장한다(S816).
다시 단계 S808로 돌아가서, 제어부가 CPU 경합 여부를 확인한 결과, 물리적 CPU의 사용률이 임계치 기준을 만족하지 않는 경우는 모든 CPU 자원이 경합 없이 잘 운용되는 환경이다. 이런 조건을 일정 기간 동안 유지 될 경우 기존에 CPU 제어가 적용된 가상 CPU 코어가 있는 경우 원상 복구를 수행한다(S820). 구체적으로, 제어 이력 DB에 저장되어 있는 CPU 제어 이력 데이터를 조회한 후 해당 가상 코어에 대해서 가중치(weight)나 캡(cap) 적용 내용을 원상 복구 한다(S821, S822).
상술한 설명에서, 단계 S801 내지 S822은 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다.
도 8에서 설명한 본 발명의 일 실시예에 따른 가상 CPU를 제어하는 방법은 컴퓨터에 의해 실행되는 매체에 저장된 프로그램 또는 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 가상 CPU 제어 장치
110: 입력부
120: 생성부
130: 저장부
140: 수집부
150: 제어부
160: 임계치 입력부
110: 입력부
120: 생성부
130: 저장부
140: 수집부
150: 제어부
160: 임계치 입력부
Claims (20)
- 가상 CPU를 제어하는 장치에 있어서,
가상 서버의 사양 및 SLA(Service Level Agreement)를 포함하는 청약 정보를 입력 받는 입력부;
상기 청약 정보에 기초하여 물리적 CPU(Central Processing Unit)를 할당하여 상기 가상 서버를 생성하는 생성부;
상기 가상 서버의 가상 CPU와 상기 가상 서버에 할당된 물리적 CPU의 매핑 관계를 저장하는 저장부;
기 설정된 시간 간격으로 상기 가상 CPU의 사용률과 상기 물리적 CPU의 사용률을 수집하는 수집부; 및
상기 물리적 CPU의 사용률이 기 설정된 임계치 기준을 만족하는 경우 상기 물리적 CPU와 매핑되어 저장된 적어도 2개 이상의 가상 CPU 중 적어도 하나를 제어하는 제어부를 포함하되,
상기 SLA는 CPU 우선 적용의 설정 여부를 포함하고,
상기 제어부는 CPU 우선 적용을 설정한 가상 CPU에 가중치를 할당하거나 또는 CPU 우선 적용을 설정하지 않은 가상 CPU에 제한(Capping)을 부여함으로써 상기 적어도 2개 이상의 가상 CPU의 사용량을 조절하는 것인, 가상 CPU 제어 장치.
- 제 1 항에 있어서,
상기 생성부는, 상기 SLA에 기초하여, 상기 CPU 우선 적용을 설정한 가상 CPU와 상기 CPU 우선 적용을 설정하지 않은 가상 CPU가 상기 물리적 CPU에 균등하게 매핑될 수 있도록 물리적 CPU를 할당하는 것인, 가상 CPU 제어 장치.
- 제 1 항에 있어서,
상기 물리적 CPU는 하나 이상의 물리적 CPU 코어를 포함하고, 상기 가상 CPU는 하나 이상의 가상 CPU 코어를 포함하고,
상기 저장부는 상기 물리적 CPU 코어와 상기 가상 CPU 코어간의 매핑 관계를 스키마 테이블에 저장하는 것인, 가상 CPU 제어 장치.
- 제 3 항에 있어서,
상기 제어부는 상기 가상 CPU 코어 각각에 대하여 CPU 사용량을 조절하는 것인, 가상 CPU 제어 장치.
- 제 1 항에 있어서,
상기 제어부는, 상기 물리적 CPU의 기 설정된 시간 동안의 평균 사용률을 계산하고, 상기 평균 사용률과 상기 임계치 기준을 비교하고, 상기 평균 사용률이 상기 임계치 기준을 만족하는 경우 상기 물리적 CPU와 매핑된 상기 가상 CPU 및 상기 가상 CPU의 CPU 우선 적용의 설정 여부를 조회하고, 상기 CPU 우선 적용의 설정 여부에 기초하여 상기 가상 CPU를 제어하는 것인, 가상 CPU 제어 장치.
- 제 1 항에 있어서,
상기 수집부는 물리적 서버 및 상기 가상 서버에 설치된 에이전트(agent)를 이용하여 상기 물리적 CPU의 사용률 및 상기 가상 CPU의 사용률을 수집하는 것인, 가상 CPU 제어 장치.
- 제 1 항에 있어서,
상기 임계치 기준은 상기 물리적 CPU의 최대 사용률 및 유지 시간을 포함하는 것인, 가상 CPU 제어 장치
- 제 1 항에 있어서,
상기 제어부는 상기 적어도 2개 이상의 가상 CPU가 모두 상기 CPU 우선 적용을 설정한 경우 가상 CPU를 제어하지 않는 것인, 가상 CPU 제어 장치
- 제 1 항에 있어서,
상기 제어부는 상기 가상 CPU 및 물리적 CPU의 사용률, 상기 임계치 기준, 상기 SLA, 및 상기 가상 CPU와 상기 물리적 CPU의 매핑 정보에 기초하여 상기 가상 CPU를 제어하는 것인, 가상 CPU 제어 장치.
- 제 1 항에 있어서,
상기 임계치 기준을 입력받는 임계치 입력부;
상기 임계치 기준을 저장하는 임계치 저장부; 및
상기 가상 CPU의 제어 이력을 저장하는 제어 이력 저장부
를 더 포함하는 것인, 가상 CPU 제어 장치
- 가상 CPU를 제어하는 방법에 있어서,
가상 서버의 사양 및 SLA(Service Level Agreement)를 포함하는 청약 정보를 입력 받는 단계;
상기 청약 정보에 기초하여 물리적 CPU(Central Processing Unit)를 할당하여 상기 가상 서버를 생성하는 단계;
상기 가상 서버의 가상 CPU와 상기 가상 서버에 할당된 물리적 CPU의 매핑 관계를 저장하는 단계;
기 설정된 시간 간격으로 상기 가상 CPU의 사용률과 상기 물리적 CPU의 사용률을 수집하는 단계; 및
상기 물리적 CPU의 사용률이 기 설정된 임계치 기준을 만족하는 경우 상기 물리적 CPU와 매핑되어 저장된 적어도 2개 이상의 가상 CPU 중 적어도 하나를 제어하는 단계를 포함하되,
상기 SLA는 CPU 우선 적용의 설정 여부를 포함하고,
상기 제어하는 단계는 CPU 우선 적용을 설정한 가상 CPU에 가중치를 할당하거나 또는 CPU 우선 적용을 설정하지 않은 가상 CPU에 제한(Capping) 을 부여함으로써 상기 적어도 2개 이상의 가상 CPU의 사용량을 조절하는 것인, 가상 CPU 제어 방법.
- 제 10 항에 있어서,
상기 생성하는 단계는 상기 SLA에 기초하여, 상기 CPU 우선 적용을 설정한 가상 CPU와 상기 CPU 우선 적용을 설정하지 않은 가상 CPU가 상기 물리적 CPU에 균등하게 매핑될 수 있도록 물리적 CPU를 할당하는 것인, 가상 CPU 제어 방법.
- 제 10 항에 있어서,
상기 물리적 CPU는 하나 이상의 물리적 CPU 코어를 포함하고, 상기 가상 CPU는 하나 이상의 가상 CPU 코어를 포함하고,
상기 저장하는 단계는 상기 물리적 CPU 코어와 상기 가상 CPU 코어간의 매핑 관계를 스키마 테이블에 저장하는 것인, 가상 CPU 제어 방법.
- 제 13 항에 있어서,
상기 제어하는 단계는 상기 가상 CPU 코어 각각에 대하여 CPU 사용량을 조절하는 것인, 가상 CPU 제어 장치.
- 제 10 항에 있어서,
상기 제어하는 단계는,
상기 물리적 CPU의 기 설정된 시간 동안의 평균 사용률을 계산하는 단계;
상기 평균 사용률과 상기 임계치 기준을 비교하는 단계;
상기 평균 사용률이 상기 임계치 기준을 만족하는 경우 상기 물리적 CPU와 매핑된 상기 가상 CPU 및 상기 가상 CPU의 CPU 우선 적용의 설정 여부를 조회하는 단계; 및
상기 CPU 우선 적용의 설정 여부에 기초하여 상기 가상 CPU를 제어하는 단계
를 포함하는 것인, 가상 CPU 제어 방법.
- 제 10 항에 있어서,
상기 수집하는 단계는 물리적 서버 및 상기 가상 서버에 설치된 에이전트(agent)를 이용하여 상기 물리적 CPU의 사용률 및 상기 가상 CPU의 사용률을 수집하는 것인, 가상 CPU 제어 방법.
- 제 10 항에 있어서,
상기 임계치 기준은 상기 물리적 CPU의 최대 사용률 및 유지 시간을 포함하는 것인, 가상 CPU 제어 방법.
- 제 10 항에 있어서,
상기 제어하는 단계는 상기 물리적 CPU와 매핑되어 저장된 상기 적어도 2개의 이상의 가상 CPU가 모두 상기 CPU 우선 적용을 설정한 경우 가상 CPU를 제어하지 않는 것인, 가상 CPU 제어 방법.
- 컴퓨팅 장치와 연동하여 가상 CPU를 제어하는 매체에 저장된 컴퓨터 프로그램으로서,
상기 컴퓨터 프로그램은 상기 컴퓨팅 장치에 의해 실행될 경우,
가상 서버의 사양 및 SLA(Service Level Agreement)를 포함하는 청약 정보를 입력 받고,
상기 청약 정보에 기초하여 물리적 CPU(Central Processing Unit)를 할당하여 상기 가상 서버를 생성하고,
상기 가상 서버의 가상 CPU와 상기 가상 서버에 할당된 물리적 CPU의 매핑 관계를 저장하고,
기 설정된 시간 간격으로 상기 가상 CPU의 사용률과 상기 물리적 CPU의 사용률을 수집하고,
상기 물리적 CPU의 사용률이 기 설정된 임계치 기준을 만족하는 경우 상기 물리적 CPU와 매핑되어 저장된 적어도 2개 이상의 가상 CPU 중 적어도 하나를 제어하도록 하는 명령어들의 시퀀스를 포함하는 컴퓨터 프로그램으로서,
상기 SLA는 CPU 우선 적용의 설정 여부를 포함하고,
상기 제어하는 단계는 CPU 우선 적용을 설정한 가상 CPU에 가중치를 할당하거나 또는 CPU 우선 적용을 설정하지 않은 가상 CPU에 제한(Capping) 을 부여함으로써 상기 적어도 2개 이상의 가상 CPU의 사용량을 조절하는 것인, 컴퓨터 프로그램.
- 제 19 항에 있어서,
상기 장치가,
상기 SLA에 기초하여, 상기 CPU 우선 적용을 설정한 가상 CPU와 상기 CPU 우선 적용을 설정하지 않은 가상 CPU가 상기 물리적 CPU에 균등하게 매핑될 수 있도록 물리적 CPU를 할당하는 것인, 컴퓨터 프로그램.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020150110738A KR20170017183A (ko) | 2015-08-05 | 2015-08-05 | 가상 cpu를 제어하는 장치, 방법 및 컴퓨터 프로그램 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020150110738A KR20170017183A (ko) | 2015-08-05 | 2015-08-05 | 가상 cpu를 제어하는 장치, 방법 및 컴퓨터 프로그램 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR20170017183A true KR20170017183A (ko) | 2017-02-15 |
Family
ID=58112156
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020150110738A Withdrawn KR20170017183A (ko) | 2015-08-05 | 2015-08-05 | 가상 cpu를 제어하는 장치, 방법 및 컴퓨터 프로그램 |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR20170017183A (ko) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20220037741A (ko) * | 2020-09-18 | 2022-03-25 | 한국전력공사 | 클라우드 환경에서 가상서버의 성능 최적화를 위한 장치 및 방법 |
| KR20240099743A (ko) * | 2022-12-22 | 2024-07-01 | 성균관대학교산학협력단 | 가상머신 운영 방법 및 장치 |
| CN121300915A (zh) * | 2025-12-11 | 2026-01-09 | 人工智能与数字经济广东省实验室(深圳) | 一种虚拟机的绑核策略确定方法、装置、设备及存储介质 |
-
2015
- 2015-08-05 KR KR1020150110738A patent/KR20170017183A/ko not_active Withdrawn
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20220037741A (ko) * | 2020-09-18 | 2022-03-25 | 한국전력공사 | 클라우드 환경에서 가상서버의 성능 최적화를 위한 장치 및 방법 |
| KR20240099743A (ko) * | 2022-12-22 | 2024-07-01 | 성균관대학교산학협력단 | 가상머신 운영 방법 및 장치 |
| CN121300915A (zh) * | 2025-12-11 | 2026-01-09 | 人工智能与数字经济广东省实验室(深圳) | 一种虚拟机的绑核策略确定方法、装置、设备及存储介质 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Zhani et al. | Vdc planner: Dynamic migration-aware virtual data center embedding for clouds | |
| US9183016B2 (en) | Adaptive task scheduling of Hadoop in a virtualized environment | |
| CN107534583B (zh) | 在管理节点中实现的方法和相关装置 | |
| US9304803B2 (en) | Cooperative application workload scheduling for a consolidated virtual environment | |
| Park et al. | Locality-aware dynamic VM reconfiguration on MapReduce clouds | |
| US20170371717A1 (en) | Resource management in cloud systems | |
| US20220035662A1 (en) | Scheduling workloads on a common set of resources by multiple schedulers operating independently | |
| US10630600B2 (en) | Adaptive network input-output control in virtual environments | |
| CN104252393A (zh) | 分布式计算机系统中的性能驱动的资源管理 | |
| Fan et al. | Simulated-annealing load balancing for resource allocation in cloud environments | |
| CN113302591A (zh) | 管理云计算平台的计算资源的方法及系统 | |
| AU2015361607A1 (en) | Resource management method, host, and endpoint | |
| JP2023102273A (ja) | トラフィック需要予測に基づく、クラウドネットワークスイッチにおける動的な帯域幅の割り当て | |
| Taherizadeh et al. | Auto-scaling applications in edge computing: Taxonomy and challenges | |
| US11803414B2 (en) | Diagonal autoscaling of serverless computing processes for reduced downtime | |
| Seth et al. | Dynamic threshold-based dynamic resource allocation using multiple VM migration for cloud computing systems | |
| Tonini et al. | Benefits of pod dimensioning with best-effort resources in bare metal cloud native deployments | |
| KR20170017183A (ko) | 가상 cpu를 제어하는 장치, 방법 및 컴퓨터 프로그램 | |
| US10956228B2 (en) | Task management using a virtual node | |
| Miraftabzadeh et al. | Efficient distributed algorithm for scheduling workload-aware jobs on multi-clouds | |
| Mann | A taxonomy for the virtual machine allocation problem | |
| Balla et al. | Estimating function completion time distribution in open source FaaS | |
| Kesavan et al. | Active coordination (act)-toward effectively managing virtualized multicore clouds | |
| Patil et al. | Resource allocation and scheduling in the cloud | |
| Keller et al. | Dynamic management of applications with constraints in virtualized data centres |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20150805 |
|
| PG1501 | Laying open of application | ||
| PC1203 | Withdrawal of no request for examination |