KR20220100982A - 컨테이너 스케줄링 방법 및 장치 그리고 비-휘발성 컴퓨터-판독가능 저장 매체 - Google Patents

컨테이너 스케줄링 방법 및 장치 그리고 비-휘발성 컴퓨터-판독가능 저장 매체 Download PDF

Info

Publication number
KR20220100982A
KR20220100982A KR1020227021709A KR20227021709A KR20220100982A KR 20220100982 A KR20220100982 A KR 20220100982A KR 1020227021709 A KR1020227021709 A KR 1020227021709A KR 20227021709 A KR20227021709 A KR 20227021709A KR 20220100982 A KR20220100982 A KR 20220100982A
Authority
KR
South Korea
Prior art keywords
pod
resource
replica
scheduling
usage
Prior art date
Application number
KR1020227021709A
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 베이징 징동 샹커 인포메이션 테크놀로지 코., 엘티디.
Publication of KR20220100982A publication Critical patent/KR20220100982A/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/5033Allocation 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 data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

컴퓨터들의 기술 분야에 관한 컨테이너 스케줄링 방법 및 장치 그리고 컴퓨터-판독가능 저장 매체. 방법은: 실행된 컨테이너 세트 사본(copy) - 상기 실행된 컨테이너 세트 사본의 유형은 스케줄링될 컨테이너 세트 사본의 유형과 동일함 - 의 리소스 사용량에 따라 스케줄링될 컨테이너 세트 사본의 예측 리소스 사용량을 결정하는 것; 각각의 후보 노드에 의해 지원되는 예측 리소스 사용량 및 리소스 공급량에 따라, 실행된 컨테이너 세트 사본과 매칭하는 후보 노드를 결정하는 것; 및 실행을 위해 실행된 컨테이너 세트 사본을 매칭된 후보 노드로 스케줄링하는 것을 포함한다.

Description

컨테이너 스케줄링 방법 및 장치 그리고 비-휘발성 컴퓨터-판독가능 저장 매체
관련 출원에 대한 상호 참조
본 출원은 2019년 11월 26일에 출원된 중국 특허 출원 제201911175494.6호에 기초로 하고 우선권을 주장하며, 개시 내용은 전체적으로 본 출원에 통합된다.
본 개시내용은 컴퓨터 기술의 분야에 관한 것으로, 특히 컨테이너들의 스케줄링 방법 및 장치 그리고 비-일시적 컴퓨터-판독가능 저장 매체에 관한 것이다.
컨테이너 클라우드는 현재 클라우드 컴퓨팅 플랫폼의 중요한 유형으로, 민영화 및 맞춤화(customization)에 대한 고객들의 수요들을 충족시키기 위해 주로 프라이빗 클라우드 신(private cloud scene)에 적용된다. 컨테이너 클라우드가 고객들에 의해 구축되면, 자체-내장된 머신 룸에 컨테이너 클라우드 클러스터가 배치되며, 컨테이너 클라우드에서 비즈니스를 수행하기 위해 수백 대의 물리적 서버들이 배치되는 것이 흔할것이다.
예를 들어, 복수의 노드들은 컨테이너들의 실행을 위한 호스트들로 구성될 수 있다. 노드들은 물리적 머신들 또는 물리적 머신들에 따라 의존하는 가상 머신들이 될 수 있다. 따라서, 컨테이너들은 대응하는 노드들에서 실행되도록 스케줄링하기 위한 적합한 스케줄링 전략을 생성하는 것이 필요하다.
관련 기술에서, 주로 각 노드에서 리소스들이 어떻게 균일하게 분배되느냐에 따라 스케줄링 전략이 생성된다.
본 개시내용의 일부 실시예들에 따르면, 컨테이너들의 스케줄링 방법이 제공되며, 이는: 이미 실행된 파드 레플리카의 리소스 사용량에 따라 스케줄링될 파드 레플리카 - 상기 이미 실행된 파드 레플리카와 상기 스케줄링될 파드 레플리카의 유형들은 동일함 - 의 예측 리소스 사용량을 결정하며; 예측 리소스 사용량 및 후보(candidate) 노드들(nodes)에 의해 지원되는 리소스 제공에 따라 이미 실행된 파드 레플리카와 매칭되는 적어도 하나의 후보 노드를 결정하며; 적어도 하나의 후보 노드에서 실행되도록 이미 실행된 파드 레플리카를 스케줄링 하는 것을 포함한다.
일부 실시예들에서, 이미 실행된 파드 레플리카와 매칭되는 적어도 하나의 후보 노드를 결정하는 것은: 예측 리소스 사용량에서 각 유형의 예측 리소스 사용량이 리소스 제공에서 리소스에 대한 각 유형의 제공과 매칭되는지 여부에 따라 이미 실행된 파드 레플리카와 매칭되는 적어도 하나의 후보 노드를 결정하는 것을 포함한다.
일부 실시예들에 있어서, 이미 실행된 파드 레플리카와 매칭되는 적어도 하나의 후보 노드를 결정하는 것은: 예측 리소스 사용량에서 리소스에 대한 각 유형의 예측 리소스 사용량이 리소스에 대한 각 유형에 대응하는 사용량 임계값보다 큰지 여부를 판단하는 것; 대응하는 사용량 임계값보다 큰 예측 리소스 사용량을 갖는 리소스를 수요 리소스로 결정하는 것; 적어도 하나의 후보 노드 각각에서, 리소스 제공에서 리소스에 대한 각 유형의 현재 활용률이 리소스에 대한 각 유형에 대응하는 활용률 임계값 미만인지 여부를 판단하는 것; 대응하는 활용률 임계값 미만인 현재 활용률을 갖는 리소스를 적어도 하나의 후보 노드 각각의 가용 리소스로 결정하는 것; 및 수요 리소스 및 가용 리소스의 매칭에 따라 이미 실행된 파드 레플리카와 매칭되는 적어도 하나의 후보 노드를 결정하는 것을 포함한다.
일부 실시예들에서, 적어도 하나의 후보 노드에서 실행되도록 이미 실행된 파드 레플리카를 스케줄링하는 것은: 예측 리소스 사용량 및 적어도 하나의 후보 노드의 리소스 제공에 따라 적어도 하나의 후보 노드에 의해 어웨이큰(awaken)될 필요가 있는 물리적 머신들의 수를 결정하는 것을 포함하고, 물리적 머신들의 수는 예측 리소스 사용량을 충족할 수 있는 최소 수이다.
일부 실시예들에서, 방법은: 이미 실행된 파드 레플리카에 대한 리소스 사용량의 이력(historical) 변화를 획득하는 것; 이력 변화에 따라 스케줄링될 파드 레플리카가 현재 사용량의 피크(peak) 또는 밸리(valley) 시기(time period)에 존재하는지 여부를 판단하는 것; 및 판단 결과에 따라 스케줄링될 파드 레플리카의 수를 증가시킬지 여부를 결정하는 것을 더 포함한다.
일부 실시예들에서, 이미 실행된 파드 레플리카에 대한 리소스 사용량의 이력 변화를 획득하는 것은: 지정된 시기 내의 각 시점에서 이미 실행된 파드 레플리카의 리소스 사용량에 따라 지정된 시기 내의 리소스에 대한 각 유형의 평균 사용량을 계산하는 것; 및 평균 사용량에 따라 지정된 시기 내의 리소스에 대한 각 유형의 사용량에 대한 피크 및 밸리 시기들을 이력 변화로서 결정하는 것을 포함한다.
일부 실시예들에서, 방법은: 이력 변화에 따라 타겟 시점에서 스케줄링될 파드 레플리카의 리소스 사용량을 추정하는 것; 및 현재 어웨이큰된 물리적 머신이 타겟 시점의 리소스 사용량을 충족할 수 없는 조건하에서, 타겟 시점이 되기 전에 리소스들을 제공하도록 하기 위해 타겟 시점에서 리소스 사용량을 충족할 수 있는 물리적 머신들의 수를 어웨이크닝(awakening)하는 것을 더 포함한다.
일부 실시예들에서, 판단 결과에 따라 스케줄링될 파드 레플리카의 수를 증가시킬지 여부를 결정하는 것은: 피크 시기에 존재하고 특정 스케줄링될 파드 레플리카의 리소스 부하가 부하 임계값을 초과하는 조건하에서, 스케줄링될 파드 레플리카들의 수를 증가시키는 것을 포함한다.
일부 실시예들에서, 판단 결과에 따라 스케줄링될 파드 레플리카의 수를 증가시킬지 여부를 결정하는 것은: 밸리 시기에 존재한다는 조건하에서, 스케줄링될 파드 레플리카의 수를 감소시키고, 슬립(sleep) 상태로 진입하기 위해 클리어된(cleared) 물리적 머신을 제어하는 것을 포함한다.
일부 실시예들에서, 방법은: 적어도 하나의 후보 노드의 대응하는 물리적 머신에서 실행되는 파드 레플리카들의 수에 따라, 고성능 또는 비-고성능 모드에 존재하기 위해 대응하는 물리적 머신을 제어하는 것을 더 포함한다.
일부 실시예들에서, 고성능 또는 비-고성능 모드에 존재하기 위해 대응하는 물리적 머신을 제어하는 것은: 대응하는 물리적 머신에서 실행되는 파드 레플리카가 없는 조건하에서 슬립 모드에 존재하기 위해 대응하는 물리적 머신을 제어하고; 대응하는 물리적 머신에서 실행되는 파드 레플리카들의 수가 레플리카 임계값 미만인 조건하에서 저성능 모드에 존재하기 위해 대응하는 물리적 머신을 제어하는 것을 포함한다.
일부 실시예들에서, 적어도 하나의 후보 노드 각각은, 스케줄링될 파드 레플리카의 수, 고가용성 수요, 선호도 수요 또는 독점 수요 중 적어도 하나에 따라 결정된다.
본 개시내용의 다른 실시예들에 따라, 컨테이너들의 스케줄링 장치가 제공되며, 이는 이미 실행된 파드 레플리카의 리소스 사용량에 따라 스케줄링될 파드 레플리카 - 상기 이미 실행된 파드 레플리카와 상기 스케줄링될 파드 레플리카의 유형들은 동일함 - 의 예측 리소스 사용량을 결정하도록 구성된 사용량 결정 유닛; 예측 리소스 사용량 및 후보 노드들에 의해 지원되는 리소스 제공에 따라 이미 실행된 파드 레플리카와 매칭되는 적어도 하나의 후보 노드를 결정하도록 구성된 노드 매칭 유닛; 및 이미 실행된 파드 레플리카가 적어도 하나의 후보 노드에서 실행되는 것을 스케줄링하도록 구성된 스케줄링 유닛을 포함한다.
일부 실시예들에서, 예측 리소스 사용량에서 리소스에 대한 각 유형의 예측 리소스 사용량이 리소스 제공에서 리소스에 대한 각 유형의 제공과 매칭되는지 여부에 따라 이미 실행된 파드 레플리카와 매칭되는 적어도 하나의 후보 노드를 노드 매칭 유닛이 결정한다.
일부 실시예들에 있어서, 예측 리소스 사용량에서 리소스에 대한 각 유형의 예측 리소스 사용량이 리소스에 대한 각 유형에 대응하는 사용량 임계값보다 큰지 여부를 노드 매칭 유닛이 판단하고; 대응하는 사용량 임계값보다 큰 리소스를 수요 리소스로 결정하며; 적어도 하나의 후보 노드 각각에서, 리소스 제공에서 리소스에 대한 각 유형의 현재 활용률은 대응하는 활용률 임계값 미만인지 여부를 판단하고; 대응하는 활용률 임계값 미만인 현재 활용률을 갖는 리소스를 적어도 하나의 후보 노드 각각의 가용 리소스로 결정하며; 수요 리소스 및 가용 리소스의 매칭에 따라 이미 실행된 파드 레플리카와 매칭되는 후보 노드들을 결정한다.
일부 실시예들에서, 스케줄링 유닛은 예측 리소스 사용량 및 적어도 하나의 후보 노드의 리소스 제공에 따라 적어도 하나의 후보 노드에 의해 어웨이큰(awaken)될 필요가 있는 물리적 머신들의 수를 결정하고 물리적 머신들의 수는 예측 리소스 사용량을 충족할 수 있는 최소 수이다.
일부 실시예들에서, 판단 결과에 따라 스케줄링될 파드 레플리카의 수를 증가시킬지 여부를 결정하기 위하여 이미 실행된 파드 레플리카에 대한 리소스 사용량의 획득된 이력 변화에 따라, 장치는 스케줄링될 파드 레플리카가 현재 사용량의 피크 또는 밸리 시기에 존재하는지 여부를 판단하도록 구성된 판단 유닛을 더 포함한다.
일부 실시예들에서, 지정된 시기 내의 각 시점에서 이미 실행된 파드 레플리카의 리소스 사용량에 따라 판단 유닛은 지정된 시기 내의 리소스에 대한 각 유형의 평균 사용량을 계산하고; 평균 사용량에 따라, 지정된 시기 내 리소스에 대한 각 유형의 사용량에 대한 피크 및 밸리 시기들을 이력 변화로 결정한다.
일부 실시예들에서, 이력 변화에 따라 타겟 시점에서 스케줄링될 파드 레플리카의 리소스 사용량을 추정하고; 현재 어웨이큰된(awakened) 물리적 머신이 타겟 시점에서 리소스 사용량을 충족하지 못한다는 조건하에서, 타겟 시점이 되기 전에 리소스들을 제공하도록 하기 위해 타겟 시점에서 리소스 사용량을 충족할 수 있는 물리적 머신들의 수를 어웨이큰 하도록 구성된 제어 유닛을 스케줄링 장치가 더 포함한다.
일부 실시예들에서, 제어 유닛은 피크 시기에 존재하고 특정 스케줄링될 파드 레플리카의 리소스 부하가 부하 임계값을 초과하는 조건하에서, 스케줄링될 파드 레플리카의 수를 증가시킨다.
일부 실시예들에서, 제어 유닛은 밸리 시기에 존재한다는 조건하에서, 스케줄링될 파드 레플리카의 수를 감소시키고, 슬립(sleep) 상태로 진입하기 위해 클리어된(cleared) 물리적 머신을 제어한다.
일부 실시예들에서, 제어 유닛은 적어도 하나의 후보 노드의 대응하는 물리적 머신에서 실행되는 파드 레플리카들의 수에 따라, 고성능 또는 비-고성능 모드에 존재하기 위해 대응하는 물리적 머신을 제어하도록 구성된다.
일부 실시예들에서, 고성능 또는 비-고성능 모드에 존재하기 위해 대응하는 물리적 머신을 제어하는 제어 유닛은: 대응하는 물리적 머신에서 실행되는 파드 레플리카가 없는 조건하에서 슬립 모드에 존재하기 위해 대응하는 물리적 머신을 제어하고; 대응하는 물리적 머신에서 실행되는 파드 레플리카들의 수가 레플리카 임계값 미만인 조건하에서 저성능 모드에 존재하기 위해 대응하는 물리적 머신을 제어하는 것을 포함한다.
일부 실시예들에서, 적어도 하나의 후보 노드 각각은, 스케줄링될 파드 레플리카의 수, 고가용성 수요, 선호도 수요 또는 독점 수요 중 적어도 하나에 따라 결정된다.
본 개시내용의 또 다른 실시예들에 따라, 컨테이너들의 스케줄링 장치가 제공되며, 이는 메모리; 및 상기 메모리에 커플링된(coupled) 프로세서 - 상기 프로세서는 상기 메모리에 저장된 명령어들에 기초하여 상기 임의의 실시예들에서 컨테이너들의 스케줄링 방법을 수행하도록 구성됨 - 를 포함한다.
본 개시내용의 추가 실시예들에 따라, 프로세서에 의해 실행될 때 상기 임의의 실시예들에서 컨테이너들의 스케줄링 방법을 구현하는 컴퓨터 프로그램이 저장된 비-일시적 컴퓨터-판독가능 저장 매체가 제공된다.
여기에 설명된 첨부 도면들은 본 개시내용의 추가 이해를 제공하기 위해 사용되고 본 출원의 일부를 구성하며, 본 개시내용의 예시적인 실시예들 및 그 설명은 본 개시내용을 설명하기 위해 사용되고 본 개시내용에 대한 부적절한 제한을 구성하지 않는다. 도면들에서:
도1은 본 개시내용에 따른 컨테이너들의 스케줄링 방법에 대한 일부 실시예들의 흐름도를 도시하고;
도2는 본 개시내용에 따른 컨테이너들의 스케줄링 방법에 대한 다른 실시예들의 흐름도를 도시하며;
도3은 본 개시내용에 따른 컨테이너들의 스케줄링 장치에 대한 일부 실시예들의 개략도를 도시하고;
도4a는 본 개시내용에 따른 노드 리소스 분포의 일부 실시예들의 개략도를 도시하며;
도4b는 본 개시내용에 따른 파드 레플리카에 대한 리소스 사용량의 일부 실시예들의 개략도를 도시하고;
도4c는 본 개시내용에 따른 2개의 파드 레플리카들에 대한 리소스 사용량의 일부 실시예들의 개략도를 도시하며;
도4d는 본 개시내용에 따라 컨테이너들의 스케줄링 방법에 대한 일부 실시예들의 개략도를 도시하고;
도5는 본 개시내용에 따른 컨테이너들의 스케줄링 방법에 대한 다른 실시예들의 개략도를 도시하며;
도6은 본 개시내용에 따른 컨테이너들의 스케줄링 장치에 대한 일부 실시예들의 블록도를 도시하고;
도7은 본 개시내용에 따른 컨테이너들의 스케줄링 장치에 대한 다른 실시예들의 블록도를 도시하며;
도8은 본 개시내용에 따른 컨테이너들의 스케줄링 장치에 대해 또 다른 실시예들의 블록도를 도시한다.
이하, 본 개시내용의 실시예들에서 기술적 해결방안들은 본 개시내용의 실시예들에서 첨부된 도면과 함께 명확하고 완전하게 아래에 설명될 것이며, 설명된 실시예들은 본 개시내용의 전체 실시예가 아니라 일부 실시예들임이 명백하다. 적어도 하나의 예시적인 실시예에 대한 다음의 설명은 본질적으로 단지 예시적이며 본 개시 및 그의 적용 또는 사용에 대한 어떠한 제한도 제공하지 않는다. 창의적 노력 없이 본 개시내용의 실시예들로부터 당업자에 의해 유도될 수 있는 다른 모든 실시예들은 본 개시내용의 보호 범위에 속한다.
이들 실시예들에서 설명된 구성요소들 및 단계들의 상대적인 배열들, 수치 표현들 및 수치 값들은 달리 명시되지 않는 한 본 개시내용의 범위를 제한하지 않는다. 한편, 도면들에 도시된 다양한 부분들의 크기들은 설명의 편의를 위해 실제 스케일들(scales)로 도시된 것이 아님을 이해하여야 한다. 관련 기술 분야에서 통상의 지식을 가진 자에게 알려진 기술, 방법 및 장치는 상세하게 논의되지 않을 수 있지만 적절한 경우 부여된 사양의 일부로 간주되어야 한다. 여기에 도시되고 논의된 모든 예들에서, 임의의 특정 값은 단지 예시적인 것으로 해석되어야 하며 제한적인 것으로 해석되어서는 안된다. 따라서, 본 예시적인 실시예들의 다른 예들은 다른 값들을 가질 수 있다. 다음 도면들에서 유사한 참조 번호들 및 문자들은 유사한 항목들을 나타내며, 따라서 특정 항목이 하나의 도면에서 정의되면 후속 도면들에서 더 이상 논의될 필요가 없다는 점에 유의해야 한다.
본 개시내용의 발명자들은 상술한 관련 기술에 다음과 같은 문제점이 있음을 발견하였다: 클러스터 관리 및 유지 관리 관점에서 스케줄링 전략이 생성되지 않으므로, 리소스 사용량과 리소스 제공 간의 미스매치(mistmatch)가 발생하여 시스템 리소스들의 낭비가 발생한다.
이에 본 개시내용에서는, 시스템 리소스들의 낭비를 줄일 수 있는 컨테이너 스케줄링 기술적 해결방안을 제공한다.
전술한 바와 같이, 고객이 컨테이너 클라우드를 구축할 때, 컨테이너 클라우드 클러스터는 자체-구축된 머신 룸(room)에 배치될 것이며, 수백 대의 물리적 서버들이 종종 컨테이너 클라우드에서 비즈니스를 수행하기 위해 배치될 것이다. 장기간 실행되는 다수의 물리적 서버들에서 막대한 에너지 소모가 발생하고, 물리적 서버들이 실행될수록 매칭되는 냉각 및 먼지 제거 설비들에 필요한 규모가 커짐에 따라 이는 고객에게 전기 및 관리 청구서들과 같이 지속적으로 매우 막대한 비용을 초래할 것이다.
상기 기술적인 문제를 고려하여, 본 개시내용은 컨테이너 클라우드 기술에 기초하고, 컨테이너 클라우드 내의 쿠버네티스(Kubernetes)가 파드(pod; 컨테이너들의 세트)를 전략적으로 스케줄링할 수 있는 메커니즘을 사용하고, 파드 스케줄링을 통해 물리적 머신들의 일부 부하들을 클리어링(clearing)하는 데 중점을 두어 에너지 소모 없이 슬립(sleep) 상태로 진입하도록 한다. 이러한 방식으로, 리소스 사용량을 리소스 수요와 최대한 매칭시킬 수 있으므로 비즈니스 수요를 충족할 뿐만 아니라 에너지 절약 및 비용 절감이라는 목표를 달성할 수 있다. 이는, 예를 들어 다음 실시예들에 의해 달성될 수 있다.
도1은 본 개시내용에 따른 컨테이너들의 스케줄링 방법에 대한 일부 실시예들의 흐름도를 도시한다.
도1에 도시된 바와 같이, 방법은: 단계110에서, 예측 리소스 사용량을 결정하는 단계; 단계120에서, 매칭된 후보(candidate) 노드(node)를 결정하는 단계; 및 단계130에서, 이미 실행된 파드 레플리카를 스케줄링하는 단계를 포함한다.
단계110에서, 이미 실행된 파드 레플리카(pod replica)의 리소스 사용량에 따라 스케줄링될 파드 레플리카의 예측 리소스 사용량이 결정된다. 이미 실행된 파드 레플리카와 스케줄링될 파드 레플리카의 유형들은 동일하다.
예를 들어, 파드는 밀접하게 관련된 컨테이너들의 세트이며 쿠버네티스 스케줄링의 기본 단위이다. 파드에서 복수의 컨테이너들은 네트워크와 파일 시스템을 공유하여 프로세스-간 통신 및 파일 공유와 같은 간단하고 효율적인 방식으로 서비스를 완료할 수 있다. 파드 레플리카는 1개의 동일한 파드 모드를 사용하여 생성된 파드들의 세트이며, RC(replication controller) 또는 RS(replica set)에 의해 제어된다.
일부 실시예들에서, 파드 레플리카의 유형은 대응하는 파드 모드에 따라 결정되고, 동일한 파드 모드를 갖는 파드 레플리카들은 동일한 유형이다. 예를 들어, 파드 모드는 파드에 포함된 컨테이너의 미러(mirror) 이미지, 미러 이미지의 대응하는 사양, 대응하는 서비스 이름 또는 레플리카들의 수 중 적어도 하나를 포함할 수 있다. 사양은 CPU(central processing unit) 코어들의 수, 메모리 용량, 네트워크 대역폭 및 저장 용량과 같이 미러 이미지에 필요한 하드웨어 리소스 구성 정보를 포함할 수 있다.
일부 실시예들에서, 파드 모드의 한 유형은 하나의 파드 템플릿 파일을 사용하여 결정될 수 있으며, 예를 들어, 파드 모드에 대한 한 유형의 구조는 다음과 같다:
{
미러 이미지1, 사양 1;
미러 이미지2, 사양 2;
...
미러 이미지 n, 사양 n;
서비스 이름;
레플리카들의 수;
}
사양은 CPU 코어들의 수, 메모리 용량, 네트워크 대역폭 및 저장 용량과 같은 하드웨어 구성 정보를 포함할 수 있다. 예를 들어, X라는 레이블을 가진 파드가 위와 같은 방식으로 생성된 후, 위의 구조는 파드 X의 파드 모드라고 지칭된다.
단계120에서, 예측 리소스 사용량 및 후보(candidate) 노드들(nodes)에 의해 지원되는 리소스 제공에 따라 이미 실행된 파드 레플리카와 매칭되는 적어도 하나의 후보 노드들이 결정된다.
일부 실시예들에서, 적어도 하나의 후보 노드 각각은, 스케줄링될 파드 레플리카들의 수, HA(고가용성) 수요, 선호도 수요 또는 독점 수요 중 적어도 하나에 따라 결정된다.
예를 들어, 선호도는 파드가 실행될 때의 스케줄링 전략이며, 선호도는: 노드 선호도, 파드 선호도 및 파드 반-선호도(Anti-Affinity)를 포함한다. 노드 선호도는 파드가 배치될 수 있거나 배치될 수 없는 노드를 지정하는 데 사용된다. 파드 선호도는 하나의 동일한 토폴로지(topology) 하에서 파드가 배치될 수 있는 파드들을 지정하는 데 사용된다. 파드 반-선호도는 동일한 토폴로지 하에서 파드가 배치될 수 없는 파드들을 지정하는 데 사용되며, 파드 선호도와 함께 파드들 간의 관계들을 해결한다.
일부 실시예들에서, 예측 리소스 사용량에서 리소스에 대한 각 유형의 예측 리소스 사용량이 리소스 제공에서 리소스에 대한 각 유형의 제공과 매칭되는지 여부에 따라 이미 실행된 파드 레플리카와 매칭되는 적어도 하나의 후보 노드가 결정된다.
일부 실시예들에서, 예측 리소스 사용량에서 리소스에 대한 각 유형의 예측 리소스 사용량이, 대응하는 사용량 임계값보다 큰지 여부가 판단되고; 대응하는 사용량 임계값보다 큰 리소스 유형은 수요 리소스로 결정되며; 적어도 하나의 후보 노드 각각에서, 리소스 제공에서 리소스에 대한 각 유형의 현재 활용률은 대응하는 활용률 임계값 미만인지 여부가 판단되고; 대응하는 활용률 임계값 미만인 현재 활용률을 갖는 리소스에 대한 유형이 적어도 하나의 후보 노드 각각의 가용 리소스로 결정되며; 수요 리소스 및 가용 리소스의 매칭에 따라 이미 실행된 파드 레플리카와 매칭되는 적어도 하나의 후보 노드가 결정된다.
단계130에서, 이미 실행된 파드 레플리카는 적어도 하나의 후보 노드에서 실행되도록 스케줄링된다.
일부 실시예들에서, 예측 리소스 사용량 및 적어도 하나의 후보 노드의 리소스 제공에 따라 적어도 하나의 후보 노드에 의해 어웨이큰(awaken)될 필요가 있는 물리적 머신들의 수가 결정되고, 물리적 머신들의 수는 예측 리소스 사용량을 충족할 수 있는 최소 수이다.
일부 실시예들에서, 현재 리소스 사용량은 또한 리소스 사용량의 이력 변화(historical change)에 따라 예측될 수 있다. 이는, 예를 들어 도2의 실시예들에 의해 달성될 수 있다.
도2는 본 개시내용에 따른 컨테이너들의 스케줄링 방법에 대한 다른 실시예들의 흐름도를 도시한다.
도2에 도시된 바와 같이, 방법은: 단계210에서, 이력 변화를 획득하는 단계; 단계220에서, 현재 시기를 판단하는 단계; 및 단계230에서, 레플리카 증가 여부를 결정하는 단계를 더 포함할 수 있다.
단계210에서, 이미 실행된 파드 레플리카에 대한 리소스 사용량의 이력 변화가 획득된다.
일부 실시예들에서, 지정된 시기 내의 각 시점에서 이미 실행된 파드 레플리카의 리소스 사용량에 따라 지정된 시기 내의 리소스에 대한 각 유형의 평균 사용량이 계산되고; 평균 사용량에 따라, 지정된 시기 내 리소스에 대한 각 유형의 사용량에 대한 피크 및 밸리 시기들이 이력 변화로 판단된다.
예를 들어, 리소스에 대한 각 유형의 사용량과 리소스에 대한 각 유형의 평균 사용량의 차이가 피크 임계값보다 큰 조건하에서 지정된 시기가 피크 시기로 결정되고 리소스에 대한 각 유형의 평균 사용량과 리소스에 대한 각 유형의 사용량의 차이가 밸리 임계값보다 큰 조건하에서 지정된 시기가 밸리 시기로 결정된다.
단계220에서, 이력 변화에 따라 스케줄링될 파드 레플리카가 현재 사용량의 피크 또는 밸리 시기에 존재하는지 여부가 판단된다.
단계230에서, 판단 결과에 따라 스케줄링될 파드 레플리카들의 수를 증가시킬 것인지 여부가 판단된다.
일부 실시예들에서, 피크 시기에 존재하고 단일 스케줄링될 파드 레플리카의 리소스 부하가 부하 임계값을 초과하는 조건하에서, 스케줄링될 파드 레플리카들의 수가 증가된다.
일부 실시예들에서, 밸리 시기에 존재한다는 조건하에서, 스케줄링될 파드 레플리카들의 수는 감소되고, 슬립(sleep) 상태로 진입하기 위해 클리어된(cleared) 물리적 머신이 제어된다.
일부 실시예들에서, 이력 변화에 따라 타겟 시점에서 스케줄링될 파드 레플리카의 리소스 사용량이 예측되고; 현재 어웨이큰된(awakened) 물리적 머신이 타겟 시점에서 리소스 사용량을 충족하지 못한다는 조건하에서, 타겟 시점이 되기 전에 리소스들을 제공하도록 하기 위해 타겟 시점에서 리소스 사용량을 충족하는 물리적 머신들의 수가 어웨이큰 된다.
일부 실시예들에서, 적어도 하나의 후보 노드의 대응하는 물리적 머신에서 실행되는 파드 레플리카들의 수에 따라, 고성능 또는 비-고성능 모드에 존재하기 위해 대응하는 물리적 머신이 제어된다.
예를 들어, 대응하는 물리적 머신에서 실행되는 파드 레플리카가 없는 조건하에서 슬립 모드에 존재하기 위해 대응하는 물리적 머신이 제어되고; 대응하는 물리적 머신에서 실행되는 파드 레플리카들의 수가 레플리카 임계값 미만인 조건하에서 저성능 모드에 존재하기 위해 대응하는 물리적 머신이 제어된다.
도3은 본 개시내용에 따른 컨테이너들의 스케줄링 장치에 대한 일부 실시예들의 개략도를 도시한다.
도3에 도시된 바와 같이, 스케줄링 장치는 리소스 사용량 평가 모듈, 이력 변화 분석 모듈, 스케줄링 시스템 및 물리적 머신 상태 제어 모듈을 포함할 수 있다.
일부 실시예들에서, 리소스 사용량 평가 모듈(사용량 결정 유닛을 포함할 수 있음)은 파드에 대한 리소스들의 사용량에 대한 통계 데이터를 평가하도록 구성된다. 통계 데이터는 이력 변화 분석 모듈 및 스케줄링 시스템에 대한 데이터 기반을 제공할 수 있다.
일부 실시예들에서, 리소스 사용량 평가 모듈은 동일한 파드 모드를 갖는 파드들의 리소스 사용량을 기록하고 평가할 수 있다. 리소스 사용량은 6-튜플(tuple)로 나타낼 수 있다. 예를 들어, 6-튜플은 CPU 작업 명령 사이클 카운트(count), 메모리 사용량, 네트워크 IO(입력 출력) 카운트, 네트워크 IO 트래픽, 스토리지 IO 카운트 및 스토리지 IO 총계를 포함할 수 있다.
일부 실시예들에서, 리소스 사용량은 단위시간t 내에서 카운트된 수치 값일 수 있다. 예를 들어, t는 1초, 1분, 1시간 등일 수 있다.
일부 실시예들에서, CPU의 실제 작업 명령 사이클 카운트는 파드에 의한 CPU의 실제 사용량을 정확하게 측정하기 위해 사용될 수 있고; 메모리 사용량은 시기 t 내에서 초당 메모리 사용량의 누적 값일 수 있으며; 네트워크 IO와 스토리지 IO는 카운트와 총계로 나타낼 수 있어 IO가 잦은 경우와 데이터 IO가 많은 경우들을 구분할 수 있다.
일부 실시예들에서, 동일한 파드 모드를 갖는 파드들에 대한 리소스 사용량 평가 모듈은 그들의 리소스 사용량을 카운트하고, 그 평균값을 계산한다. 평균값을 정규화하기 위해 평균값은 하나의 물리적 머신에 의해 달성될 수 있는 최대값으로 나누어지며 6-튜플에 대응하는 수치 값들을 0과 1 사이의 6개 수치 값들로 통합될 수 있도록 할 수 있다.
예를 들어, 물리적 머신에 의해 달성될 수 있는 CPU의 최대값은 t 내의 물리적 머신의 모든 코어들의 모든 사이클 수들이고; 물리적 머신에 의해 달성될 수 있는 메모리의 최대값은 물리적 머신에 대한 모든 메모리들의 총계에서 관리 및 시스템 프로그램들의 메모리 사용량을 뺀 것이다.
물리적 머신에 의해 달성될 수 있는 네트워크 IO 카운트의 최대값은 t 내에서 시스템에 의해 이력상(historically) 수행된 최대 네트워크 IO 카운트(새로운 최대값이 있을 때 업데이트됨)이고; 물리적 머신에 의해 달성될 수 있는 네트워크 IO 트래픽의 최대값은 네트워크 대역폭에 따라 계산되는 t 내에서 달성될 수 있는 최대 네트워크 전송 데이터 양이며; 물리적 머신에 의해 달성될 수 있는 스토리지 IO 카운트의 최대값은 t 내에서 시스템에 의해 이력상(historically) 수행된 최대 스토리지 IO 카운트(새로운 최대값이 있을 때 업데이트됨)이고; 물리적 머신에 의해 달성될 수 있는 스토리지 IO 총계의 최대값은 스토리지 대역폭에 따라 계산되는 t 내에서 달성될 수 있는 최대 전송 데이터 양이다.
정규화된 수치 값은 동일한 파드 모드를 갖는 파드들의 실제 리소스 사용량을 최대값으로 나누어 획득될 수 있다. IO 카운트를 제외하고 하나의 동일한 물리적 머신에 있는 복수의 파드들의 리소스 사용량에 대한 합계는 물리적 머신의 용량 값보다 클 수 없다.
일부 실시예들에서, 복수의 물리적 머신들의 사양들이 동일하지 않거나 처리 용량들이 일치하지 않을 때, 물리적 머신들의 처리 용량들도 정규화된다. 예를 들어, 모든 물리적 머신들의 대응하는 인덱스들은 최대 처리 용량을 가진 물리적 머신의 대응하는 인덱스 값으로 나누어야 하는데 즉, 정규화된 물리적 머신 용량 인덱스 = 물리적 머신 인덱스 값/최대 물리적 머신 인덱스 값이다.
일부 실시예들에서, 노드의 리소스 제공은 파드에 대해 얼마나 많은 리소스들이 노드에 의해 제공될 수 있는지를 측정하기 위한 정규화된 6-튜플이다.
일부 실시예들에서, 이력 변화 분석 모듈(판단 유닛을 포함할 수 있음)은 CPU, 메모리, 네트워크 및 IO와 같은 리소스들에 대한 파드의 사용량에 대한 이력 변화(예를 들어, 주기성 법칙)를 분석하도록 구성되고, 이에 의해 스케줄링 시스템 및 물리적 머신 상태 제어 모듈에 대한 결정 기반을 제공한다.
일부 실시예들에서, 시스템 리소스들에 대한 파드의 사용량은 또한 일반적으로 주기적인 변화 법칙을 보여주는 물결 모양의 곡선으로 변화한다. 시스템 리소스 사용량의 변화 법칙은 일반적으로 인간의 사회 활동들의 주기성에 의해 발생된다. 예를 들어, 대부분의 사람들은 낮에 일하고 밤에 휴식을 취하므로 사람들과 상호 작용하는 시스템들이 낮에는 대부분 분주하고 밤에는 유휴 상태가 된다. 따라서, 획득된 변화 법칙을 사용하여 더 나은 리소스들의 할당을 실현할 수 있다.
일부 실시예들에서, 사람들의 작업, 휴식 및 활동 법칙들에 따라 변화 법칙의 사이클은 일, 주, 월, 년 등의 시기로 나눌 수 있다.
일부 실시예들에서, 하루의 리소스 사용량 법칙이 카운트될 수 있다. 예를 들어, 하나의 시간 간격(예를 들어, 1분)을 단위시간으로 취하고 하나의 동일한 파드 모드를 갖는 파드들(파드 샘플들)의 리소스 사용량이 각 단위시간 내에서 카운트된다.
예를 들어, 비정상 데이터 포인트들은 시간 범위(예를 들어, 20일) 내에서 제거되어 하루 내 각 시기의 리소스 사용량의 평균 값을 획득하도록 할 수 있고; 리소스 사용량에 대한 평균값의 피크 및 밸리 시기들의 시간 범위들이 결정된다. 피크 시기의 리소스 사용량은 하루 내 리소스에 대한 각 유형의 평균 사용량보다 분명히 높으며; 밸리 시기의 리소스 사용량은 하루 내 리소스에 대한 각 유형의 평균 사용량보다 분명히 낮다.
일부 실시예들에서, 일주일의 리소스 사용량 법칙이 카운트될 수 있다. 예를 들어, 특정 날짜의 시기를 단위시간으로 취하여 각 단위시간 내에서 하나의 동일한 파드 모드를 갖는 파드들의 리소스 사용량을 카운트하도록 한다. 시간 범위(예를 들어, 60일) 내에서 비정상 데이터 포인트들은 제거되어 일주일 내 각 날짜에 대한 리소스 사용량의 평균값을 획득하도록 한다. 리소스 사용량에 대한 평균값의 피크 및 밸리 시기들의 시간 범위들이 결정된다.
일부 실시예들에서, 1개월의 리소스 사용량 법칙이 카운트될 수 있다. 예를 들어, 특정 날짜의 시기를 단위시간으로 취하여 각 단위시간 내에서 하나의 동일한 파드 모드를 갖는 파드들의 리소스 사용량을 카운트하도록 한다. 시간 범위(예를 들어, 90일) 내에서 비정상 데이터 포인트들은 제거되어 1개월 내 각 날짜에 대한 리소스 사용량의 평균값을 획득하도록 한다. 리소스 사용량에 대한 평균값의 피크 및 밸리 시기들의 시간 범위들이 결정된다.
일부 실시예들에서, 1년의 리소스 사용량 법칙이 카운트될 수 있다. 예를 들어, 특정 날짜의 시기를 단위시간으로 취하여 각 단위시간 내에서 하나의 동일한 파드 모드를 갖는 파드들의 리소스 사용량을 카운트하도록 한다. 1년의 시간 범위 내에서 비정상 데이터 포인트들은 제거되어 1년 내 각 날짜에 대한 리소스 사용량의 평균값을 획득하도록 한다. 리소스 사용량에 대한 평균값의 피크 및 밸리 시기들의 시간 범위들이 결정된다.
일부 실시예들에서, 날짜, 주, 월 및 연도의 4개의 기간을 통해 리소스 할당을 안내하기 위해 리소스 사용량의 피크 및 밸리 시기들이 명확하게 분석될 수 있다.
일부 실시예들에서, 스케줄링 시스템(노드 매칭 유닛 및 스케줄링 유닛을 포함할 수 있음)은 증가, 수정 및 삭제와 같이 파드 변화가 있을 때 파드 레플리카들에 대한 시스템의 동적 스케줄링에 책임이 있다. 예를 들어, 동적 스케줄링은 주로 파드가 생성될 때의 스케줄링과 파드가 수정 및 삭제될 때의 스케줄링을 포함한다. 스케줄링 시스템은 스케줄링 전략 생성 모듈 및 동적 변화 스케줄링 시스템을 포함할 수 있다.
일부 실시예들에서, 스케줄링 전략 생성 모듈은 스케줄링 전략을 세 가지 레벨들: 술어(predicate) 전략, 특성(peculiarity) 전략 및 세트 최적화 전략(또는 플렉스-성장 전략)으로 나눌 수 있다.
일부 실시예들에서, 술어 전략은 세트 조건을 충족하지 않는 노드를 필터링하는 데 사용된다. 세트 조건은 파드 레플리카와 노드 간의 상호 배타적 세팅(setting)을 포함할 수 있는데, 예를 들어 지정된 파드 레플리카는 지정된 노드 1에 배치될 수 없다.
일부 실시예들에서, 특성 전략은 술어 전략에 의해 필터링한 후 파드 레플리카에 의해 요구되는 기술적 특성들에 따라 후보 노드 세트 충족 조건들을 결정하는 데 사용된다. 기술적 특성들은 파드 레플리카들의 수, 고가용성 수요, 선호도 수요, 독점 수요 등을 포함할 수 있다.
이러한 방식으로, 적어도 하나의 매칭된 후보 노드를 결정하기 위한 고려 사항들은 성능 및 리소스 사용량만이 아니며, 고가용성 및 고동시성(high concurrency) 등의 요소들도 도입되어 스케줄링 효과가 향상되도록 한다.
일부 실시예들에서, 세트 최적화 전략은 세트 최적화를 위해 사용되고 제3-레벨 스케줄링의 제1 방식이다. 예를 들어, 스케줄링될 모든 파드 레플리카들은 하나의 파드 세트로 고려하고 후보 노드 세트에 파드 세트가 스케줄링된 후 최적의 효율성을 형성할 수 있는 전략이 스케줄링을 위해 선택될 수 있다.
일부 실시예들에서, 최적의 효율성은 세트 조건 및 특성 수요를 충족한다는 전제하에 그리고 비상 트래픽(emergency traffic) 처리 공간의 일부가 리저브된(reserved) 조건하에서 부하가 비즈니스 수요를 충족하고 전체 클러스터의 에너지 소비를 최소화할 수 있다.
예를 들어, 작업량은 가능한 한 적은 수의 물리적 머신들에 할당될 수 있고, 적은 수의 물리적 머신들은 리소스 및 트래픽 수요들을 충족할 수 있으므로 더 많은 물리적 머신들이 슬립될 수 있다. 작업량이 이미 할당된 물리적 머신의 부하가 적으면, 물리적 머신은 에너지-절약 모드로 진입하여 비즈니스 트래픽 수요가 충족되면서 에너지 소비를 최소화하도록 한다.
일부 실시예들에서, 세트 최적화는 2개의 파드들에 대한 동작들이 동시에 고려되는 경우를 포함할 수 있으며, 예를 들어 하나의 파드 레플리카를 삭제한 후 하나의 새로운 파드 레플리카를 생성하는 것이 필요하다. 복수의 파드 레플리카들 중 하나를 삭제해야 하는 경우, 스케줄링 프로그램은 새로 생성된 파드 레플리카가 최적의 효율성을 달성할 수 있도록 최적의 선택가능한 파드 레플리카를 선택할 수 있다.
일부 실시예들에서, 파드 레플리카가 생성될 때, 세트 최적화 방법의 주요 흐름은 다음과 같다.
단계1, 파드 레플리카 생성을 위한 템플릿 파일에 따라 파드 레플리카의 모드, 파드 레플리카 생성을 위한 세트 조건, 레플리카들의 수등을 결정한다.
단계2, 세트 조건을 충족하지 않는 노드를 제외한다. 예를 들어, 레이블은 쿠버네티스 객체를 식별하기 위한 레이블이며, 키-값 방식으로 객체에 부착된다. 레이블은 고유성을 제공하지 않으며 실제로 동일한 레이블이 종종 특정 애플리케이션에 레이블을 지정하기 위해 많은 객체들(예를 들어, 파드들)에 의해 사용된다. 일부 노드들은 레이블에 의해 제외될 수 있다.
단계3, 파드 레플리카들의 수, 고가용성 수요, 선호도 수요 및 독점 수요와 같은 기술적 특성들에 따라 할당가능한 후보 노드 세트 및 파드에 대한 복수의 레플리카들 간의 분포 관계들을 나눈다.
예를 들어, 파드 레플리카들은 물리적 머신들 전체에서 고가용성을 보장하기 위해 최소 2개의 물리적 호스트 노드들에 할당되거나; 파드 레플리카들은 랙들(racks) 전체의 고가용성을 보장하기 위해 물리적 머신들의 최소 2개 랙들에 할당되거나; 파드 레플리카들은 모두 고대역폭 네트워크들이 있는 물리적 호스트들에 할당되어 네트워크들에 높은 동시 액세스(access)를 보장하도록 한다.
단계4, 일정 시기 동안 실행되고 스케줄링될 파드 레플리카와 동일한 파드 모드를 갖는 파드 레플리카가 존재하는 경우, 리소스 사용량 평가 모듈에 따라 파드 모드의 최근 리소스들 중 실제로 사용된 리소스 사용량의 6-튜플을 획득한다.
단계5, 파드 레플리카 세트의 리소스 사용량 6-튜플을 후보 노드 세트에 있는 후보 노드들의 잔여 리소스 사용량 6-튜플과 매칭시키고 노드들이 균형잡힌 6개의 인덱스들을 달성할 수 있도록 하는 매칭 전략을 계산한다.
일부 실시예들에서, 비-슬립 상태에 있는 모든 물리적 호스트들의 노드들에서 잔여 리소스 사용량이 새로운 파드 레플리카의 생성을 지원할 수 있는 경우, 파드 레플리카는 균형잡힌 매칭 전략에 따라 대응하는 노드에 스케줄링된다. 스케줄링될 모든 파드 레플리카들은 전체 스케줄링을 위한 하나의 세트로 간주된다.
일부 실시예들에서, 파드 레플리카의 리소스 사용량에서 상당히 더 높은 인덱스들을 갖는 여러 항목들이 수요가 높은 리소스들로 결정될 수 있고; 노드에서 최대 가용성을 가진 리소스들은 수요가 높은 리소스들과 매칭되는 밸리 리소스들(제공 리소스들)로 선택된다. 즉, 리소스 유휴(idleness) 상태가 큰 인덱스들은 가능한 한 최대한 채워서 6개의 인덱스들 모두 노드에서 기본적으로 균형잡힌 할당을 실현하도록 한다.
일부 실시예들에서, 일부 파드 레플리카들은 하나의 동일한 노드에 스케줄링될 필요가 있는 경우, 동일한 노드에 할당될 필요가 있는 파드 레플리카들의 리소스 사용량이 결합된다. 예를 들어, 노드 리소스들은 수요를 충족할 수 있는 경우 할당된다.
예를 들어, 도4a 내지 도4d는 2개의 파드 레플리카들이 하나의 동일한 노드에 스케줄링되는 리소스 평가 실시예들이다.
도4a는 본 개시내용에 따른 노드 리소스 분포의 일부 실시예들의 개략도를 도시한다.
도4a는 정규화된 리소스 실제 활용률 및 하나의 스케줄링 가능한 노드의 잔여 할당가능한 리소스 공간을 도시한다. 시스템이 트래픽 지터(jitter), 버스트(burst) 등의 조건들 하에서 비즈니스 트래픽을 전달할 수 있음을 보장하기 위해, 리저브된 비상 리소스 공간이 시스템에 제공된다. 예를 들어, CPU 및 메모리 등과 같이 관련 인덱스들의 리저브된 비상 리소스 공간들의 비율들이 다를 수 있다.
일부 실시예들에서, 리소스에 대한 각 유형의 정규화된 평균 활용률이 계산될 수 있고, 정규화된 평균 활용률에 따라 활용률이 더 낮은 밸리 리소스들이: 메모리, 네트워크 IO 트래픽 및 스토리지 IO 총계로 결정될 수 있다.
도4b는 본 개시내용에 따른 파드 레플리카 리소스 사용량의 일부 실시예들의 개략도를 도시한다.
도4b는 스케줄링될 파드 레플리카와 동일한 파드 모드를 갖는 이미 실행된 파드 레플리카들의 이력 리소스 사용량에 따라 예측되는 예측 리소스 사용량을 도시한다. 리소스에 대한 각 유형의 정규화된 평균 사용량이 계산될 수 있으며, 정규화된 평균 사용량에 따라 사용량에 대한 수요가 높은 리소스들은: 메모리, 네트워크 IO 트래픽 및 스토리지 IO 총계로 결정된다.
도4c는 본 개시내용에 따른 2개의 파드 레플리카들에 대한 리소스 사용량의 일부 실시예들의 개략도를 도시한다.
도4c는 2개의 파드 레플리카들에 대한 예측 리소스 사용량을 도시하며, 각 인덱스는 단일 파드의 두 배이다. 수요가 높은 리소스들은: 메모리, 네트워크 IO 트래픽 및 스토리지 IO 총계이다. 이 경우, 수요가 높은 리소스 유형과 밸리 리소스 유형이 매칭되고 밸리 리소스들의 수가 수요가 높은 리소스들을 충족시킬 수 있으며, 그 후 2개의 파드 레플리카들은 노드에 스케줄링 될 수 있다.
도4d는 본 개시내용에 따라 컨테이너들의 스케줄링 방법에 대한 일부 실시예들의 개략도를 도시한다.
도4d는 스케줄링 가능한 노드에 2개의 파드 레플리카들이 할당된 경우 리소스 사용량을 도시한다. 복수의 노드들에 대한 경우는 단일 노드의 경우와 유사하며, 두 경우 모두 파드의 예측 리소스 사용량이 충족될 수 있음을 보장해야 한다.
일부 실시예들에서, 비-슬립 상태에 있는 모든 물리적 호스트들의 노드들에서 잔여 리소스 사용량이 새로운 파드 레플리카의 생성을 지원하기에 충분하지 않은 경우, 여러 슬리핑(sleeping) 물리적 호스트들이 어웨이큰 된다. 또한, 어웨이큰된 물리적 호스트들 및 오리지널 노드들에 대해 노드들의 할당가능한 리소스 사용량은, 파드 레플리카를 생성하기 위한 모드의 리소스 사용량 총 수요를 충족하기 위해 가능해진다.
일부 실시예들에서, 동일한 파드 모드를 갖는 이미 실행된 파드 레플리카들이 없는 경우, 리소스 사용량 6-튜플이 템플릿 문서의 리소스 수요(각 미러 이미지에 대응하는 사양)에 따라 예측된다. 예를 들어, 더 많은 코어들이 요구될수록 예측 CPU 사용량이 더 커진다. 그 후, 예측 리소스 사용량에 따른, 상기 실시예에 따라 처리가 수행된다.
일부 실시예들에서, 모든 파드 레플리카들이 노드들에 스케줄링된 후 또는 모든 물리적 머신들이 어웨이큰된 후, 리소스 수요를 충족할 수 있는 노드가 존재하지 않으며, 그 후 스케줄링이 완료된다.
일부 실시예들에서, 세트 최적화 전략의 세트 최적화 모델은: 비-슬립 상태의 물리적 머신들이 최소화되는 타겟; 모든 파드 레플리카들의 생성이 템플릿에 설정된 조건을 충족하는 제약 조건; 기술적 특성 수요를 충족하는 모든 파드 레플리카들의 생성; 비즈니스 부하를 충족할 수 있는 생성된 파드 레플리카; 및 제한을 초과하지 않는 각 노드의 파드 레플리카의 리소스 사용량을 포함한다.
일부 실시예들에서, 플렉스-성장 전략은 파드 레플리카들의 유연한 할당을 위해 사용되며, 이는 제3-레벨 스케줄링의 제2 대안이다. 예를 들어, 스케줄링에 대한 2개의 제1 레벨들의 제약 조건들이 충족된다는 전제하에, 파드 레플리카들의 일부가 먼저 생성된 후, 파드 레플리카들의 작업량들을 참조하여 파드 레플리카들의 수가 조정된다.
일부 실시예들에서, 파드가 생성될 때, 플렉스-성장 유연한 스케줄링 방법의 주요 흐름은 다음과 같다:
단계1, 파드 레플리카 생성을 위한 템플릿 파일에 따라 파드 레플리카의 모드를 결정하고, 파드 생성을 위한 세트 조건 및 레플리카들의 수를 결정한다.
단계2, 생성을 위한 세트 조건을 충족하지 않는 노드를 제외한다. 예를 들어, 특정 노드들은 레이블에 의해 제외된다.
단계3, 파드 레플리카들의 수, 고가용성 수요, 선호도 수요 및 독점 수요와 같은 기술적 특성들에 따라 할당가능한 후보 노드 세트 및 파드에 대한 복수의 레플리카들 간의 분포 관계들을 나눈다.
예를 들어, 파드 레플리카들은 물리적 머신들 전체에서 고가용성을 보장하기 위해 적어도 2개의 물리적 호스트 노드들에 할당된다. 또는 파드 레플리카들은 랙들 전체에서 고가용성을 보장하기 위해 물리적 머신들의 최소 2개의 랙들에 할당된다. 또는 네트워크들에 높은 동시 액세스를 보장하기 위해 파드 레플리카들이 고대역폭 네트워크들이 있는 물리적 호스트들에 할당된다.
단계4, 두 가지 경우들에서 레플리카들에 대한 최대 수를 생성될 파드 레플리카들의 수로 선택한다. 예를 들어, 두 가지 경우들은 생성된 파드 레플리카들의 수요에 대한 수의 절반, 기술적 특성들을 충족하는 레플리카들의 최소 수를 포함한다.
단계5, 단계4에서 결정된 파드 레플리카들의 수에 따라 파드 스케줄링을 수행하고, 세트 조건이 충족되는 조건하에서 비-슬립 상태의 물리적 머신들의 수를 최소화한다.
단계6, 파드 레플리카들의 리소스 사용량이 상위(upper) 임계값보다 클 때 파드 레플리카들의 수를 증가시킨다. 증가를 위한 스트라이드(stride)에는 2개의 옵션들이 있으며, 하나는 세트 수에 따라 단위 증가가 수행되고 다른 하나는 세트 비율에 따라 단위 증가가 수행되는데 예를 들어, 스트라이드는 총 숫자에서 기존 숫자를 뺀 후 절반이 될 수 있다. 수를 증가시킬 때, 비-슬립 상태의 물리적 머신들이 최소화되는 타겟도 충족되어야 한다.
단계7, 파드 레플리카들의 리소스 사용량이 하위(lower) 임계값 미만일 때, 파드 레플리카들의 수를 감소시킨다. 감소를 위한 스트라이드(stride)에는 2개의 옵션들이 있으며, 하나는 세트 수에 따라 단위 감소가 수행되고 다른 하나는 세트 비율에 따라 단위 감소가 수행되는데 예를 들어, 스트라이드는 기존 숫자의 절반이 될 수 있다.
단계8, 파드 레플리카들의 리소스 사용량이 상위 임계값과 하위 임계값 사이가 될 때까지 단계6과 단계7을 반복한다.
단계9, 단계6,7 및 8에서 물리적 머신들의 리소스들이 클리어되면(cleared), 물리적 머신들을 리사이클링(recycling)하고 물리적 머신들이 슬립 상태로 진입할 수 있게 하며, 물리적 머신들의 리소스들이 충분하지 않으면 리소스 제공을 증가시키기 위해 슬리핑(sleeping) 물리적 머신들을 어웨이크닝한다.
일부 실시예들에서, 동적 변화 스케줄링 시스템은 각각의 현재 파드 레플리카의 부하 상태에 의존하는 유연한 레플리카 세트를 사용하여 스케줄링을 수행한다. 예를 들어, 사용자에 의해 설정된 파드 레플리카들 수인 3이 표준 값으로 취해질 수 있고; 파드 레플리카들의 전체 부하가 낮을 때, 고가용성과 같은 제약 조건이 충족되는 조건하에서 파드 레플리카들의 수가 감소되며; 파드 레플리카들의 전체 부하가 높을 때, 파드 레플리카들의 수는 수요에 맞게 동적으로 증가된다.
이러한 방식으로, 유연한 레플리카 세트 동작은 클러스터에서 계산이 많은 리소스들에 대한 수요를 감소되게 한다. 또한, 클러스터에서 물리적 머신들의 일부를 슬립 상태로 진입하여 클라우드 컴퓨팅 클러스터의 에너지 소비도 감소시키도록 할 수 있다. 전기세가 클라우드 컴퓨팅 플랫폼의 주요 지속 비용들 중 하나이므로, 운영 비용이 감소될 수 있다.
동적 변화 스케줄링 시스템의 스케줄링 흐름은 다음을 포함한다:
단계1, 서비스 제공을 위해 하나의 파드 레플리카 세트에 대한 리소스 사용량의 주기적인 법칙을 분석한다. 앞서 언급한 바와 같이, 날짜, 주, 월 및 연도의 4개의 기간에 따라 리소스 사용량의 피크 시기, 밸리 시기 및 평균값이 분석될 수 있다.
예를 들어, 한 서비스의 리소스 사용량은 서비스에 포함된 모든 파드 레플리카들에 대한 리소스 사용량의 합계이다. 시스템은 총 파드 레플리카들이 얼마나 많이 존재하는지에 관계없이 서비스 리소스 총 수요가 지원될 수 있는지를 보장해야 한다.
단계2, 단일 파드 레플리카에 대한 리소스 사용량의 최대값을 통해, 각 시기의 최대 리소스 수요(트래픽 피크)에 의해 요구된 파드 레플리카들의 수를 계산하고; 각 시기의 최소 리소스 수요(트래픽 밸리)에 의해 요구된 파드 레플리카들의 수를 계산한다.
단계3, 시스템이 트래픽 피크에 있을 때, 파드 레플리카들의 스케줄링을 지원하기에 충분한 리소스들을 리저브(reserve)한다.
단계4, 시스템의 정상 실행 동안, 서비스의 평균 리소스 수요에 따라 작업 부하 처리를 충족할 수 있는 여러 파드 레플리카들을 할당한다.
단계5, 트래픽 피크가 되면 리소스 수요가 증가하고, 단일 파드 레플리카의 리소스 부하가 세트 임계값을 초과하여 파드 레플리카들의 수를 증가시키는 흐름을 시작한다.
단계6, 파드 레플리카들의 수를 증가시킨다. 예를 들어, 클러스터에 할당을 위한 리소스들이 충분하지 않은 경우, 리소스 제공을 증가시키기 위해 슬리핑 물리적 머신들을 어웨이크닝한다.
일부 실시예들에서, 물리적 머신을 어웨이크닝하고 초기화하는 데 걸린 시간T0가 기록되고; 리소스 사용량의 주기적인 변화에 따라 시간T의 클러스터에서 사용 가능한 물리적 호스트 리소스들이 수요를 충족하지 못할 것으로 예측되며; 물리적 호스트를 어웨이크닝하는 액션(action)은 시간T-T0에서 시작된다.
단계7, 물리적 리소스가 준비된 후 파드 레플리카들을 스케줄링하고 대응하는 서비스와 파드 레플리카들을 연결한다.
단계8, 리소스 수요가 계속 증가하면 수요가 더 이상 증가하지 않을 때까지 단계5 내지 단계7로의 흐름을 반복한다.
단계9, 트래픽 수요가 감소하고 리소스 수요 법칙에 따라 리소스 수요가 정상 상태로 복원될 것으로 분석되면, 파드 레플리카들의 수를 점차적으로 감소시키고; 높은 부하를 갖고 실행되고 트래픽 수요를 충족할 수 있도록 잔여 파드 레플리카들을 제어한다. 파드 레플리카들은 적은 수의 물리적 호스트들에 가능한 한 스케줄링되어 클리어된 물리적 호스트가 슬립 상태로 진입하게끔 할 수 있다.
단계10, 파드 레플리카들의 수가 시스템의 정상 실행 동안 필요한 수로 복원될 때까지 단계9를 반복한다.
단계11, 트래픽 밸리가 되면, 트래픽 피크를 처리하는 흐름과 반대되는 파드 레플리카들의 수를 먼저 감소시키고; 가능한 한 적은 수의 물리적 호스트들에 파드 레플리카들을 스케줄링하며; 클리어된 물리적 호스트를 슬립 상태로 진입하게끔 할 수 있다. 트래픽이 증가하면, 파드 레플리카들의 수가 정상 값으로 증가된다.
일부 실시예들에서, 물리적 머신 상태 제어 모듈(제어 유닛을 포함할 수 있음)은 리소스 수요에 따라 슬립 모드, 에너지-절약 모드 및 고성능 모드와 같은 물리적 머신의 다른 상태들을 제어한다. 예를 들어, 물리적 머신 모드는 파드 샘플들을 실행하여 제어될 수 있다. 이는, 예를 들어 도5의 실시예들에 의해 달성될 수 있다.
도5는 본 개시내용에 따른 컨테이너들의 스케줄링 방법에 대한 다른 실시예들의 개략도를 도시한다.
도5와 같이, 물리적 머신이 클리어되면, 즉 실행 중인 파드 샘플이 없을 때, 최근의 비즈니스 트래픽이 리바운드(rebound)할지 여부가 판단된다. 리바운드하지 않는 조건하에서 물리적 호스트는 슬립 모드로 진입되어 에너지 소비를 최소화하도록 한다.
파드 샘플들의 적은 수(수 임계값 미만인 수)만 물리적 머신에서 실행되고 실제 리소스 사용량이 물리적 머신에 의해 제공될 수 있는 용량보다 아래에 있는 경우, 물리적 머신은 에너지-절약 모드(저성능 모드)로 진입할 수 있게 된다. 이러한 방식으로, 리소스 사용량이 보장되면서 에너지 소비가 감소될 수 있다.
물리적 머신이 슬립 모드에 있고 시스템이 더 많은 물리적 머신 리소스들이 요구될 것이라고 평가하면, 에너지-절약 모드로 진입하여 어웨이큰된 물리적 머신이 리소스들 및 시스템 실행 환경을 준비하도록 슬리핑 물리적 머신이 어웨이큰된다.
물리적 머신이 에너지-절약 모드에 있고 실제 리소스 사용량이 증가하면, 에너지-절약 모드의 물리적 머신이 성능 수요를 충족할 수 없으며 그 후, 물리적 머신은 고성능 모드로 진입할 수 있게 된다.
물리적 머신이 고성능 모드에 있고 실제 리소스 사용량이 감소하면, 실제 사용량은 물리적 머신의 용량보다 훨씬 낮고 물리적 머신은 에너지-절약 모드에 진입할 수 있게 된다.
위의 실시예들에서, 파드 샘플들의 스케줄링을 통해 컨테이너 클라우드에서 물리적 머신들의 일부가 슬립 상태에 진입하므로 컨테이너 클라우드 플랫폼 클러스터의 에너지 소비를 크게 감소시키고 전기세를 감소시킨다.
위의 실시예들에서, 6-튜플 및 파드 모드에 기초하여 리소스 사용량 평가 방법을 채택하여 파드 레플리카의 가능한 리소스 사용량이 보다 정확하게 평가됨으로써, 파드 레플리카의 스케줄링을 위한 보다 정확한 기반을 제공한다.
위의 실시예들에서 컨테이너 클라우드에서 제공되는 리소스 사용량에 대한 주기적인 법칙 분석 방법은 더 높은 관점을 채택하여 파드 레플리카들 및 리소스들의 할당 및 복구를 위한 시간을 더 잘 판단할 수 있다.
위의 실시예들에서, 3-레벨의 파드 생성 스케줄링 메커니즘이 제공되어 다양한 제약 조건들이 충족된다는 전제하에 파드 스케줄링이 가장 적은 수의 물리적 머신들을 목표로 수행되도록 한다.
위의 실시예들에서, 파드 동적 변화 스케줄링 메커니즘이 제공된다. 시스템 부하 수요가 충족된다는 전제하에 파드는 비즈니스 트래픽이 밸리에 있을때 리소스들을 재활용하고 에너지를 절약하는 것을 목표로 동적으로 스케줄링된다. 비즈니스 트래픽이 증가하면, 리소스들을 할당하여 비즈니스 수요도 충족될 수 있다.
위의 실시예들에서, 스케줄링될 파드 레플리카와 동일한 유형의 파드 레플리카에 대한 리소스 사용량의 이전(priori) 데이터에 따라 스케줄링될 파드 레플리카의 리소스 사용량이 예측되고; 이를 기반으로, 스케줄링 전략은 각 노드에 의해 제공될 수 있는 리소스들의 수와 함께 생성된다. 이러한 방식으로, 시스템의 리소스 사용량이 리소스 제공과 매칭되어 시스템 리소스들의 낭비를 감소시키도록 할 수 있다.
도6은 본 개시내용에 따른 컨테이너들의 스케줄링 장치에 대한 일부 실시예들의 블록도를 도시한다.
도6에 도시된 바와 같이, 컨테이너들의 스케줄링 장치(6)는 사용량 결정 유닛(61), 노드 매칭 유닛(62) 및 스케줄링 유닛(63)을 포함한다.
이미 실행된 파드 레플리카의 리소스 사용량에 따라 사용량 결정 유닛(61)은 스케줄링될 파드 레플리카의 예측 리소스 사용량을 결정하며, 이미 실행된 파드 레플리카와 스케줄링될 파드 레플리카의 유형들은 동일하다.
예측 리소스 사용량 및 후보(candidate) 노드들(nodes)에 의해 지원되는 리소스 제공에 따라 노드 매칭 유닛(62)은 이미 실행된 파드 레플리카와 매칭되는 적어도 하나의 후보 노드를 결정한다.
일부 실시예들에서, 예측 리소스 사용량에서 리소스에 대한 각 유형의 예측 리소스 사용량이 리소스 제공에서 리소스에 대한 각 유형의 제공과 매칭되는지 여부에 따라 노드 매칭 유닛(62)은 이미 실행된 파드 레플리카와 매칭되는 적어도 하나의 후보 노드를 결정한다.
일부 실시예들에서, 예측 리소스 사용량들에서 리소스에 대한 각 유형의 예측 리소스 사용량이, 대응하는 사용량 임계값보다 큰지 여부를 노드 매칭 유닛(62)이 판단하고; 대응하는 사용량 임계값보다 큰 리소스 유형은 수요 리소스로 결정하며; 적어도 하나의 후보 노드 각각에서, 리소스 제공에서 리소스에 대한 각 유형의 현재 활용률은 대응하는 활용률 임계값 미만인지 여부를 판단하고; 대응하는 활용률 임계값 미만인 현재 활용률을 갖는 리소스에 대한 각 유형을 적어도 하나의 후보 노드 각각의 가용 리소스로 결정하며; 수요 리소스 및 가용 리소스의 매칭에 따라 이미 실행된 파드 레플리카와 매칭되는 적어도 하나의 후보 노드를 결정한다.
스케줄링 유닛(63)은 이미 실행된 파드 레플리카가 적어도 하나의 후보 노드에서 실행되는 것을 스케줄링한다.
일부 실시예들에서, 스케줄링 유닛(63)은 예측 리소스 사용량 및 적어도 하나의 후보 노드의 리소스 제공에 따라 적어도 하나의 후보 노드에 의해 어웨이큰(awaken)될 필요가 있는 물리적 머신들의 수를 결정하고 물리적 머신들의 수는 예측 리소스 사용량을 충족할 수 있는 최소 수이다.
일부 실시예들에서, 판단 결과에 따라 스케줄링될 파드 레플리카의 수를 증가시킬지 여부를 결정하기 위하여, 이미 실행된 파드 레플리카에 대한 리소스 사용량의 획득된 이력 변화에 따라, 스케줄링 장치(6)는 스케줄링될 파드 레플리카가 현재 사용량의 피크 또는 밸리 시기에 존재하는지 여부를 판단하도록 구성된 판단 유닛(64)을 더 포함한다.
일부 실시예들에서, 지정된 시기 내의 각 시점에서 이미 실행된 파드 레플리카의 리소스 사용량에 따라 판단 유닛(64)은 지정된 시기 내의 리소스에 대한 각 유형의 평균 사용량을 계산하고; 평균 사용량에 따라, 지정된 시기 내 리소스에 대한 각 유형의 사용량에 대한 피크 및 밸리 시기들을 이력 변화로 판단한다.
일부 실시예들에서, 이력 변화에 따라 타겟 시점에서 스케줄링될 파드 레플리카의 리소스 사용량을 추정하고; 현재 어웨이큰된(awakened) 물리적 머신이 타겟 시점에서 리소스 사용량을 충족하지 못한다는 조건하에서, 타겟 시점이 되기 전에 리소스들을 제공하도록 하기 위해 타겟 시점에서 리소스 사용량을 충족할 수 있는 물리적 머신들의 수를 어웨이큰 하도록 구성된 제어 유닛(65)을 스케줄링 장치(6)가 더 포함한다.
일부 실시예들에서, 제어 유닛(65)은 피크 시기에 존재하고 단일 스케줄링될 파드 레플리카의 리소스 부하가 부하 임계값을 초과하는 조건하에서, 스케줄링될 파드 레플리카의 수를 증가시킨다.
일부 실시예들에서, 제어 유닛(65)은 밸리 시기에 존재한다는 조건하에서, 스케줄링될 파드 레플리카의 수를 감소시키고, 슬립(sleep) 상태로 진입하기 위해 클리어된(cleared) 물리적 머신을 제어한다.
일부 실시예들에서, 제어 유닛(65)은 적어도 하나의 후보 노드의 대응하는 물리적 머신에서 실행되는 파드 레플리카들의 수에 따라, 고성능 또는 비-고성능 모드에 존재하기 위해 대응하는 물리적 머신을 제어하도록 구성된다.
일부 실시예들에서, 고성능 또는 비-고성능 모드에 존재하기 위해 대응하는 물리적 머신을 제어하는 제어 유닛(65)은: 대응하는 물리적 머신에서 실행되는 파드 레플리카가 없는 조건하에서 슬립 모드에 존재하기 위해 대응하는 물리적 머신을 제어하고; 대응하는 물리적 머신에서 실행되는 파드 레플리카들의 수가 레플리카 임계값 미만인 조건하에서 저성능 모드에 존재하기 위해 대응하는 물리적 머신을 제어하는 것을 포함한다.
일부 실시예들에서, 적어도 하나의 후보 노드 각각은, 스케줄링될 파드 레플리카의 수, 고가용성 수요, 선호도 수요 또는 독점 수요 중 적어도 하나에 따라 결정된다.
위의 실시예들에서, 스케줄링될 파드 레플리카와 동일한 유형의 파드 레플리카에 대한 리소스 사용량의 이전(priori) 데이터에 따라 스케줄링될 파드 레플리카의 리소스 사용량이 예측되고; 이를 기반으로, 스케줄링 전략은 각 노드에 의해 제공될 수 있는 리소스들의 수와 함께 생성된다. 이러한 방식으로, 시스템의 리소스 사용량이 리소스 제공과 매칭되어 시스템 리소스들의 낭비를 감소시키도록 할 수 있다.
도7은 본 개시내용에 따른 컨테이너들의 스케줄링 장치에 대한 다른 실시예들의 블록도를 도시한다.
도7에 도시된 바와 같이, 이 실시예에 대한 컨테이너들의 스케줄링 장치(7)는: 메모리(71) 및 메모리(71)에 연결된 프로세서(72) - 상기 프로세서(72)는 메모리(71)에 저장된 명령어들에 기초하여 본 개시내용의 임의의 실시예들에 따라 컨테이너들의 스케줄링 방법을 수행하도록 구성됨 - 를 포함한다.
메모리(71)는 예를 들어, 시스템 메모리, 고정된 비-일시적 저장 매체 등을 포함할 수 있다. 시스템 메모리에는 예를 들어 운영 체제, 애플리케이션, 부트 로더(boot loader), 데이터베이스, 기타 프로그램들 등이 저장되어 있다.
도8은 본 개시내용에 따른 컨테이너들의 스케줄링 장치에 대해 또 다른 실시예들의 블록도를 도시한다.
도8에 도시된 바와 같이, 이 실시예에 대한 컨테이너들의 스케줄링 장치(8)는: 메모리(810) 및 메모리(810)에 연결된 프로세서(820) - 상기 프로세서(820)는 메모리(810)에 저장된 명령어들에 기초하여 위에 설명된 임의의 실시예들에서 컨테이너들의 스케줄링 방법을 수행하도록 구성됨 - 를 포함한다.
메모리(810)는 예를 들어, 시스템 메모리, 고정된 비-일시적 저장 매체 등을 포함할 수 있다. 시스템 메모리에는 예를 들어 운영 체제, 애플리케이션, 부트 로더, 기타 프로그램들 등이 저장되어 있다.
컨테이너들의 스케줄링 장치(8)는 입력/출력 인터페이스(830), 네트워크 인터페이스(840), 스토리지 인터페이스(850) 등을 더 포함할 수 있다. 이들 인터페이스들(830, 840, 850), 메모리(810) 및 프로세서(820)는, 예를 들면 버스(860)를 통해 연결될 수 있다. 입력/출력 인터페이스(830)는 디스플레이, 마우스, 키보드 및 터치스크린과 같은 입력/출력 장치들에 대한 연결 인터페이스를 제공한다. 네트워크 인터페이스(840)는 다양한 네트워킹 장치들을 위한 연결 인터페이스를 제공한다. 스토리지 인터페이스(850)는 SD 카드 및 USB 플래시 디스크와 같은 외부 저장 장치들 대한 연결 인터페이스를 제공한다.
본 개시내용의 실시예들은 방법, 시스템 또는 컴퓨터 프로그램 제품으로서 제공될 수 있다는 것이 당업자에 의해 이해되어야 한다. 따라서, 본 개시내용은 전체 하드웨어 실시예, 전체 소프트웨어 실시예 또는 소프트웨어와 하드웨어 측면들을 결합한 실시예의 형태를 취할 수 있다. 더욱이, 본 개시내용은 내부에 구현된 컴퓨터-사용가능 프로그램 코드를 갖는 하나 이상의 컴퓨터-이용가능 비-일시적 저장 매체(디스크 메모리, CD-ROM, 광학 메모리 등을 포함하지만 이에 제한되지 않음)상에 구현된 컴퓨터 프로그램 제품의 형태를 취할 수 있다.
지금까지, 본 개시내용에 따른 상세한 설명을 진행하였다. 당업계에 잘 알려진 일부 세부사항들은 본 개시내용의 개념들을 모호하게 하는 것을 피하기 위해 설명되지 않았다. 당업자는 이제 전술한 설명의 관점에서 본 명세서에 개시된 기술적 해결방안들을 구현하는 방법을 충분히 이해할 수 있다.
본 개시내용의 방법 및 시스템은 다양한 방식들로 구현될 수 있다. 본 개시내용의 방법 및 시스템은 예를 들어 소프트웨어, 하드웨어, 펌웨어 또는 소프트웨어, 하드웨어 및 펌웨어의 임의의 조합으로 구현될 수 있다. 방법의 단계들에 대한 상기 순서는 예시만을 위한 것이며, 본 개시내용에 대한 방법의 단계들은 달리 구체적으로 언급되지 않는 한 위에서 구체적으로 설명된 순서에 제한되지 않는다. 더욱이, 일부 실시예들에서, 본 개시내용은 기록 매체에 기록된 프로그램들 - 상기 프로그램들은 본 개시내용에 따른 방법을 구현하기 위한 머신-판독가능 명령어들을 포함함 - 로도 구현될 수 있다. 따라서, 본 개시내용은 또한 본 개시내용에 따른 방법을 실행하기 위한 프로그램들이 저장된 기록 매체를 다룬다.
본 개시내용의 일부 특정 실시예들이 예들에 의해 상세하게 설명되었지만, 상기 예들은 예시만을 위한 것이며 본 개시내용의 범위를 제한하도록 의도된 것이 아님을 당업자에 의해 이해되어야 한다. 당업자는 본 개시내용의 범위 및 사상을 벗어나지 않고 상기 실시예들에 대한 수정이 이루어질 수 있음을 이해해야 한다. 본 개시내용의 범위는 첨부된 청구범위에 의해 정의된다.

Claims (17)

  1. 컨테이너들의 스케줄링(scheduling) 방법으로서,
    이미 실행된 파드 레플리카(Pod replica)의 리소스 사용량에 따라 스케줄링될 파드 레플리카 - 상기 이미 실행된 파드 레플리카와 상기 스케줄링될 파드 레플리카의 유형들은 동일함 - 의 예측 리소스 사용량을 결정하는 단계;
    상기 예측 리소스 사용량 및 후보(candidate) 노드들(nodes)에 의해 지원되는 리소스 제공에 따라 상기 이미 실행된 파드 레플리카와 매칭되는 적어도 하나의 후보 노드를 결정하는 단계; 및
    상기 적어도 하나의 후보 노드에서 실행되도록 상기 이미 실행된 파드 레플리카를 스케줄링 하는 단계;
    를 포함하는 스케줄링 방법.
  2. 제1항에 있어서,
    상기 이미 실행된 파드 레플리카와 매칭되는 적어도 하나의 후보 노드를 결정하는 단계는:
    상기 예측 리소스 사용량에서 각 유형의 예측 리소스 사용량이 상기 리소스 제공에서 리소스에 대한 각 유형의 제공과 매칭되는지 여부에 따라 상기 이미 실행된 파드 레플리카와 매칭되는 상기 적어도 하나의 후보 노드를 결정하는 단계
    를 포함하는 스케줄링 방법.
  3. 제2항에 있어서,
    상기 이미 실행된 파드 레플리카와 매칭되는 적어도 하나의 후보 노드를 결정하는 단계는:
    상기 예측 리소스 사용량에서 리소스에 대한 각 유형의 상기 예측 리소스 사용량이 리소스에 대한 각 유형에 대응하는 사용량 임계값보다 큰지 여부를 판단하는 단계;
    대응하는 사용량 임계값보다 큰 예측 리소스 사용량을 갖는 리소스를 수요 리소스로 결정하는 단계;
    상기 적어도 하나의 후보 노드 각각에서, 상기 리소스 제공에서 리소스에 대한 각 유형의 현재 활용률이 리소스에 대한 각 유형에 대응하는 활용률 임계값 미만인지 여부를 판단하는 단계;
    대응하는 활용률 임계값 미만인 현재 활용률을 갖는 리소스를 상기 적어도 하나의 후보 노드 각각의 가용 리소스로 결정하는 단계; 및
    상기 수요 리소스 및 상기 가용 리소스의 상기 매칭에 따라 상기 이미 실행된 파드 레플리카와 매칭되는 상기 적어도 하나의 후보 노드를 결정하는 단계
    를 포함하는 스케줄링 방법.
  4. 제1항에 있어서,
    상기 적어도 하나의 후보 노드에서 실행되도록 상기 이미 실행된 파드 레플리카를 스케줄링하는 단계는:
    상기 예측 리소스 사용량 및 상기 적어도 하나의 후보 노드의 상기 리소스 제공에 따라 상기 적어도 하나의 후보 노드에 의해 어웨이큰(awaken)될 필요가 있는 물리적 머신들의 수를 결정하는 단계를 포함하고, 상기 물리적 머신들의 수는 상기 예측 리소스 사용량을 충족하는 최소 수인
    스케줄링 방법.
  5. 제1항에 있어서,
    상기 이미 실행된 파드 레플리카에 대한 상기 리소스 사용량의 이력(historical) 변화를 획득하는 단계;
    상기 이력 변화에 따라 상기 스케줄링될 파드 레플리카가 현재 사용량의 피크(peak) 또는 밸리(valley) 시기(time period)에 존재하는지 여부를 판단하는 단계; 및
    상기 판단 결과에 따라 상기 스케줄링될 파드 레플리카의 수를 증가시킬지 여부를 결정하는 단계
    를 더 포함하는 스케줄링 방법.
  6. 제5항에 있어서,
    상기 이미 실행된 파드 레플리카에 대한 상기 리소스 사용량의 이력(historical) 변화를 획득하는 단계는:
    지정된 시기 내의 각 시점에서 상기 이미 실행된 파드 레플리카의 상기 리소스 사용량에 따라 상기 지정된 시기 내의 리소스에 대한 각 유형의 평균 사용량을 계산하는 단계; 및
    상기 평균 사용량에 따라 상기 지정된 시기 내의 리소스에 대한 각 유형의 상기 사용량에 대한 상기 피크 및 밸리 시기들을 상기 이력 변화로서 결정하는 단계
    를 포함하는 스케줄링 방법.
  7. 제5항에 있어서,
    상기 이력 변화에 따라 타겟 시점에서 상기 스케줄링될 파드 레플리카의 리소스 사용량을 추정하는 단계; 및
    상기 현재 어웨이큰된 물리적 머신이 상기 타겟 시점에서 상기 리소스 사용량을 충족하지 못한다는 조건하에서, 상기 타겟 시점이 되기 전에 리소스들을 제공하도록 하기 위해 상기 타겟 시점에서 상기 리소스 사용량을 충족하는 물리적 머신들의 수를 어웨이크닝(awakening)하는 단계
    를 더 포함하는 스케줄링 방법.
  8. 제5항에 있어서,
    상기 판단 결과에 따라 상기 스케줄링될 파드 레플리카의 수를 증가시킬지 여부를 결정하는 단계는:
    상기 피크 시기에 존재하고 특정 스케줄링될 파드 레플리카의 리소스 부하(load)가 부하 임계값을 초과하는 조건하에서, 상기 스케줄링될 파드 레플리카의 수를 증가시키는 단계
    를 포함하는 스케줄링 방법.
  9. 제5항에 있어서,
    상기 판단 결과에 따라 상기 스케줄링될 파드 레플리카의 수를 증가시킬지 여부를 결정하는 단계는:
    상기 밸리 시기에 존재한다는 조건하에서, 상기 스케줄링될 파드 레플리카의 수를 감소시키고, 슬립(sleep) 상태로 진입하기 위해 클리어된(cleared) 물리적 머신을 제어하는 단계
    를 포함하는 스케줄링 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 적어도 하나의 후보 노드에 대응하는 상기 물리적 머신에서 실행되는 파드 레플리카들의 수에 따라, 고성능 또는 비-고성능 모드에 존재하기 위해 상기 적어도 하나의 후보 노드에 대응하는 물리적 머신을 제어하는 단계
    를 더 포함하는 스케줄링 방법.
  11. 제10항에 있어서,
    고성능 또는 비-고성능 모드에 존재하기 위해 상기 적어도 하나의 후보 노드의 대응하는 물리적 머신을 제어하는 단계는:
    상기 대응하는 물리적 머신에서 실행 중인 파드 레플리카가 없다는 조건하에, 슬립 모드에 존재하기 위해 상기 대응하는 물리적 머신을 제어하는 단계; 및
    상기 대응하는 물리적 머신에서 실행되는 파드 레플리카들의 수가 레플리카 임계값 미만인 조건하에서, 저성능 모드에 존재하기 위해 상기 대응하는 물리적 머신을 제어하는 단계
    를 포함하는 스케줄링 방법.
  12. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 적어도 하나의 후보 노드 각각은, 상기 스케줄링될 파드 레플리카의 수, 고가용성(high availability) 수요, 선호도 수요 또는 독점 수요 중 적어도 하나에 따라 결정되는
    스케줄링 방법.
  13. 컨테이너들의 스케줄링(scheduling) 장치로서,
    이미 실행된 파드 레플리카의 리소스 사용량에 따라 스케줄링될 파드 레플리카 - 상기 이미 실행된 파드 레플리카와 상기 스케줄링될 파드 레플리카의 유형들은 동일함 - 의 예측 리소스 사용량을 결정하도록 구성된 사용량 결정 유닛,
    상기 예측 리소스 사용량 및 후보(candidate) 노드들(nodes)에 의해 지원되는 리소스 제공에 따라 상기 이미 실행된 파드 레플리카와 매칭되는 적어도 하나의 후보 노드를 결정하도록 구성된 노드 매칭 유닛; 및
    상기 이미 실행된 파드 레플리카가 상기 적어도 하나의 후보 노드에서 실행되는 것을 스케줄링하도록 구성된 스케줄링 유닛
    을 포함하는 스케줄링 장치.
  14. 제13항에 있어서,
    상기 판단 결과에 따라 상기 스케줄링될 파드 레플리카의 수를 증가시킬지 여부를 결정하기 위하여, 상기 이미 실행된 파드 레플리카에 대한 상기 리소스 사용량의 획득된 이력 변화에 따라, 상기 스케줄링될 파드 레플리카가 현재 사용량의 피크 또는 트로프(trough) 시기에 존재하는지 여부를 판단하도록 구성된 판단 유닛
    을 더 포함하는 스케줄링 장치.
  15. 제13항에 있어서,
    상기 적어도 하나의 후보 노드의 대응하는 물리적 머신에서 실행되는 파드 레플리카들의 수에 따라, 고성능 또는 비-고성능 모드에 존재하기 위해 상기 대응하는 물리적 머신을 제어하도록 구성된 제어 유닛
    을 더 포함하는 스케줄링 장치.
  16. 컨테이너들의 스케줄링(scheduling) 장치로서,
    메모리; 및
    상기 메모리에 커플링된(coupled) 프로세서 - 상기 프로세서는 상기 메모리에 저장된 명령어들에 기초하여 제1항 내지 제12항 중 어느 한 항에 따른 컨테이너들의 스케줄링 방법을 수행하도록 구성됨 -,
    를 포함하는 스케줄링 장치.
  17. 프로세서에 의해 실행될 때 제1항 내지 제12항 중 어느 한 항에 따른 컨테이너들의 스케줄링 방법을 구현하는 컴퓨터 프로그램이 저장된 비-일시적 컴퓨터-판독가능 저장 매체.
KR1020227021709A 2019-11-26 2020-09-23 컨테이너 스케줄링 방법 및 장치 그리고 비-휘발성 컴퓨터-판독가능 저장 매체 KR20220100982A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201911175494.6 2019-11-26
CN201911175494.6A CN110888714B (zh) 2019-11-26 2019-11-26 容器的调度方法、装置和计算机可读存储介质
PCT/CN2020/117244 WO2021103790A1 (zh) 2019-11-26 2020-09-23 容器的调度方法、装置和非易失性计算机可读存储介质

Publications (1)

Publication Number Publication Date
KR20220100982A true KR20220100982A (ko) 2022-07-18

Family

ID=69748883

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227021709A KR20220100982A (ko) 2019-11-26 2020-09-23 컨테이너 스케줄링 방법 및 장치 그리고 비-휘발성 컴퓨터-판독가능 저장 매체

Country Status (6)

Country Link
US (1) US20230004436A1 (ko)
EP (1) EP4068090A4 (ko)
JP (1) JP2023503173A (ko)
KR (1) KR20220100982A (ko)
CN (1) CN110888714B (ko)
WO (1) WO2021103790A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102561320B1 (ko) * 2022-12-29 2023-07-27 오케스트로 주식회사 리소스 추세 예측을 통한 컨테이너 레플리카 추천 시스템 및 추천 방법
KR102607460B1 (ko) * 2023-03-31 2023-11-29 오케스트로 주식회사 수평 스케일 컨트롤에 기반한 오토 스케일링 방법 및 오토 스케일링 시스템

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110888714B (zh) * 2019-11-26 2023-06-23 北京京东尚科信息技术有限公司 容器的调度方法、装置和计算机可读存储介质
CN111694666B (zh) * 2020-06-10 2023-11-07 中国建设银行股份有限公司 一种任务分发管理方法、装置、设备及介质
CN112506618A (zh) * 2020-12-18 2021-03-16 北银金融科技有限责任公司 一种在容器应用中动态匹配存储类的方法及系统
CN112948061A (zh) * 2021-03-29 2021-06-11 建信金融科技有限责任公司 Pod的调度方法、装置、存储介质及系统
CN115509676A (zh) * 2021-06-22 2022-12-23 华为云计算技术有限公司 一种容器集的部署方法及装置
US20230073891A1 (en) * 2021-09-09 2023-03-09 Beijing Bytedance Network Technology Co., Ltd. Multifunctional application gateway for security and privacy
CN114327023B (zh) * 2021-12-30 2023-08-15 上海道客网络科技有限公司 一种Kubernetes集群的节能方法、系统、计算机介质和电子设备
CN115714747B (zh) * 2022-12-13 2024-07-26 重庆紫光华山智安科技有限公司 基于Kubernetes的集群内部网络流量优化方法、设备、系统及介质
US11977926B1 (en) * 2023-06-26 2024-05-07 Microsoft Technology Licensing, Llc Deployment of pod cohorts

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856797B1 (en) * 2011-10-05 2014-10-07 Amazon Technologies, Inc. Reactive auto-scaling of capacity
EP4224800A1 (en) * 2011-10-21 2023-08-09 Google LLC Automated control-schedule acquisition within an intelligent controller
CA2932403A1 (en) * 2013-12-02 2015-07-02 Qbase, LLC Systems and methods for hosting an in-memory database
CA2891435A1 (en) * 2014-06-11 2015-12-11 Kevin Lee Friesth Quintuple-effect generation multi-cycle hybrid renewable energy system with integrated energy provisioning, storage facilities and amalgamated control system
CN104123189B (zh) * 2014-06-30 2017-12-01 复旦大学 一种基于IaaS层应用感知的Web多层应用动态资源调整方法
CN106533723B (zh) * 2015-09-11 2020-10-23 南京中兴软件有限责任公司 虚拟资源调度方法、装置及系统
US10032032B2 (en) * 2015-12-18 2018-07-24 Amazon Technologies, Inc. Software container registry inspection
US10002247B2 (en) * 2015-12-18 2018-06-19 Amazon Technologies, Inc. Software container registry container image deployment
US10268514B1 (en) * 2016-03-22 2019-04-23 Amazon Technologies, Inc. Performance analysis of stateless compute functions using function call intercept
US10942776B2 (en) * 2016-09-21 2021-03-09 Accenture Global Solutions Limited Dynamic resource allocation for application containers
CN107045455B (zh) * 2017-06-19 2019-06-11 华中科技大学 一种基于负载预测的Docker Swarm集群资源调度优化方法
CN108228347A (zh) * 2017-12-21 2018-06-29 上海电机学院 一种任务感知的Docker自适应调度系统
CN108304250A (zh) * 2018-03-05 2018-07-20 北京百度网讯科技有限公司 用于确定运行机器学习任务的节点的方法和装置
CN109117265A (zh) * 2018-07-12 2019-01-01 北京百度网讯科技有限公司 在集群中调度作业的方法、装置、设备及存储介质
CN110287029A (zh) * 2019-06-27 2019-09-27 中国—东盟信息港股份有限公司 一种基于kubernetes容器资源动态调整的方法
CN110888714B (zh) * 2019-11-26 2023-06-23 北京京东尚科信息技术有限公司 容器的调度方法、装置和计算机可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102561320B1 (ko) * 2022-12-29 2023-07-27 오케스트로 주식회사 리소스 추세 예측을 통한 컨테이너 레플리카 추천 시스템 및 추천 방법
KR102607460B1 (ko) * 2023-03-31 2023-11-29 오케스트로 주식회사 수평 스케일 컨트롤에 기반한 오토 스케일링 방법 및 오토 스케일링 시스템

Also Published As

Publication number Publication date
EP4068090A4 (en) 2024-01-03
WO2021103790A1 (zh) 2021-06-03
JP2023503173A (ja) 2023-01-26
US20230004436A1 (en) 2023-01-05
CN110888714B (zh) 2023-06-23
CN110888714A (zh) 2020-03-17
EP4068090A1 (en) 2022-10-05

Similar Documents

Publication Publication Date Title
KR20220100982A (ko) 컨테이너 스케줄링 방법 및 장치 그리고 비-휘발성 컴퓨터-판독가능 저장 매체
WO2021179462A1 (zh) 基于改进量子蚁群算法的Spark平台任务调度方法
US20170139462A1 (en) Datacenter power management optimizations
EP2646890B1 (en) Dynamic power balancing among blade servers in a chassis
Zhao et al. A new energy-aware task scheduling method for data-intensive applications in the cloud
US8626902B2 (en) Modeling and reducing power consumption in large IT systems
CN104407926B (zh) 一种云计算资源的调度方法
US20100318827A1 (en) Energy use profiling for workload transfer
US9600343B2 (en) System and method for analyzing computing system resources
CN105868004B (zh) 一种基于云计算的业务系统的调度方法及调度装置
Jin et al. Energy-efficient task scheduling for CPU-intensive streaming jobs on Hadoop
US20080275804A1 (en) Monte Carlo Grid Scheduling Algorithm Selection Optimization
Fernández-Cerero et al. Energy policies for data-center monolithic schedulers
CN110806918A (zh) 基于深度学习神经网络的虚拟机运行方法和装置
CN115291806A (zh) 一种处理方法、装置、电子设备及存储介质
Zhang et al. GreenDRL: managing green datacenters using deep reinforcement learning
Singh et al. Value and energy optimizing dynamic resource allocation in many-core HPC systems
Ohmura et al. Toward building a digital twin of job scheduling and power management on an HPC system
CN110825212B (zh) 节能调度方法及装置、计算机可存储介质
US20140122403A1 (en) Loading prediction method and electronic device using the same
CN116932156A (zh) 一种任务处理方法、装置及系统
Chan et al. Nonclairvoyant sleep management and flow-time scheduling on multiple processors
WO2019196595A1 (zh) 管理应用程序的方法与装置
Singh et al. Value and energy aware adaptive resource allocation of soft real-time jobs on many-core HPC data centers
Forshaw Operating policies for energy efficient large scale computing