KR101848450B1 - 도커 기반의 매니코어 관리 방법 및 이를 수행하는 도커 기반의 매니코어 관리 장치 - Google Patents

도커 기반의 매니코어 관리 방법 및 이를 수행하는 도커 기반의 매니코어 관리 장치 Download PDF

Info

Publication number
KR101848450B1
KR101848450B1 KR1020170016236A KR20170016236A KR101848450B1 KR 101848450 B1 KR101848450 B1 KR 101848450B1 KR 1020170016236 A KR1020170016236 A KR 1020170016236A KR 20170016236 A KR20170016236 A KR 20170016236A KR 101848450 B1 KR101848450 B1 KR 101848450B1
Authority
KR
South Korea
Prior art keywords
docker
actual
cores
task
detacher
Prior art date
Application number
KR1020170016236A
Other languages
English (en)
Inventor
임성수
경주현
Original Assignee
국민대학교산학협력단
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 국민대학교산학협력단 filed Critical 국민대학교산학협력단
Priority to KR1020170016236A priority Critical patent/KR101848450B1/ko
Application granted granted Critical
Publication of KR101848450B1 publication Critical patent/KR101848450B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

도커 기반의 매니코어 관리 장치는 복수의 코어들에 관해 복수의 가상 파티셔닝 그룹들을 생성하는 코어 파티션부, 작업이 수신되면 상기 복수의 가상 파티셔닝 그룹들 중 상기 수신된 작업의 특성에 따른 가상 파티션을 도커(docker)로서 선택하는 도커 선택부 및 상기 선택된 도커의 가용 여부를 확인하여 상기 수신된 작업을 가용 가능한 실제 도커의 컨테이너에 할당하는 도커 튜너를 포함한다.

Description

도커 기반의 매니코어 관리 방법 및 이를 수행하는 도커 기반의 매니코어 관리 장치{METHOD FOR MANAGING MANY-CORE BASED ON DOCKER AND APPARATUS MANAGING THE SAME}
본 발명은 도커 기반의 매니코어 관리 기술에 관한 것으로, 보다 상세하게는, 누마(NUMA) 구조에 대응하도록 그룹화된 복수의 노드들을 도커의 컨테이너로 구성함으로써 성능을 향상시킬 수 있는 도커 기반의 매니코어 관리 방법 및 이를 수행하는 도커 기반의 매니코어 관리 장치에 관한 것이다.
운영체제(Operating System)는 단일 코어 또는 소수의 코어를 포함하는 프로그램 처리 장치(Processor)를 기준으로 개발되어 복수의 코어들을 포함하는 프로그램 처리 장치에서는 효율적으로 동작되지 않는다. 종래의 기술은 복수의 코어들이 동시에 동일한 자원을 요구하는 경우 자원에 대한 경쟁이 발생하고, 프로그램을 처리할 코어의 선택 및 스케줄링에 의한 성능저하가 발생하는 문제점이 있다.
한국공개특허 제10-2015-0090439호는 매니코어 시스템의 하이퍼바이저에서 스케줄링 하는 방법에 관한 것으로, 요구되는 코어의 개수의 크기 순으로 다수의 가상 머신을 정렬하는 과정, 크기 순으로 정렬된 다수의 가상 머신을 다수의 가상 머신 지도에 순차적으로 번갈아 배치하는 과정 및 각 가상 머신 지도에 배치된 가상 머신들로 이루어진 가상 머신 집합들을 타임 슬롯 단위로 실행하는 과정을 포함한다.
한국공개특허 제10-2014-0125893호는 가상화된 매니코어 서버의 작업분배 시스템과 그 방법 및 기록매체에 관한 것으로, 작업을 분석하여 작업의 정보를 생성하는 서비스 노드 및 이용 가능한 자원의 정보를 서비스 노드에 전달하는 복수의 컴퓨팅 노드를 포함하고, 서비스 노드는 작업의 정보 및 이용 가능한 자원의 정보를 이용하여 작업을 파티셔닝하고, 이용 가능한 자원의 정보를 이용하여 파티셔닝된 작업을 그루핑하여 복수의 잡을 생성하고, 생성된 복수의 잡을 이용 가능한 자원의 정보를 이용하여 복수의 컴퓨팅 노드로 분배한다.
한국공개특허 제10-2013-0033020호는 매니코어 시스템에서의 파티션 스케줄링 장치 및 방법에 관한 것으로, 파티션 스케줄링 이벤트를 관리하는 파티션 큐, 복수 개의 코어 각각의 하드웨어 정보를 저장하는 코어 맵을 포함하는 파티션 스케줄러 및 하드웨어 정보를 이용하여 파티션 스케줄링 이벤트에 대응하여 복수 개의 코어에 대한 파티션 스케줄링을 수행하는 파티션 매니져를 포함한다.
1. 한국공개특허 제10-2015-0090439호 (2015.08.06) 2. 한국공개특허 제10-2014-0125893호 (2014.10.30) 3. 한국공개특허 제10-2013-0033020호 (2013.04.03)
본 발명의 일 실시예는 누마(NUMA) 구조에 대응하도록 그룹화된 복수의 노드들을 도커의 컨테이너로 구성함으로써 성능을 향상시킬 수 있는 도커 기반의 매니코어 관리 방법 및 이를 수행하는 도커 기반의 매니코어 관리 장치를 제공하고자 한다.
본 발명의 일 실시예는 작업의 특성을 기초로 복수의 가상 파티셔닝 그룹들 중 효율적인 가상 파티션을 선택하여 도커를 구성할 수 있는 도커 기반의 매니코어 관리 방법 및 이를 수행하는 도커 기반의 매니코어 관리 장치를 제공하고자 한다.
본 발명의 일 실시예는 복수의 코어들이 메모리를 공유하는 경우 CPU 경쟁으로 인한 성능이 저하되는 것을 방지할 수 있는 도커 기반의 매니코어 관리 방법 및 이를 수행하는 도커 기반의 매니코어 관리 장치를 제공하고자 한다.
실시예들 중에서, 도커 기반의 매니코어 관리 장치는 복수의 코어들에 관해 복수의 가상 파티셔닝 그룹들을 생성하는 코어 파티션부, 작업이 수신되면 상기 복수의 가상 파티셔닝 그룹들 중 상기 수신된 작업의 특성에 따른 가상 파티션을 도커(docker)로서 선택하는 도커 선택부 및 상기 선택된 도커의 가용 여부를 확인하여 상기 수신된 작업을 가용 가능한 실제 도커의 컨테이너에 할당하는 도커 튜너를 포함한다.
일 실시예에서, 상기 도커 기반의 매니코어 관리 장치는 상기 실제 도커의 컨테이너의 할당이 해제되면 상기 복수의 가상 파티셔닝 그룹들 중 하나와 대응하도록 다른 실제 도커와의 병합을 시도하는 도커 조정부를 더 포함할 수 있다.
일 실시예에서, 상기 도커 조정부는 상기 실제 도커와 연관된 코어의 개수의 특정 배수에 해당하는 개수의 코어를 가지는 후보 실제 도커를 검출하고, 상기 후보 실제 도커의 작업량이 특정 기준 이상이면 상기 실제 도커를 상기 후보 실제 도커에 병합시킬 수 있다.
일 실시예에서, 상기 코어 파티션부는 상기 복수의 코어들이 누마(NUMA) 구조로 형성된 경우에는 상기 누마(NUMA) 구조에 대응하도록 상기 복수의 코어들을 그룹화하고, 상기 그룹화된 복수의 코어들의 조합을 통해 상기 복수의 가상 파티셔닝 그룹들을 생성할 수 있다.
일 실시예에서, 상기 도커 선택부는 상기 작업에 관한 기 수행된 작업속성, 워크로드, 사용가능한 코어 수 및 예상 작업량 중 적어도 하나를 기초로 상기 가상 파티션을 선택할 수 있다. 일 실시예에서, 상기 도커 선택부는 상기 작업의 기 수행된 작업속성을 분석하여 상기 작업의 리소스 사용 패턴이 CPU-바운드(CPU-Bound) 작업 또는 IO-바운드(IO-Bound) 작업 중 어디에 해당하는지를 기초로 상기 가상 파티션을 선택할 수 있다.
일 실시예에서, 상기 도커 튜너는 상기 실제 도커의 컨테이너에 할당된 작업이 완료되면 상기 실제 도커를 해제할 수 있다. 일 실시예에서, 상기 도커 튜너는 상기 실제 도커의 컨테이너의 할당이 해제되기 전에 상기 실제 도커로부터 상기 작업에 관한 작업속성을 수신하여 기록할 수 있다.
일 실시예에서, 상기 도커 기반의 매니코어 관리 장치는 상기 실제 도커의 컨테이너를 활용하여 아파치 스파크를 분산 처리 시스템으로 에뮬레이션할 수 있다.
실시예들 중에서, 도커 기반의 매니코어 관리 방법은 도커 기반의 매니코어 관리 장치에서 수행된다. 상기 방법은 (a) 복수의 코어들에 관해 복수의 가상 파티셔닝 그룹들을 생성하는 단계, (b) 작업이 수신되면 상기 복수의 가상 파티셔닝 그룹들 중 상기 수신된 작업의 특성에 따른 가상 파티션을 도커(docker)로서 선택하는 단계 및 (c) 상기 선택된 도커의 가용 여부를 확인하여 상기 수신된 작업을 가용 가능한 실제 도커의 컨테이너에 할당하는 단계를 포함한다.
일 실시예예서, 상기 도커 기반의 매니코어 관리 방법은 (d) 상기 실제 도커의 컨테이너의 할당이 해제되면 상기 복수의 가상 파티셔닝 그룹들 중 하나와 대응하도록 다른 실제 도커와의 병합을 시도하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 (d) 단계는 상기 실제 도커와 연관된 코어의 개수의 특정 배수에 해당하는 개수의 코어를 가지는 후보 실제 도커를 검출하고, 상기 후보 실제 도커의 작업량이 특정 기준 이상이면 상기 실제 도커를 상기 후보 실제 도커에 병합시키는 단계를 포함할 수 있다.
일 실시예예서, 상기 (a) 단계는 상기 복수의 코어들이 누마(NUMA) 구조로 형성된 경우에는 상기 누마(NUMA) 구조에 대응하도록 상기 복수의 코어들을 그룹화하고, 상기 그룹화된 복수의 코어들의 조합을 통해 상기 복수의 가상 파티셔닝 그룹들을 생성하는 단계를 포함할 수 있다.
일 실시예에서, 상기 (b) 단계는 상기 작업에 관한 기 수행된 작업속성, 워크로드, 사용가능한 코어 수 및 예상 작업량 중 적어도 하나를 기초로 상기 가상 파티션을 선택하는 단계를 포함할 수 있다.
일 실시예에서, 상기 (b) 단계는 상기 작업의 기 수행된 작업속성을 분석하여 상기 작업의 리소스 사용 패턴이 CPU-바운드(CPU-Bound) 작업 또는 IO-바운드(IO-Bound) 작업 중 어디에 해당하는지를 기초로 상기 가상 파티션을 선택하는 단계를 포함할 수 있다.
일 실시예예서, 상기 (c) 단계는 상기 실제 도커의 컨테이너에 할당된 작업이 완료되면 상기 실제 도커를 해제하는 단계 및 상기 실제 도커의 컨테이너의 할당이 해제되기 전에 상기 실제 도커로부터 상기 작업에 관한 작업속성을 수신하여 기록하는 단계를 포함할 수 있다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
본 발명의 일 실시예에 따른 도커 기반의 매니코어 관리 방법 및 이를 수행하는 도커 기반의 매니코어 관리 장치는 누마(NUMA) 구조에 대응하도록 그룹화된 복수의 노드들을 도커의 컨테이너로 구성함으로써 성능을 향상시킬 수 있다.
본 발명의 일 실시예에 따른 도커 기반의 매니코어 관리 방법 및 이를 수행하는 도커 기반의 매니코어 관리 장치는 작업의 특성을 기초로 복수의 가상 파티셔닝 그룹들 중 효율적인 가상 파티션을 선택하여 도커를 구성할 수 있다.
본 발명의 일 실시예에 따른 도커 기반의 매니코어 관리 방법 및 이를 수행하는 도커 기반의 매니코어 관리 장치는 복수의 코어들이 메모리를 공유하는 경우 CPU 경쟁으로 인한 성능이 저하되는 것을 방지할 수 있다.
도 1은 본 발명의 일 실시예에 따른 도커 기반의 매니코어 관리 장치를 설명하는 도면이다.
도 2는 누마(NUMA) 구조에 대한 예시를 설명하는 도면이다.
도 3은 도 1에 있는 도커 기반의 매니코어 장치에서 수행되는 도커 기반의 매니코어 관리 방법을 설명하는 순서도이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도 1은 본 발명의 일 실시예에 따른 도커 기반의 매니코어 관리 장치를 설명하는 도면이다.
도 1을 참조하면, 도커 기반의 매니코어 관리 장치(100)는 코어 파티션부(110), 도커 선택부(120), 도커 튜너(130), 도커 조정부(140) 및 제어부(150)를 포함한다.
도커 기반의 매니코어 관리 장치(100)는 애플리케이션 계층(Application Layer)에서 복수의 코어들이 작은 그룹의 메모리를 공유하는 경우, CPU(Central Processing Unit) 경쟁으로 인한 성능저하를 최소화할 수 있다. 일 실시예에서, 도커 기반의 매니코어 관리 장치(100)는 복수의 코어들을 파티셔닝하여 도커를 생성할 수 있고, 생성된 도커의 컨테이너를 통해 작업을 병렬로 처리하여 성능을 향상시킬 수 있다. 또한, 도커 기반의 매니코어 관리 장치(100)는 실제 도커의 컨테이너를 활용하여 아파치 스파크를 분산 시스템으로 에뮬레이션할 수 있다.
이하, 도커 기반의 매니코어 관리 장치(100)를 설명한다.
코어 파티션부(110)는 복수의 코어들에 관해 복수의 가상 파티셔닝 그룹들을 생성할 수 있고, 복수의 가상 파티셔닝 그룹들은 작업이 할당되지 않은 복수의 가상 파티션들을 포함할 수 있다. 여기에서, 복수의 가상 파티션들은 분석 시스템의 워커들로 사용할 수 있고, 각각의 워커의 동적 램(DRAM, Dynamic Random-access Memory)에 분리되어 저장된다.
동적 램(DRAM, Dynamic Random-access Memory)은 노드 별로 가까운 CPU를 저장한다. 동적 램(DRAM)은 매니코어 환경에서 도커 기반의 성능 분석을 위해 복수의 가상 파티셔닝 그룹별로 메모리를 제공하며 가상 파티션들을 저장하고, 일시적 또는 영구적으로 컴퓨터를 판독할 수 있는 기록매체에 해당한다.
코어 파티션부(110)는 복수의 코어들이 누마(NUMA) 구조로 형성된 경우에는 누마 구조에 대응하도록 복수의 코어들을 그룹화할 수 있고, 그룹화된 복수의 코어들의 조합을 통해 복수의 가상 파티셔닝 그룹들을 생성할 수 있다. 여기에서, 누마(NUMA, Non-Uniform Memory Access) 구조는 불균일 기억 장치 접근 구조로 메모리에 접근하는 시간이 메모리(Memory)와 프로세스(Process) 간의 상대적인 위치에 따라 달라지는 구조를 말한다. 따라서, 누마(NUMA) 구조는 CPU의 어느 메모리에 접근하는가에 따라 성능차이가 발생할 수 있다. 이하, 누마(NUMA) 구조에 관한 보다 상세한 설명은 도 2를 참조하여 설명한다.
일 실시예에서, 코어 파티션부(110)는 복수의 코어들의 수에 따라 파티셔닝(Partitioning)을 수행하여 복수의 가상 파티셔닝 그룹들을 생성할 수 있다. 예를 들어, 코어 파티션부(110)는 코어 수가 30개이면 코어 5개씩 6개의 가상 파티셔닝 그룹들, 코어 10개씩 3개의 가상 파티셔닝 그룹들 및 코어 15개씩 2개의 가상 파티셔닝 그룹들로 파티셔닝을 수행할 수 있다.
도커 선택부(120)는 작업이 수신되면 복수의 가상 파티셔닝 그룹들 중 수신된 작업의 특성에 따른 가상 파티션을 도커(Docker)로서 선택할 수 있다. 도커 선택부(120)는 작업에 관한 기 수행된 작업속성, 워크로드(Workload), 사용가능한 코어 수 및 예상 작업량 중 적어도 하나를 기초로 가상 파티션을 선택할 수 있다. 예를 들어, 도커 선택부(120)는 작업의 특성들을 기초로 복수의 가상 파티셔닝 그룹들에 대한 성능을 반복적으로 측정할 수 있고, 측정된 성능결과에 따라 각각의 가상 파티셔닝 그룹에 효율적인 작업의 특성을 선택할 수 있다.
도커 선택부(120)는 작업에 관한 기 수행된 작업속성을 분석하여 작업의 리소스 사용 패턴을 확인할 수 있다. 도커 선택부(120)는 확인된 리소스 사용 패턴이 CPU-바운드(CPU-Bound) 작업 또는 IO-바운드(IO-Bound) 작업 중 어디에 해당하는지를 기초로 가상 파티션을 선택할 수 있다. 여기에서, CPU-바운드는 전체 CPU 할당량을 사용하고, IO-바운드는 전체 CPU 할당량을 사용하지 않는다. 일 실시예에서, 도커 선택부(120)는 CPU-바운드 작업이 많으면 IO-바운드 작업을 전달할 수 있고, IO-바운드 작업이 많으면 CPU-바운드 작업을 전달할 수 있다. 즉, 도커 선택부(120)는 작업에 관한 기 수행된 작업속성을 분석하여 작업의 리소스 사용 패턴을 확인함으로써 컴퓨터 자원(예를 들어, 메모리)을 효율적으로 사용할 수 있다.
도커 튜너(130)는 선택된 도커의 가용 여부를 확인하여 수신된 작업을 가용 가능한 실제 도커의 컨테이너에 할당할 수 있다. 보다 구체적으로, 도커 튜너(130)는 가용 여부 결과에 따라 선택된 도커를 실제 도커로 선택할 수 있고, 실제 도커의 컨테이너를 할당하고 해제할 수 있다.
일 실시예에서, 도커 튜너(130)는 현재 사용가능한 코어의 수를 기초로 선택된 도커의 가용 여부를 확인할 수 있다. 예를 들어, 도커 튜너(130)는 코어가 10개씩 그룹화된 도커를 선택하는 경우, 가용 가능한 실제 도커들 중에서 10개씩 그룹화된 도커가 없으면 수신된 작업을 할당할 수 없을 수도 있다. 다른 예를 들어, 도커 튜너(130)는 코어가 10개씩 그룹화된 도커를 선택하는 경우, 5개씩 그룹화된 2개의 도커를 선택하여 수신된 작업을 할당할 수도 있고, 15개씩 그룹화된 1개의 도커를 선택하여 수신된 작업을 할당할 수도 있다.
도커 튜너(130)는 실제 도커의 컨테이너에 할당된 작업이 완료되면 실제 도커를 해제할 수 있다. 여기에서, 해제된 실제 도커는 다음 작업을 할당 받기 위해 도커로 전환될 수 있고, 다른 실제 도커와의 병합을 위해 사용될 수 있다.
도커 튜너(130)는 실제 도커의 컨테이너의 할당이 해제되기 전에 실제 도커로부터 작업에 관한 작업속성을 수신하여 기록할 수 있다. 일 실시예에서, 도커 튜너(130)는 해당 작업의 기록된 작업속성을 도커 선택부(120)로 전달할 수 있고, 도커 선택부(120)는 다음 작업부터 전달받은 작업속성을 작업의 특성에 반영하여 가상 파티션을 선택할 수 있다.
도커 조정부(140)는 실제 도커의 컨테이너의 할당이 해제되면 복수의 가상 파티셔닝 그룹들 중 하나와 대응하도록 다른 실제 도커와의 병합을 시도할 수 있다. 도커 조정부(140)는 다른 실제 도커의 성능을 향상시키기 위해 해제된 실제 도커를 병합할 수 있다. 예를 들어, 도커 조정부(140)는 작업이 할당된 제1 및 제2 실제 도커의 컨테이너들 중 작업이 완료되어 제1 실제 도커의 컨테이너 할당이 해제되면 동적으로 제2 실제 도커와의 병합을 시도할 수 있다.
도커 조정부(140)는 실제 도커와 연관된 코어의 개수의 특정 배수에 해당하는 개수의 코어를 가지는 후보 실제 도커를 검출할 수 있고, 특정 배수는 1도 포함한다. 일 실시예에서, 도커 조정부(140)는 실제 도커와 연관된 5개의 코어의 특정 배수, 2배수에 해당하는 10개의 코어를 가지는 후보 실제 도커를 검출할 수 있다.
도커 조정부(140)는 후보 실제 도커의 작업량이 특정 기준 이상이면 실제 도커를 후보 실제 도커에 병합시킬 수 있다. 여기에서, 특정 기준은 후보 실제 도커의 평균 작업량 및 평균 작업시간 등을 기초로 결정될 수 있다. 예를 들어, 도커 조정부(140)는 후보 실제 도커의 평균 작업량이 7개이지만 후보 실제 도커의 작업량이 12개이면 실제 도커를 후보 실제 도커에 병합시킬 수 있다.
도커 기반의 매니코어 관리 장치(100)는 실제 도커와 후보 실제 도커와의 병합을 수행하여 작업수행 성능을 향상시킬 수 있다.
제어부(150)는 도커 기반의 매니코어 관리 장치(100)의 전체적인 동작을 제어하고, 코어 파티션부(110), 도커 선택부(120), 도커 튜너(130) 및 도커 조정부(140) 간의 제어 흐름 또는 데이터 흐름을 제어할 수 있다.
도 2는 누마(NUMA) 구조에 대한 예시를 설명하는 도면이다.
도 2를 참조하면, 누마 구조(200)는 복수의 CPU들이 5개씩 그룹화되어 총 6개의 클러스터(Cluster, 212, 214, 216, 218, 220, 222)를 포함한다.
코어 파티션부(110)는 CPU가 30개 있는 경우, 누마 구조에 대응하도록 복수의 CPU들을 그룹화(또는 클러스터)하고 그룹화된 복수의 CPU들의 조합을 통해 가상 파티셔닝 그룹들을 생성할 수 있다.
일 실시예에서, 코어 파티션부(110)는 CPU를 5개씩 그룹화하여 총 6개의 클러스터를 생성할 수 있다. 다른 일 실시예에서, 코어 파티션부(110)는 CPU를 10개씩 그룹화하여 총 3개의 클러스터를 생성할 수 있다. 또 다른 일 실시예에서, 코어 파티션부(110)는 CPU를 15개씩 그룹화하여 총 2개의 클러스터를 생성할 수 있다. 그룹핑되는 CPU의 수는 총 CPU의 수에 따라 변경되므로 이에 한정하지 않는다. 예를 들어, 코어 파티션부(110)는 총 2개의 가상 파티셔닝 그룹을 생성하고자 하는 경우에는 제1 내지 제3 클러스터(212, 214, 216)을 1개의 가상 파티셔닝 그룹으로 생성할 수 있고, 제4 내지 제6 클러스터(218, 220, 222)을 1개의 가상 파티셔닝 그룹으로 생성할 수 있다. 여기에서, 코어 파티션부(110)는 복수의 CPU들의 조합을 이에 한정하지 않는다. 즉, 코어 파티션부(110)는 복수의 CPU들의 다양한 조합을 통해 복수의 가상 파티셔닝 그룹들을 생성할 수 있다.
도 3은 도 1에 있는 도커 기반의 매니코어 장치에서 수행되는 도커 기반의 매니코어 관리 방법을 설명하는 순서도이다.
코어 파티션부(110)는 복수의 코어들에 관해 복수의 가상 파티셔닝 그룹들을 생성할 수 있다(단계 S310). 보다 구체적으로, 코어 파티션부(110)는 누마(NUMA) 구조에 대응하도록 복수의 코어들을 그룹화할 수 있고, 그룹화된 복수의 코어들의 조합을 통해 가상 파티셔닝 그룹들을 생성할 수 있다.
도커 선택부(120)는 작업이 수신되면 복수의 가상 파티셔닝 그룹들 중 수신된 작업의 특성에 따른 가상 파티션을 도커로서 선택할 수 있다(단계 S320). 여기에서, 작업 특성은 작업에 관한 기 수행된 작업속성, 워크로드, 사용가능한 코어 수 및 예상 작업량에 해당한다. 보다 구체적으로, 도커 선택부(120)는 작업의 기 수행된 작업속성을 분석하여 작업의 리소스 사용 패턴을 기초로 가장 효율적인 가상 파티션을 선택할 수 있다.
도커 튜너(130)는 선택된 도커의 가용 여부를 확인할 수 있고, 확인된 가용 여부에 따라 수신된 작업을 가용 가능한 실제 도커의 컨테이너에 할당할 수 있다(단계 S330). 보다 구체적으로, 도커 튜너(130)는 실제 도커로부터 할당된 작업에 관한 작업속성을 수신하여 기록할 수 있고, 기록된 작업속성을 도커 선택부(120)에 전달할 수 있다. 도커 튜너(130)는 실제 도커의 컨테이너에 할당된 작업이 완료되면 실제 도커를 해제할 수 있다.
도커 조정부(140)는 실제 도커의 컨테이너의 할당이 해제되면 복수의 가상 파티셔닝 그룹들 중 하나와 대응하도록 다른 실제 도커와의 병합을 시도할 수 있다(단계 S340). 즉, 도커 기반의 매니코어 관리 장치(100)는 실제 도커의 컨테이너를 활용하여 아파치 스파크를 분산 시스템으로 에뮬리에션(emulation)할 수 있다. 여기에서, 아파치 스파크(Apache Spark)는 메모리상에서 동작하는 확장성이 뛰어난 분산 데이터에 관한 분석기술에 해당한다. 예를 들어, 도커 조정부(140)는 작업이 할당된 제1 및 제2 실제 도커의 컨테이너들 중 작업이 완료되어 제1 실제 도커의 컨테이너 할당이 해제되면 동적으로 제1 실제 도커를 제2 실제 도커와 병합할 수 있고, 이때 제2 실제 도커는 효율적으로 작업을 처리하여 성능을 향상시킬 수 있다.
상기에서는 본 출원의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 통상의 기술자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 출원을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 도커 기반의 매니코어 관리 장치
110: 코어 파티션부
120: 도커 선택부
130: 도커 튜너
140: 도커 조정부
150: 제어부

Claims (16)

  1. 복수의 코어들에 관해 복수의 가상 파티셔닝 그룹들을 생성하는 코어 파티션부;
    작업이 수신되면 상기 복수의 가상 파티셔닝 그룹들 중 상기 수신된 작업의 특성에 따른 가상 파티션을 도커(docker)로서 선택하는 도커 선택부;
    상기 선택된 도커의 가용 여부를 확인하여 상기 수신된 작업을 가용 가능한 실제 도커의 컨테이너에 할당하는 도커 튜너; 및
    상기 실제 도커의 컨테이너의 할당이 해제되면 상기 복수의 가상 파티셔닝 그룹들 중 하나와 대응하도록 다른 실제 도커와의 병합을 시도하는 도커 조정부를 포함하는 도커 기반의 매니코어 관리 장치.
  2. 삭제
  3. 제1항에 있어서, 상기 도커 조정부는
    상기 실제 도커와 연관된 코어의 개수의 특정 배수에 해당하는 개수의 코어를 가지는 후보 실제 도커를 검출하고, 상기 후보 실제 도커의 작업량이 특정 기준 이상이면 상기 실제 도커를 상기 후보 실제 도커에 병합시키는 것을 특징으로 하는 도커 기반의 매니코어 관리 장치.
  4. 제1항에 있어서, 상기 코어 파티션부는
    상기 복수의 코어들이 누마(NUMA) 구조로 형성된 경우에는 상기 누마(NUMA) 구조에 대응하도록 상기 복수의 코어들을 그룹화하고, 상기 그룹화된 복수의 코어들의 조합을 통해 상기 복수의 가상 파티셔닝 그룹들을 생성하는 것을 특징으로 하는 도커 기반의 매니코어 관리 장치.
  5. 제1항에 있어서, 상기 도커 선택부는
    상기 작업에 관한 기 수행된 작업속성, 워크로드, 사용가능한 코어 수 및 예상 작업량 중 적어도 하나를 기초로 상기 가상 파티션을 선택하는 것을 특징으로 하는 도커 기반의 매니코어 관리 장치.
  6. 제5항에 있어서, 상기 도커 선택부는
    상기 작업의 기 수행된 작업속성을 분석하여 상기 작업의 리소스 사용 패턴이 CPU-바운드(CPU-Bound) 작업 또는 IO-바운드(IO-Bound) 작업 중 어디에 해당하는지를 기초로 상기 가상 파티션을 선택하는 것을 특징으로 하는 도커 기반의 매니코어 관리 장치.
  7. 제1항에 있어서, 상기 도커 튜너는
    상기 실제 도커의 컨테이너에 할당된 작업이 완료되면 상기 실제 도커를 해제하는 것을 특징으로 하는 도커 기반의 매니코어 관리 장치.
  8. 제7항에 있어서, 상기 도커 튜너는
    상기 실제 도커의 컨테이너의 할당이 해제되기 전에 상기 실제 도커로부터 상기 작업에 관한 작업속성을 수신하여 기록하는 것을 특징으로 하는 도커 기반의 매니코어 관리 장치.
  9. 제1항에 있어서, 상기 도커 기반의 매니코어 관리 장치는
    상기 실제 도커의 컨테이너를 활용하여 아파치 스파크를 분산 처리 시스템으로 에뮬레이션하는 것을 특징으로 하는 도커 기반의 매니코어 관리 장치.
  10. 도커 기반의 매니코어 관리 장치에서 수행되는 도커 기반의 매니코어 관리 방법에 있어서,
    (a) 복수의 코어들에 관해 복수의 가상 파티셔닝 그룹들을 생성하는 단계;
    (b) 작업이 수신되면 상기 복수의 가상 파티셔닝 그룹들 중 상기 수신된 작업의 특성에 따른 가상 파티션을 도커(docker)로서 선택하는 단계;
    (c) 상기 선택된 도커의 가용 여부를 확인하여 상기 수신된 작업을 가용 가능한 실제 도커의 컨테이너에 할당하는 단계; 및
    (d) 상기 실제 도커의 컨테이너의 할당이 해제되면 상기 복수의 가상 파티셔닝 그룹들 중 하나와 대응하도록 다른 실제 도커와의 병합을 시도하는 단계를 포함하는 도커 기반의 매니코어 관리 방법.
  11. 삭제
  12. 제10항에 있어서, 상기 (d) 단계는
    상기 실제 도커와 연관된 코어의 개수의 특정 배수에 해당하는 개수의 코어를 가지는 후보 실제 도커를 검출하고, 상기 후보 실제 도커의 작업량이 특정 기준 이상이면 상기 실제 도커를 상기 후보 실제 도커에 병합시키는 단계를 포함하는 것을 특징으로 하는 도커 기반의 매니코어 관리 방법.
  13. 제10항에 있어서, 상기 (a) 단계는
    상기 복수의 코어들이 누마(NUMA) 구조로 형성된 경우에는 상기 누마(NUMA) 구조에 대응하도록 상기 복수의 코어들을 그룹화하고, 상기 그룹화된 복수의 코어들의 조합을 통해 상기 복수의 가상 파티셔닝 그룹들을 생성하는 단계를 포함하는 것을 특징으로 하는 도커 기반의 매니코어 관리 방법.
  14. 제10항에 있어서, 상기 (b) 단계는
    상기 작업에 관한 기 수행된 작업속성, 워크로드, 사용가능한 코어 수 및 예상 작업량 중 적어도 하나를 기초로 상기 가상 파티션을 선택하는 단계를 포함하는 것을 특징으로 하는 도커 기반의 매니코어 관리 방법.
  15. 제14항에 있어서, 상기 (b) 단계는
    상기 작업의 기 수행된 작업속성을 분석하여 상기 작업의 리소스 사용 패턴이 CPU-바운드(CPU-Bound) 작업 또는 IO-바운드(IO-Bound) 작업 중 어디에 해당하는지를 기초로 상기 가상 파티션을 선택하는 단계를 포함하는 것을 특징으로 하는 도커 기반의 매니코어 관리 방법.
  16. 제10항에 있어서, 상기 (c) 단계는
    상기 실제 도커의 컨테이너에 할당된 작업이 완료되면 상기 실제 도커를 해제하는 단계; 및
    상기 실제 도커의 컨테이너의 할당이 해제되기 전에 상기 실제 도커로부터 상기 작업에 관한 작업속성을 수신하여 기록하는 단계를 포함하는 것을 특징으로 하는 도커 기반의 매니코어 관리 방법.
KR1020170016236A 2017-02-06 2017-02-06 도커 기반의 매니코어 관리 방법 및 이를 수행하는 도커 기반의 매니코어 관리 장치 KR101848450B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170016236A KR101848450B1 (ko) 2017-02-06 2017-02-06 도커 기반의 매니코어 관리 방법 및 이를 수행하는 도커 기반의 매니코어 관리 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170016236A KR101848450B1 (ko) 2017-02-06 2017-02-06 도커 기반의 매니코어 관리 방법 및 이를 수행하는 도커 기반의 매니코어 관리 장치

Publications (1)

Publication Number Publication Date
KR101848450B1 true KR101848450B1 (ko) 2018-04-12

Family

ID=61969175

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170016236A KR101848450B1 (ko) 2017-02-06 2017-02-06 도커 기반의 매니코어 관리 방법 및 이를 수행하는 도커 기반의 매니코어 관리 장치

Country Status (1)

Country Link
KR (1) KR101848450B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109101342A (zh) * 2018-07-20 2018-12-28 北京百度网讯科技有限公司 分布式作业协调控制方法、装置、计算机设备及存储介质
CN109213561A (zh) * 2018-09-14 2019-01-15 珠海国芯云科技有限公司 基于容器的虚拟桌面的设备调度方法及装置
KR102032521B1 (ko) 2018-12-26 2019-10-15 래블업(주) 컨테이너 기반의 gpu 가상화 방법 및 시스템
KR102099118B1 (ko) 2019-04-29 2020-04-09 래블업(주) 사용자가 요청한 다수개의 라이브러리를 탑재한 세션 컨테이너 제공방법
CN113296928A (zh) * 2020-06-19 2021-08-24 阿里巴巴集团控股有限公司 一种处理器分配方法、装置、电子设备以及存储设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100990412B1 (ko) * 2009-10-29 2010-10-29 주식회사 팀스톤 씨피유 가상화를 지원할 수 있는 컴퓨터 서버

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100990412B1 (ko) * 2009-10-29 2010-10-29 주식회사 팀스톤 씨피유 가상화를 지원할 수 있는 컴퓨터 서버

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
박주원 외 1명. '사용자 맞춤형 분산 컴퓨팅을 위한 컨테이너 기반 클러스터 관리 시스템'. 정보과학회 컴퓨팅의 실제 논문지 제21권 제9호, 2015.09, pp.587-595.*

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109101342A (zh) * 2018-07-20 2018-12-28 北京百度网讯科技有限公司 分布式作业协调控制方法、装置、计算机设备及存储介质
CN109101342B (zh) * 2018-07-20 2020-07-10 北京百度网讯科技有限公司 分布式作业协调控制方法、装置、计算机设备及存储介质
CN109213561A (zh) * 2018-09-14 2019-01-15 珠海国芯云科技有限公司 基于容器的虚拟桌面的设备调度方法及装置
KR102032521B1 (ko) 2018-12-26 2019-10-15 래블업(주) 컨테이너 기반의 gpu 가상화 방법 및 시스템
KR102099118B1 (ko) 2019-04-29 2020-04-09 래블업(주) 사용자가 요청한 다수개의 라이브러리를 탑재한 세션 컨테이너 제공방법
CN113296928A (zh) * 2020-06-19 2021-08-24 阿里巴巴集团控股有限公司 一种处理器分配方法、装置、电子设备以及存储设备

Similar Documents

Publication Publication Date Title
KR101848450B1 (ko) 도커 기반의 매니코어 관리 방법 및 이를 수행하는 도커 기반의 매니코어 관리 장치
Grandl et al. Multi-resource packing for cluster schedulers
CN111344688B (zh) 云计算中资源提供的方法及系统
US9081621B2 (en) Efficient input/output-aware multi-processor virtual machine scheduling
US8185905B2 (en) Resource allocation in computing systems according to permissible flexibilities in the recommended resource requirements
US9875139B2 (en) Graphics processing unit controller, host system, and methods
US20150205625A1 (en) Simulation of high performance computing (hpc) application environment using virtual nodes
CN112052068A (zh) 一种Kubernetes容器平台CPU绑核的方法与装置
JP2008191949A (ja) マルチコアシステムおよびマルチコアシステムの負荷分散方法
Zhu et al. FPGA resource pooling in cloud computing
US8489700B2 (en) Analysis of nodal affinity behavior
CN112269656B (zh) 一种基于多核处理器的应用配置方法、装置和系统
KR102376477B1 (ko) 데이터 교환 메커니즘을 포함하는 전자 시스템 및 그것의 동작 방법
CN109669822A (zh) 电子装置、备用存储池的创建方法和计算机可读存储介质
US8006064B2 (en) Lock-free vector utilizing a resource allocator for assigning memory exclusively to a thread
US8296552B2 (en) Dynamically migrating channels
US11561824B2 (en) Embedded persistent queue
JP5178778B2 (ja) 仮想計算機およびcpu割り当て方法
KR20140137573A (ko) 데이터 분산 서비스 미들웨어의 쓰레드를 위한 메모리 관리 장치 및 방법
JP5969340B2 (ja) リソース管理システム、リソース管理方法及びリソース管理プログラム
CN116775266A (zh) 用于处理器中的线程组的可扩展负载均衡的技术
CN115292176A (zh) 一种压力测试方法、装置、设备及存储介质
US11182183B2 (en) Workload placement using conflict cost
US20080059778A1 (en) Determination Of Running Status Of Logical Processor
Monniot et al. StorAlloc: A Simulator for Job Scheduling on Heterogeneous Storage Resources

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant