KR102199275B1 - 분산 컴퓨팅 시스템에서의 적응적 리소스 관리 - Google Patents

분산 컴퓨팅 시스템에서의 적응적 리소스 관리 Download PDF

Info

Publication number
KR102199275B1
KR102199275B1 KR1020197003814A KR20197003814A KR102199275B1 KR 102199275 B1 KR102199275 B1 KR 102199275B1 KR 1020197003814 A KR1020197003814 A KR 1020197003814A KR 20197003814 A KR20197003814 A KR 20197003814A KR 102199275 B1 KR102199275 B1 KR 102199275B1
Authority
KR
South Korea
Prior art keywords
resource
application
task
application task
execution
Prior art date
Application number
KR1020197003814A
Other languages
English (en)
Other versions
KR20190028477A (ko
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 KR20190028477A publication Critical patent/KR20190028477A/ko
Application granted granted Critical
Publication of KR102199275B1 publication Critical patent/KR102199275B1/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/5061Partitioning or combining of resources
    • 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
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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
    • 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/5083Techniques for rebalancing the load in a distributed system
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/504Resource capping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Abstract

본 개시는 효율적인 리소스 활용을 보장하기 위해 분산 시스템들에서 실행되고 있는 애플리케이션들에 대한 적응적 리소스 핸들링을 위한 프레임워크를 제공한다. 본 개시는: 리소스 적응이 더 효과적이도록 클라이언트가 태그들을 사용하여 고유하게 애플리케이션을 식별하는 데 참여하는 것을 가능하게 하고, 다양한 파라미터들에 대해 애플리케이션 태스크에 대한 리소스 통계를 수집 및 저장하고, 수집된 이력 통계에 기초하여 행해지는 리소스들을 모니터링하고, 이력적으로 식별된 리소스 사용 한계들에 기초하여 리소스 관리가 행해지고, 기록들에 대한 정확한 매칭이 발견되지 않으면 신뢰 스코어에 기초하여 한계들이 식별되고, 각각의 리소스 관리기(RM) 에이전트가 양쪽 한계들: 애플리케이션에 의해 주어진 것(하드 한계) 및 이력 통계에 의해 주어진 것(소프트 한계)으로 론칭될 워커들을 수신하는 것을 가능하게 하는 프레임워크를 제공한다.

Description

분산 컴퓨팅 시스템에서의 적응적 리소스 관리
본 명세서에 설명된 본 개시는 일반적으로 리소스 관리에 관한 것으로, 더 구체적으로는 분산 컴퓨팅 시스템에서 컴퓨터 리소스들을 관리하기 위한 시스템들, 방법들 및 디바이스들에 관한 것이다.
네트워크 기술들에서의 빠른 발전으로, 분산 컴퓨팅은 많은 상이한 사용자들 또는 시스템들 또는 이들의 임의의 조합 사이에서 계산 리소스들(예를 들어, 메모리, 처리 시간, 입력/출력 등)의 공유를 허용함에 따라 점점 더 인기 있는 컴퓨팅 접근법이 되었다. 하나의 그러한 예는 "클라우드 컴퓨팅"이며, 이는 네트워크 내의 여러 컴퓨터들의 리소스들을 동시에 단일 문제에 적용하는 것을 수반한다. 클라우드 컴퓨팅은 컴퓨터 기술("컴퓨팅")의 인터넷("클라우드") 기반 개발 및 사용이다. 개념적으로, 인프라스트럭처 세부사항들은 그들을 지원하는 "클라우드 내의" 기술 인프라스트럭처에 대한 지식, 전문 지식 또는 제어를 더 이상 필요로 하지 않는 사용자들 및/또는 시스템들로부터 추상화된다. 그것은 전형적으로 동적으로 스케일 가능하고 종종 가상화된 리소스들을 인터넷을 통한 서비스로서 제공하는 것을 수반한다.
분산 시스템(클러스터라고도 함)은 네트워크에 의해 상호연결된 리소스들의 세트를 포함한다. 리소스 관리기는 적어도 하나의 클러스터 상에서 실행되는 분산 애플리케이션들에 대한 이용 가능한 리소스들의 할당을 제어한다. 도 1은 클러스터 상에서 실행되는 분산 애플리케이션들에 대한 이용 가능한 리소스들의 할당을 제어하는 리소스 관리기의 넓은 레벨 다이어그램을 예시한다. 도 1에 도시된 바와 같이, 수반되는 주요 컴포넌트들은 컴퓨터와 같은 RM 에이전트 소스 상에서 실행되는 리소스 관리기(RM), 애플리케이션 관리기(AM), RM 에이전트, 및 태스크 실행기이다. 리소스 관리기는 라이브 RM 에이전트들 및 이용 가능한 리소스들을 계속 유지한다. 그것은 애플리케이션 관리기에 의해 특정된 리소스 요구들에 기초하여 애플리케이션들 및 태스크들에 이용 가능한 리소스들을 할당한다. AM은 애플리케이션 수명 주기 내에 모든 태스크들의 실행을 조정하고, 태스크들을 실행하기 위해 컨테이너들을 요청하고, "리소스 관리기"에 "리소스 요청"을" 전송한다. 리소스 요청은 메모리, CPU 등과 같은 요구된 리소스들을 특정할 수 있다. 사용자는 분산 애플리케이션의 태스크-실행기들(태스크들)에 대한 리소스 요구를 제공한다. RM 에이전트는 호스트/RM 에이전트 상의 이용 가능한 리소스들에 관한 "RM"에 대한 주기적 업데이트들을 전송하고, 호스트 상의 "리소스 관리기"에 의해 할당된 리소스들에 기초하여, 호스트 상의 "태스크-실행기" 프로세스를 시작하고, "태스크-실행기"의 리소스 사용을 모니터링한다. 태스크 실행기는 상이한 유형의 애플리케이션 태스크들의 실행을 담당하고, 각각의 태스크는 상이한 리소스(예를 들어, RAM, CPU) 요구들을 가질 수 있다.
도 2는 종래 기술에서 이용 가능한 바와 같은 리소스 할당을 위한 분산 실행 흐름을 예시한다. 도 2에 도시된 바와 같이, 리소스 관리기들은 할당된 것보다 많은 리소스들을 소비하는 로그(rogue) 태스크들을 종료(kill)하는 메커니즘을 갖는다. 실제 리소스 사용은 요청된 리소스의 양보다 항상 적기 때문에 종료되는 것을 방지하기 위해 태스크들은 많은 리소스들(CPU, 메모리, 등)을 요청한다. 리소스 관리기는 실행을 위해 사용되는 실제 리소스들에 기초하지 않고 특정 태스크의 실행을 위해 할당된 리소스들에 기초하여 이용 가능한 리소스들을 계산한다. 이러한 유형의 계산은 클러스터 리소스들의 활용 부족을 야기한다. 또한, 관리자는 리소스들이 충분히 활용되지 않는지를 수동으로 분석하고 식별한 다음, 다음 실행을 위해 구성들에서 요구되는 변경을 수행하고, 큰 클러스터들에 대해 실용적이지 않은 리소스 사용을 최적화할 필요가 있다.
이용 가능한 메커니즘들에도 불구하고, 종래 기술의 기법들은 할당된 리소스들을 활용하지 않는 애플리케이션들이 리소스 활용 부족을 야기하기 때문에 소정의 중요한 문제들을 갖는다. 또한, 관리자는 이력 데이터로부터 리소스 활용 통계를 수동으로 모니터링하고, 클라이언트 리소스 요청들을 조정해야 한다. 이러한 모니터링의 프로세스는 매우 다양한 애플리케이션들을 갖는 큰 클러스터에서의 지루하고 복잡한 프로세스이며, 이는 운영 스태프의 비용을 증가시킨다. 또한, 리소스 활용 부족은 더 높은 구성 하드웨어를 갖는 클러스터에서 더 많은 노드들을 배치하는 것을 야기하며, 이로 인해 벤더들이 하드웨어에 더 많이 투자할 필요가 있기 때문에 더 높은 비용을 초래한다. 따라서, 리소스들의 효과적인 활용이 고려되지 않는다.
이 요약은 분산 컴퓨팅 시스템들에서 적응적 리소스 관리와 관련된 개념들을 도입하기 위해 제공되고, 그와 동일한 것이 아래 상세한 설명에서 더 설명된다. 이 요약은 청구되는 주제의 본질적 특징들을 식별하기 위해 의도된 것도 아니고 청구되는 주제의 범위를 결정하는 데 사용하기 위해 의도된 것도 아니다.
본 발명의 주요 목적은 이력 애플리케이션 실행에 기초하여 애플리케이션 리소스들을 자동으로 모니터링하고, 분석하고, 할당하는 적응적 리소스 관리를 위한 시스템, 방법, 및 디바이스들을 제공함으로써 위에 언급된 바와 같은 기술적 문제를 해결하는 것이다.
일 양태에서, 본 개시는 노드 유형(예를 들어, 하드웨어 유형), 우선순위와 같은 다양한 파라미터들에 대해 각각의 고유 애플리케이션의 태스크에 대한 리소스 통계을 수집 및 저장하기 위한 시스템, 방법, 및 디바이스를 제공한다.
다른 양태에서, 본 개시는 태그들을 통해 고유하게 애플리케이션을 식별하기 위한 시스템, 방법, 및 디바이스를 제공하고, 리소스 적응이 더 효과적이도록, 이러한 태그들에 대해 이력 상태가 수집된다.
이해하고 유의해야 할 점은, 하드 한계는 사용자에 의해 특정되는 리소스 한계이고 그에 기초하여 리소스들이 제한되고 초과하면 시스템이 리소스들을 종료하려고 시도한다는 점이다. 유사하게, 소프트-한계는 이전의 실행들에 기초한 통계 계산된 한계이다. 따라서, 시스템 스케줄링은 소프트-한계에 기초하여 행해질 것이고, 하드 한계까지 더 많은 리소스들에 대해 협상하려고 시도한다. 하드-한계 및 소프트-한계의 동일한 논리적 의미가 본 발명의 이전 설명 전반에 걸쳐 사용된다.
다른 양태에서, 본 개시는 수집된 이력 통계에 기초하여 유연한 리소스 활용 한계(소프트 한계)가 결정되는 것을 가능하게 하고 정확한 매칭 이력 기록들이 발견되지 않으면 신뢰 스코어에 기초하여 개연성 있는 소프트 한계를 평가하는 시스템, 방법, 및 디바이스를 제공한다.
다른 양태에서, 본 개시는 사용자 구성 한계들에 기초하지 않고 식별된 소프트 한계들에 기초하여 태스크들을 실행하기 위한 태스크 실행기들을 론칭하기 위한 시스템, 방법, 및 디바이스를 제공한다. 따라서, 여분의 자유 리소스가 다른 태스크 실행기들에 대해 활용될 수 있다.
다른 양태에서, 본 개시는 동적 리소스 리사이징을 위한 시스템, 방법, 및 디바이스를 제공하고, 여기서, 태스크 실행기들이 소프트 한계보다 큰 리소스들을 이용하고 있을 때, 애플리케이션은 즉시 종료되지 않고 리소스들이 이용 가능한 한 리소스 관리기와 협상함으로써 리소스 활용이 사용자 구성 한계(하드 한계)에 도달할 때까지 단계적으로 성장하도록 허용될 것이다. RM 에이전트들은 리소스 활용이 하드 한계를 초과하지 않는 것을 보장한다.
따라서, 일 구현에서, 본 개시는 적응적 리소스 관리를 위한 시스템을 제공한다. 이 시스템은 적어도 RM 에이전트에 상주하는 태스크 실행기 리소스 모니터링 모듈 및 리소스 관리기를 포함한다. 리소스 관리기는 적어도 애플리케이션으로부터 적어도 하나의 리소스 요청을 수신하도록 구성되고, 애플리케이션은 적어도 애플리케이션 이름 및 태그와 함께 수신되고, 리소스 요청은 실행을 위한 애플리케이션 태스크의 리소스 요구를 적어도 포함한다. 리소스 관리기는 이력 데이터 저장소에 사전 저장된 적어도 이력 리소스 사용 통계에 기초한 애플리케이션 태스크에 대한 소프트 한계를 적어도 제공하거나 적어도 하나의 사용자에 의해 구성된 애플리케이션 태스크에 대한 하드 한계로 복귀하고; 실행을 위해 식별된 RM 에이전트로부터의 리소스를 적어도 할당하도록 구성된 리소스 예측 모듈을 또한 포함한다. RM 에이전트는, 할당 시에, 소프트 한계 또는 하드 한계에 적어도 기초하여 애플리케이션 태스크를 실행하도록 구성되고, 실행 동안 애플리케이션 태스크의 리소스 사용을 적어도 모니터링하고; 태그에 대해 이력 데이터 저장소에 애플리케이션 태스크의 리소스 사용 통계를 적어도 저장하도록 구성된 태스크 실행기 리소스 모니터링 모듈을 포함한다.
일 구현에서, 본 개시는 적응적 리소스 관리를 위한 리소스 관리기를 제공한다. 리소스 관리기는 프로세서, 및 메모리에 존재하는 복수의 모듈을 실행하기 위해 프로세서에 결합된 메모리를 포함한다. 복수의 모듈은 적어도 애플리케이션으로부터 적어도 하나의 리소스 요청을 수신하도록 구성된 수신 모듈 - 애플리케이션은 적어도 애플리케이션 이름 및 태그와 함께 수신되고, 리소스 요청은 실행을 위한 애플리케이션 태스크의 리소스 요구를 적어도 포함함 -; 및 이력 데이터 저장소에 사전 저장된 적어도 이력 리소스 사용 통계에 기초한 애플리케이션 태스크에 대한 소프트 한계를 적어도 제공하거나 적어도 하나의 사용자에 의해 구성된 애플리케이션 태스크에 대한 하드 한계로 복귀하고; 애플리케이션 태스크에 대한 하드 한계 또는 소프트 한계에 기초하여 실행을 위해 식별된 적어도 하나의 RM 에이전트로부터의 리소스를 적어도 할당하도록 구성된 리소스 예측 모듈을 포함한다.
일 구현에서, 본 개시는 실행을 위해 할당된 적어도 하나의 애플리케이션 태스크를 실행하기 위한 RM 에이전트를 제공한다. RM 에이전트는 프로세서, 및 메모리에 존재하는 복수의 모듈을 실행하기 위해 프로세서에 결합된 메모리를 포함한다. 복수의 모듈은 소프트 한계 또는 하드 한계(하드 한계 및 가능한 경우 소프트 한계, 하드 한계는 사용자에 의해 언급된 바와 같을 것임)에 적어도 기초하여 실행을 위한 애플리케이션 태스크를 적어도 수신하도록 구성된 수신 모듈; 상기 애플리케이션 태스크를 실행하도록 구성된 태스크 실행기 모듈 - 상기 태스크 실행기 모듈은 상기 소프트 한계 또는 상기 하드 한계에 기초하여 할당됨 -; 실행 동안 애플리케이션 태스크의 리소스 사용을 적어도 모니터링하고; 상기 태그에 대해 이력 데이터 저장소에 상기 애플리케이션 태스크의 리소스 사용 통계를 적어도 저장하도록 구성된 태스크 실행기 리소스 모니터링 모듈을 포함한다.
일 구현에서, 적응적 리소스 관리를 위한 방법이 개시된다. 이 방법은: 적어도 애플리케이션으로부터 적어도 하나의 리소스 요청을 수신하는 단계 - 상기 애플리케이션은 적어도 애플리케이션 이름 및 태그와 함께 수신되고, 상기 리소스 요청은 실행을 위한 애플리케이션 태스크의 리소스 요구를 적어도 포함함 -; 상기 애플리케이션 태스크의 실행을 위해 적어도 하나의 RM 에이전트를 식별하는 단계; 이력 데이터 저장소에 사전 저장된 적어도 이력 리소스 사용 통계에 기초한 애플리케이션 태스크에 대한 소프트 한계 또는 적어도 하나의 사용자에 의해 구성된 애플리케이션 태스크에 대한 하드 한계를 적어도 제공하는 단계; 실행을 위해 식별된 RM 에이전트로부터의 적어도 하나의 리소스를 할당하는 단계; 상기 소프트 한계 또는 상기 하드 한계에 적어도 기초하여 상기 애플리케이션 태스크를 스케줄링하는 단계; 실행 동안 상기 애플리케이션 태스크의 리소스 사용을 적어도 모니터링하는 단계; 및 상기 태그에 대해 상기 이력 데이터 저장소에 상기 애플리케이션 태스크의 리소스 사용 통계를 적어도 저장하는 단계를 포함한다.
일 구현에서, 리소스 관리기에 의한, 적응적 리소스 관리를 위한 방법이 개시된다. 이 방법은: 적어도 애플리케이션으로부터 적어도 하나의 리소스 요청을 수신하는 단계 - 상기 애플리케이션은 적어도 애플리케이션 이름 및 태그와 함께 수신되고, 상기 리소스 요청은 실행을 위한 애플리케이션 태스크의 리소스 요구를 적어도 포함함 -; 상기 애플리케이션 태스크의 실행을 위해 적어도 하나의 RM 에이전트를 식별하는 단계; 이력 데이터 저장소에 사전 저장된 이력 리소스 사용 통계에 적어도 기초하여 애플리케이션 태스크에 대한 소프트 한계 또는 하드 한계(소프트 한계가 이용 가능하지 않은 경우)를 적어도 제공하는 단계; 및 애플리케이션 태스크에 대한 하드 한계 또는 상기 소프트 한계에 기초하여 실행을 위해 식별된 상기 RM 에이전트로부터의 리소스를 적어도 할당하는 단계를 포함한다.
일 구현에서, 상기 RM 에이전트에 의해, 실행을 위해 할당된 적어도 하나의 애플리케이션 태스크를 실행하는 방법이 개시된다. 이 방법은: 소프트 한계 또는 하드 한계(하드 한계 및 가능한 경우 소프트 한계, 하드 한계는 사용자에 의해 언급된 바와 같을 것임)에 적어도 기초하여 실행을 위한 애플리케이션 태스크를 적어도 수신하는 단계; 상기 애플리케이션 태스크를 실행하는 단계 - 상기 태스크 실행기 모듈은 상기 소프트 한계 또는 상기 하드 한계에 기초하여 할당됨 -; 실행 동안 상기 애플리케이션 태스크의 리소스 사용을 적어도 모니터링하는 단계; 및 상기 태그에 대해 이력 데이터 저장소에 상기 애플리케이션 태스크의 리소스 사용 통계를 적어도 저장하는 단계를 포함한다.
만약 있다면 이용 가능한 종래 기술의 기법들과는 대조적으로, 본 개시는 다음에 언급된 것에 의해 효율적인 리소스 활용을 보장하기 위해 분산 시스템들에서 실행되고 있는 애플리케이션들에 대한 적응적 리소스 핸들링을 제공한다:
리소스 관리기들이 리소스 적응이 더 효과적이도록 태그들을 이용하여 고유하게 애플리케이션을 식별하는 데 참여할 수 있는 프레임워크를 제공하는 것.
노드 유형, 사용자 정의된 애플리케이션 및 태스크 태그 등과 같은 다양한 파라미터들에 대해 각각의 고유한 애플리케이션의 태스크에 대한 리소스 통계를 수집 및 저장하기 위한 프레임워크를 제공하는 것.
수집된 이력 통계에 기초하여 리소스 스케줄링이 행해지는 프레임워크를 제공하는 것.
이력적으로 식별된 리소스 사용 한계들에 기초하여 리소스 관리가 행해지는 프레임워크를 제공하는 것. 기록들에 대한 정확한 매칭이 발견되지 않으면 신뢰 스코어에 기초하여 본 개시는 소프트 한계들을 식별할 것이다.
각각의 RM 에이전트가 양쪽 한계들: 애플리케이션에 의해 주어진 것(하드 한계) 및 이력 통계에 의해 주어진 것(소프트 한계)으로 론칭될 워커들(태스크 실행기들)을 수신하는 프레임워크를 제공하는 것. 또한, RM 에이전트들은 태스크 실행기들이 그의 하드 한계들을 초과하지 않는 것을 보장하고, 실행기들이 소프트 한계를 초과할 때, RM 에이전트는 실행기에 할당된 리소스를 리사이징하려고 동적으로 시도한다.
제1 구현과 관련하여 위에서 언급된 다양한 옵션들 및 바람직한 실시예들은 다른 구현들과 관련하여 또한 적용 가능하다.
상세한 설명은 첨부 도면을 참조하여 설명된다. 도면들에서, 참조 번호의 가장 좌측의 숫자(들)는 그 참조 번호가 처음으로 나오는 도면을 식별한다. 동일한 번호들이 도면들 전체에 걸쳐 유사한 특징들 및 컴포넌트들을 지칭하는 데 사용된다.
도 1은 종래 기술에서 구현된 바와 같이 클러스터 상에서 실행되는 분산 애플리케이션들에 이용 가능한 리소스들의 할당을 제어하는 리소스 관리기를 예시한다.
도 2는 종래 기술에서 구현된 바와 같이 리소스들이 할당되는 경우 실행을 위한 분산 실행 흐름을 예시한다.
도 3은 본 주제의 실시예에 따른, 하이 레벨 시스템 실현을 예시한다.
도 4는 본 주제의 실시예에 따른, 태스크의 실행을 위한 리소스 할당의 흐름을 예시한다.
도 5는 본 주제의 실시예에 따른, 이력 데이터 저장소에 저장될 이력 통계를 채우는 것을 예시한다.
도 6은 본 주제의 실시예에 따른, 정확한 매칭에 대한 소프트-한계 평가의 예를 예시한다.
도 7은 본 주제의 실시예에 따른, 소프트-한계의 이점들을 보여주는 예시적인 흐름을 예시한다.
도 8은 본 주제의 실시예에 따른, 신뢰 스코어에 기초한 소프트-한계 평가의 예를 예시한다.
도 9는 본 주제의 실시예에 따른, 소프트 한계들로 론칭하고 리소스 사용 통계를 업데이트하는 태스크의 블록 다이어그램을 예시한다.
도 10은 본 주제의 실시예에 따른, 태스크 실행기가 소프트-한계를 초과하고 동적 리사이징의 접근법을 캡처하는 블록 다이어그램을 예시한다.
도 11은 본 주제의 실시예에 따른, 태스크 실행기가 하드-한계를 초과하는 블록 다이어그램을 예시한다.
도 12는 본 주제의 실시예에 따른, 태스크 실행기가 소프트-한계 - 버퍼를 초과하지만 RM 에이전트 내에 리소스가 없는 블록 다이어그램을 예시한다.
도 13은 본 주제의 실시예에 따른, 적응적 리소스 핸들링의 전체 흐름도들을 예시한다.
도 14는 본 주제의 실시예에 따른, 적응적 리소스 관리를 위한 시스템을 예시한다.
도 15는 본 주제의 실시예에 따른, 적응적 리소스 관리를 위한 리소스 관리기를 예시한다.
도 16은 본 주제의 실시예에 따른, 실행을 위해 할당된 적어도 하나의 애플리케이션 태스크를 실행하기 위한 RM 에이전트를 예시한다.
도 17은 본 주제의 실시예에 따른, 적응적 리소스 관리를 위한 방법을 예시한다.
첨부된 도면들은 본 발명의 개념들을 예시하기 위한 것이고 축척대로 되지 않을 수 있다는 것을 이해해야 한다.
이하에서는 본 발명의 실시예들에서의 기술적 해결책들을, 본 발명의 실시예들에서의 첨부 도면들을 참조하여 명확하게 설명한다. 명백하게, 설명된 실시예들은 본 발명의 실시예들 모두가 아니라 단지 일부이다. 창의적인 노력 없이 본 발명의 실시예들에 기초하여 본 기술분야의 통상의 기술자에 의해 얻어지는 다른 모든 실시예들은 본 발명의 보호 범위 내에 속해야 한다.
본 발명은 프로그램 명령어들이 광 또는 전자 통신 링크들을 통해 전송되는 컴퓨터 네트워크 또는 컴퓨터 판독가능 저장 매체와 같은 프로세스, 장치, 시스템, 물질의 조성, 컴퓨터 판독가능 매체로서 수많은 방식으로 구현될 수 있다. 본 명세서에서, 이들 구현, 또는 본 발명이 취할 수 있는 임의의 다른 형태가 기법들이라고 지칭될 수 있다. 일반적으로, 개시된 프로세스들의 단계들의 순서는 본 발명의 범위 내에서 변경될 수 있다.
본 발명의 하나 이상의 실시예의 상세한 설명은 본 발명의 원리들을 예시하는 첨부 도면과 함께 아래에 제공된다. 본 발명은 이러한 실시예들과 관련하여 설명되지만, 본 발명은 임의의 실시예로 제한되지 않는다. 본 발명의 범위는 청구항들에 의해서만 제한되며, 본 발명은 수많은 대안, 변경 및 균등물을 포함한다. 본 발명의 철저한 이해를 제공하기 위해서 다음의 설명에서는 수많은 특정 세부사항들이 제시된다. 이러한 세부사항들은 예시의 목적으로 제공되며, 본 발명은 이러한 특정 세부사항들 중 일부 또는 전부 없이도 청구항들에 따라 실시될 수 있다. 명확성을 위해서, 본 발명에 관련되는 기술분야들에서 알려진 기술적 내용은 본 발명이 불필요하게 불명료해지지 않도록 상세하게 설명되지 않는다.
분산 컴퓨팅 시스템들에서의 적응적 리소스 관리를 위한 시스템들, 방법들 및 디바이스들이 개시된다.
분산 컴퓨팅 시스템들에서의 적응적 리소스 관리를 위한 시스템들, 방법들 및 디바이스들에 대한 양태들이 설명되지만, 본 발명은 임의의 수의 상이한 컴퓨팅 시스템들, 환경들, 및/또는 구성들에서 구현될 수 있고, 실시예들은 다음의 예시적인 시스템들, 장치, 및 방법들의 맥락에서 설명된다.
일 구현에서, 본 발명은 이전의 애플리케이션 실행 이력에 기초하여 애플리케이션 리소스들을 자동으로 모니터링하고, 분석하고, 할당하는 적응적 리소스 관리를 위한 프레임워크를 제공한다.
이해하고 유의해야 할 점은, 하드 한계는 사용자에 의해 특정되는 리소스 한계이고 그에 기초하여 리소스들이 제한되고 초과하면 시스템이 리소스들을 종료하려고 시도한다는 점이다. 유사하게, 소프트-한계는 이전의 실행들에 기초한 통계 계산된 한계이다. 따라서, 시스템 스케줄링은 소프트-한계에 기초하여 행해질 것이고, 하드 한계까지 더 많은 리소스들에 대해 협상하려고 시도한다. 하드-한계 및 소프트-한계의 동일한 논리적 의미가 본 개시의 이전 설명 전반에 걸쳐 사용된다.
삭제
이제 도 3을 참조하면, 본 주제의 실시예에 따른, 하이 레벨 시스템 실현이 예시되어 있다. 도 3을 본 후에 본 기술분야의 통상의 기술자는 이용 가능한 종래 기술의 기법들에 비해 본 개시에서 제공되는 바와 같은 새로운 컴포넌트들 또는 특징을 명확하게 이해할 수 있다. 본 개시에 수반되는 종래 기술의 공지된 또는 무관한 컴포넌트들 또는 특징의 세부사항들은, 불필요한 복잡성 및 본 개시 이해하는 것으로부터 주의 산만을 증가시킬 수 있기 때문에, 더 상세하게 설명되지 않는다는 점에 유의할 수 있다. 또한, 본 개시에 직접 관련되거나 영향을 주는 단지 일부 컴포넌트들 또는 특징의 세부사항들이 여기서 설명된다는 점에 또한 유의해야 한다.
도 3에 도시된 바와 같이, 본 개시에 따른 새로운 컴포넌트들/특징들뿐만 아니라 수정된 컴포넌트들/특징들과 함께 그들의 특정 기능은 아래에 제공되는 바와 같다:
실행기 리소스 모니터: 컴포넌트/특징은 RM 에이전트 또는 호스트 디바이스에 상주한다. 본 개시에 따른 리소스 모니터링 모듈은 태스크-실행기의 실제 리소스 사용을 모니터링하는 것을 담당하지만, 또한 "이력 데이터 저장소"에 상태들을 저장한다.
이력 데이터 저장소: 이 컴포넌트/특징은 애플리케이션 ID, 애플리케이션 태그들(애플리케이션 제출자에 의해 옵션으로 제공됨), 호스트-유형 등에 대해 리소스 사용 정보를 저장하는 리포지토리의 역할을 한다. 이 리포지토리는 타임라인 서버 DB, 줌키퍼 등을 이용하여 구현될 수 있다.
리소스 예측 모듈: 이 컴포넌트/특징은 리소스 관리기에 상주하고, 이력 리소스 사용, 및 호스트-유형 등과 같은 다른 요인들에 기초하여 "소프트-한계"를 예측한다. 정확한 매칭 기록들이 발견되지 않으면, 상이한 기록 세트에 대한 신뢰 스코어를 생성하고 그 중에서 최상의 것을 선택한다.
RM 에이전트: 이 컴포넌트/특징은 리소스 예측 모듈에 의해 식별된 "소프트-한계"에 기초하여 리소스 관리기에 이용 가능한 리소스를 보고하고, 또한 실행기의 리소스 한계들이 결정된 소프트 한계들을 초과하는 경우 추가 리소스들을 페칭하는 데 RM과 상호작용하는 것을 담당한다.
도 3 및 연관된 이전 설명은 본 개시의 새로운 특징들/컴포넌트들에 대한 도입만을 제공한다는 것을 이해해야 한다. 각각의 새로운 컴포넌트/특징과 함께 그들의 기능 및 적용 가능성이 이전 섹션들에서 설명될 것이다.
이제 도 4를 참조하면, 본 주제의 실시예에 따른, 태스크의 실행을 위한 리소스 할당의 흐름이 예시되어 있다. 도 4는 본 개시의 모든 새로운 컴포넌트들 또는 특징들의 특정 기능을 수반하는 본 개시의 흐름을 보여준다.
도 4에 도시된 바와 같이:
단계 1에서: 사용자는 태그들을 이용하여 리소스 관리기에 애플리케이션을 제출한다;
단계 2에서: 리소스 관리기는 (RM 에이전트를 통해) 호스트 상에서 애플리케이션 관리기를 시작한다.
단계 3에서: 애플리케이션 관리기는 리소스 관리기에 그의 태스크-실행기들(태스크들)에 대한 리소스-요청을 전송한다. 리소스-요청은 애플리케이션 태스크들의 리소스 요구들(메모리, CPU 등)을 포함한다.
단계 4에서: 리소스 관리기는 자유 리소스들을 갖는 호스트 노드를 식별하고(애플리케이션 및 태스크 ID에 의해 고유하게 식별된) 이 애플리케이션의 이력 리소스 사용 및 태스크 및 애플리케이션 태그들, 식별된 호스트, 호스트-유형 등과 같은 다른 요인들에 기초하여 "소프트-한계"를 제공하도록 리소스 예측 모듈에 쿼리한다.
i. 이력 통계가 정확하게 매칭되면(리소스 사용에 대해 최대, 평균, 표준 편차 등과 같은) 구성 가능한 공식이 적용될 수 있고 "소프트-한계"가 식별되고; 또는
ii. 정확한 매칭이 발견되지 않으면(식별된 호스트/호스트-유형 및/또는 태그들이 diff), 리소스 예측 모듈은 최상의 신뢰 스코어를 갖는 기록들 및 기록들의 상이한 세트에 대한 신뢰 스코어를 생성하려고 시도하고 "소프트-한계"는 단계 1에 따라 도출될 것이다;
단계 5에서: 리소스 관리기의 스케줄러는 "소프트-한계" 에 기초하여 호스트 상에 리소스들을 할당한다. RM 에이전트는 이들 호스트 상에서 태스크-실행기들을 시작한다;
단계 6에서: "태스크-실행기 리소스 모니터"는 태스크-실행기의 실제 리소스 사용을 모니터링하고, 애플리케이션 이름 및 태스크 유형(애플리케이션 관리기에 의해 제공됨)에 대해 "이력 데이터 저장소"에 저장한다.
단계 7에서: RM 에이전트는 실행기가 "하드-한계"에 도달할 때까지 소프트-한계보다 리소스들을 과다 활용하고 있다면, 추가 리소스들에 대해 RM의 스케줄러와 협상하는 것을 담당한다. 일단 "하드-한계"에 도달하면, 태스크 실행기는 종료될 것이다.
이제 도 5를 참조하면, 본 주제의 실시예에 따른, 이력 데이터 저장소에 저장될 이력 통계를 채우는 것이 예시되어 있다. 도 5에 도시된 바와 같이, 리소스 사용 관련 통계를 저장하는 복수의 칼럼이 있을 수 있다. 데이터와 함께 그들의 중요성을 저장하는 칼럼들 중 일부는 아래에 언급된 바와 같다:
애플리케이션 이름 및 태스크 유형 칼럼: 애플리케이션 이름 및 태스크 유형은 애플리케이션의 주어진 태스크를 고유하게 식별한다. 예를 들어: 도 5에 도시된 바와 같은 맵 리듀스(Map Reduce) 애플리케이션의 경우에, 맵 및 리듀스는 상이한 종류의 리소스 사용들을 가질 수 있는 2개의 상이한 태스크 유형들이다. 태스크 유형 정보는 애플리케이션 관리기에 의해 제공될 것이다.
호스트 유형 칼럼: 대부분의 경우에 큰 클러스터들은 상이한 노드들이 태깅될 수 있는 이종 클러스터들일 것이다. 고려할 수 있는 프리미티브 예는 프로세서들의 수 및 고속, 중간 및 저속으로서의 그의 속도에 기초하여 호스트들을 분류하는 것이다. 고속 처리 호스트들 상의 태스크 실행기의 리소스 사용은 다른 것들보다 더 적을 것이다.
태스크 및 애플리케이션 태그들 칼럼: 이 정보는 통상적으로 클라이언트 또는 애플리케이션 관리기에 의해 제공된다. 그러나 많은 경우에 애플리케이션은 애플리케이션/태스크 구성에 기초하여 동일하거나 데이터 유형 리소스 사용이 상이할 수 있다. 이러한 태그들에 기초하여 더 정확한 리소스 사용이 얻어질 수 있다. 예를 들어:
i. 피크-시간 통신 데이터는 사용자 정보의 높은 카디널리티를 가질 것이고; 따라서 사용자 데이터를 처리하는 것은 피크 시간 데이터보다 더 많은 메모리를 요구할 수 있다.
ii. MR 작업들의 경우에, 리듀서들의 수 및 분할 크기와 같은 구성들에 기초하여, 맵 및 리듀서들의 리소스 사용이 상이할 수 있다.
리소스 사용 칼럼: 각각의 고유한 모니터링된 리소스에 대해 특정 폴에서의 사용이 무엇인지가 이 칼럼에 저장될 것이다.
본 기술분야의 통상의 기술자는 위에서 언급된 칼럼들은 단지 이해와 예시적인 목적을 위한 것이고, 요구에 따라 관련 데이터를 저장하기 위해 수 및 특정 칼럼이 추가될 수 있다는 것을 이해할 수 있을 것이다.
이제 도 6을 참조하면, 본 주제의 실시예에 따른, 정확한 매칭에 대한 소프트-한계 평가의 예가 예시되어 있다. 도 6에 도시된 바와 같이, 애플리케이션 관리기는 특정 애플리케이션 및 태스크에 대한 스케줄러를 이용하여 리소스들을 요청하고 태그들의 세트를 제공하고, 정확하게 매칭하는 태그들을 갖는 동일한 애플리케이션 및 태스크에 대한 기록들이 이미 이력 데이터 저장소에서 이용 가능하다고 가정하면, 정확하게 매칭하는 기록들이 검색되어 그 기록들이 직접 발견되고, 구성 가능한 리소스 값들이 소프트 한계를 찾기 위한 평가기로서 사용된다.
간단한 리소스 값 평가기는 MaxMemoryResourceValue 평가기일 수 있고, 매칭하는 기록들 중에서 최대 메모리를 취할 수 있고, 소프트 한계로서 제공한다. 유사하게, 사용자는 평균 또는 최소 또는 임의의 통계적 표현들을 생각할 수 있다.
이제 도 7을 참조하면, 본 주제의 실시예에 따른, 소프트-한계의 이점을 보여주는 예시적인 흐름이 예시되어 있다. 도 7에 도시된 바와 같이, 본 주제의 실시예에 따른, 소프트-한계의 이점을 보여주는 예시적인 흐름이 예시되어 있다. 이제 도 7을 참조하면, 초기 실행에서, 애플리케이션 관리기는 4 GB 메모리(하드-한계)를 갖는 2개의 태스크 T1 및 T2를 갖는 리소스 관리기를 요청한다. 이력 데이터가 존재하지 않으므로 스케줄링은 하드 한계에 기초하여 발생한다. 시스템은 실행기의 리소스 사용들을 모니터링하고 이들을 이력 데이터 저장소에 저장한다. 후속 실행들에서 애플리케이션 관리기가 동일한 태스크들(T1 및 T2)을 갖는 리소스 관리기를 요청하면 스케줄러는 이전 이력 데이터 저장소를 참조하고 태스크 T1 및 T2에 대한 리소스 사용으로서 2.5GB 및 2GB로서 소프트 한계를 계산하고 그에 따라 스케줄링한다. 따라서, 여전히 3.5 GB가 다른 애플리케이션들에 대해 활용되도록 시스템에서 이용 가능하다.
이제 도 8을 참조하면, 본 주제의 실시예에 따른, 신뢰 스코어에 기초한 소프트-한계 평가의 예가 예시되어 있다. 일 구현에서, 많은 경우에, 이력 데이터는 정확히 매칭하지 않을 수 있고, 즉, 그것은 데이터 저장소에 저장되지 않았을 수 있고, 이러한 시나리오들에 대해, 본 개시는 스코어링 메커니즘을 제공하고 그에 기초하여 소프트-한계가 선택될 수 있다. 이 스코어링 메커니즘은 플러그 가능하고 사용자는 애플리케이션들이 실행되는 클러스터 환경 및 애플리케이션에 적합한 것을 정의할 수 있다. 이해를 위해, 하나의 그러한 가중된 알고리즘이 고려되고 획득된 결과들은 도 8에 도시된 바와 같다. 또한, 계산은 플러그 가능할 수 있고, 자카드 계수(jaccard's coefficient)와 같은 기존의 계산기들 중 임의의 것이 또한 계산을 위해 사용되어 예측에서의 신뢰를 교정/정량화하는 궁극적인 목적을 유지할 수 있다는 것이 이해될 수 있다. 그러나, 본 기술분야의 통상의 기술자는, 자카드 계수는 단지 예시적인 목적으로 사용되고 임의의 알려진 또는 새로운 알고리즘들이 계산을 위해 사용될 수 있다는 것을 이해할 수 있다.
도 9 내지 도 12는 본 발명의 실시예에 따른, 태스크 실행기를 위한 동적 리소스 리사이징을 보여준다.
이제 도 9를 참조하면, 본 주제의 실시예에 따른, 소프트 한계들을 갖는 태스크 론칭의 블록 다이어그램이 예시되어 있다. 도 9에 도시된 바와 같이, 제1 단계에서, 스케줄러는 양쪽 한계들을 갖는 노드에서 론칭될 태스크를 할당하고 RM 에이전트에 통지한다. 다음 단계에서 RM 에이전트는 실행기를 론칭하고, 다음 단계에서 에이전트는 이용 가능한 리소스 계산을 위한 소프트-한계를 고려하고 주기적으로 실행기의 리소스 사용을 스케줄러에 업데이트한다.
이제 도 10을 참조하면, 본 주제의 실시예에 따른, 태스크 실행기가 소프트-한계를 초과하는 블록 다이어그램이 예시되어 있다. 도 10에 도시된 바와 같이, RM 에이전트는 모니터링하는 동안 실행기가 한계(소프트-한계-구성 가능 버퍼)를 초과하고 있는 것을 식별한다. 다음 단계에서, 사용된 리소스는 하드 한계보다 작으므로, 그것은 실행기에 할당된 리소스를 리사이징하기 위해 스케줄러에게 요청할 것이다. 다음 단계에서, 스케줄러는 리소스가 이미 할당되지 않았는지를 체크하고, 이용 가능한 경우, 그것은 추가 리소스를 할당하고, 할당에 관해 RM 에이전트에 통지한다.
이제 도 11을 참조하면, 본 주제의 실시예에 따른, 태스크 실행기가 하드-한계를 초과하는 블록 다이어그램이 예시되어 있다. 도 11에 도시된 바와 같이, RM 에이전트는 모니터링하는 동안 실행기가 하드 한계를 초과하고 있는 것을 식별한다. 다음 단계에서 RM 에이전트는 정상 흐름과 유사한 실행기를 종료한다. 다음 단계에서, RM 에이전트는 그것을 스케줄러에 통지한다.
이제 도 12를 참조하면, 본 주제의 실시예에 따른, 태스크 실행기가 소프트-한계 - 버퍼를 초과하지만 노드에 리소스가 없으므로 태스크는 그것을 실패한 시도에 추가하여 종료되고 새로운 태스크 시도가 스케줄링되는 블록 다이어그램이 예시되어 있다.
도 13은 본 주제의 실시예에 따른, 적응적 리소스 핸들링의 전체 흐름도들을 예시한다. 도 13에 도시된 바와 같이, 제1 단계에서, RM 에이전트는 태스크 실행을 모니터링하는 동안 실행기가 한계(소프트-한계 - 구성 가능 버퍼)를 초과하고 있는 것을 식별한다. 다음 단계에서, 사용된 리소스는 하드 한계보다 작으므로, 그것은 실행기에 할당된 리소스를 리사이징하기 위해 스케줄러에게 요청할 것이다. 다음 단계에서, 스케줄러는 리사이징을 위해 할당될 리소스가 없음을 체크하고 발견하고, 따라서 그것은 종료하도록 통지할 것이다. 다음 단계에서, RM 에이전트는 실행기를 종료할 것이지만 실패로서 카운트되지 않을 것이다. 최종 단계에서, 스케줄러는 그것에 일부 다른 자유 리소스를 할당함으로써 그것을 재스케줄링하려고 시도한다.
이제 도 14를 참조하면, 본 주제의 실시예에 따른, 적응적 리소스 관리를 위한 시스템이 예시되어 있다. 비록 본 주제는 본 발명이 시스템(1400) 또는 리소스 관리기(1402) 또는 RM 에이전트(1410)에서 구현되는 것을 고려하여 설명되지만, 시스템(1400) 또는 리소스 관리기(1402) 또는 RM 에이전트(1410)는 또한 랩톱 컴퓨터, 데스크톱 컴퓨터, 노트북, 워크스테이션, 메인프레임 컴퓨터, 서버, 네트워크 서버 등과 같은 다양한 컴퓨팅 시스템들에서 구현될 수 있다는 것을 이해할 수 있다. 시스템(1400) 또는 리소스 관리기(1402) 또는 RM 에이전트(1410)는 다수의 사용자들, 또는 시스템(1400) 또는 리소스 관리기(1402) 또는 RM 에이전트(1410) 상에 상주하는 애플리케이션들에 의해 액세스될 수 있다는 것을 이해할 것이다. 시스템(1400) 또는 리소스 관리기(1402) 또는 RM 에이전트(1410)의 예들은 휴대용 컴퓨터, 개인 휴대 정보 단말기(personal digital assistant), 핸드헬드 디바이스, 센서들, 라우터들, 게이트웨이들, 및 워크스테이션을 포함할 수 있지만, 이들로 제한되지 않는다. 시스템(1400) 또는 리소스 관리기(1402) 또는 RM 에이전트들(1410)은 네트워크(도시되지 않음)를 형성하기 위해 서로 및/또는 다른 디바이스들 또는 노드들 또는 장치들에 통신 가능하게 결합된다.
일 구현에서, 네트워크(도시되지 않음)는 무선 네트워크, 유선 네트워크 또는 이들의 조합일 수 있다. 네트워크는 GSM, CDMA, LTE, UMTS, 인트라넷, 로컬 영역 네트워크(LAN), 광역 네트워크(WAN), 인터넷 등과 같은 상이한 유형의 네트워크들 중 하나로서 구현될 수 있다. 네트워크는 전용 네트워크 또는 공유 네트워크일 수 있다. 공유 네트워크는 서로 통신하기 위해 다양한 프로토콜, 예를 들어, 하이퍼텍스트 전송 프로토콜(HTTP), 송신 제어 프로토콜/인터넷 프로토콜(TCP/IP), 무선 애플리케이션 프로토콜(WAP) 등을 사용하는 상이한 유형의 네트워크들의 연관을 나타낸다. 또한, 네트워크는 라우터들, 브리지들, 서버들, 컴퓨팅 디바이스들, 저장 디바이스들 등을 포함하는 다양한 네트워크 디바이스들을 포함할 수 있다.
일 구현에서, 본 개시는 적응적 리소스 관리를 위한 시스템(1400)을 제공한다. 시스템(1400)은 리소스 관리기(1404) 및 RM 에이전트(1410)에 상주하는 태스크 실행기 리소스 모니터링 모듈(1412)을 포함한다. 리소스 관리기(1404)는 적어도 애플리케이션(1402)으로부터 적어도 하나의 리소스 요청을 수신하도록 구성되고, 애플리케이션(1402)은 적어도 애플리케이션 이름 및 태그와 함께 수신되고, 리소스 요청은 실행을 위한 애플리케이션 태스크의 리소스 요구를 적어도 포함한다. 리소스 관리기(1404)는 이력 데이터 저장소(1408)에 사전 저장된 적어도 이력 리소스 사용 통계에 기초한 애플리케이션 태스크에 대한 소프트 한계를 적어도 제공하거나 적어도 하나의 사용자에 의해 구성된 애플리케이션 태스크에 대한 하드 한계로 복귀하고; 실행을 위해 식별된 RM 에이전트(1410)로부터의 리소스를 적어도 할당하도록 구성된 리소스 예측 모듈(1406)을 또한 포함한다. RM 에이전트는, 할당 시에, 소프트 한계 또는 하드 한계에 적어도 기초하여 애플리케이션 태스크를 실행하도록 구성되고, 실행 동안 애플리케이션 태스크의 리소스 사용을 적어도 모니터링하고; 태그에 대해 이력 데이터 저장소(1408)에 애플리케이션 태스크의 리소스 사용 통계를 적어도 저장하도록 구성된 태스크 실행기 리소스 모니터링 모듈(1412)을 포함한다.
이제 도 15를 참조하면, 본 주제의 실시예에 따른, 적응적 리소스 관리를 위한 리소스 관리기가 예시되어 있다. 일 구현에서, 적응적 리소스 관리를 위한 리소스 관리기(1404)가 개시된다. 리소스 관리기는 프로세서(1502); 메모리에 존재하는 복수의 모듈을 실행하기 위해 프로세서(1502)에 결합된 메모리(1506)를 포함한다. 복수의 모듈은 적어도 애플리케이션으로부터 적어도 하나의 리소스 요청을 수신하도록 구성된 수신 모듈(1508) - 애플리케이션은 적어도 애플리케이션 이름 및 태그와 함께 수신되고, 리소스 요청은 실행을 위한 애플리케이션 태스크의 리소스 요구를 적어도 포함함 -; 애플리케이션 태스크의 실행을 위해 적어도 하나의 RM 에이전트를 식별하도록 구성된 식별 모듈(1510); 및 이력 데이터 저장소(1408)에 사전 저장된 이력 리소스 사용 통계에 적어도 기초하여 애플리케이션 태스크에 대한 소프트 한계 또는 하드 한계를 적어도 제공하고; 애플리케이션 태스크에 대한 하드 한계 또는 소프트 한계에 기초하여 실행을 위해 식별된 RM 에이전트로부터의 적어도 하나의 리소스를 할당하도록 구성된 리소스 예측 모듈(1512)을 포함한다.
이제 도 16을 참조하면, 본 주제의 실시예에 따른, 실행을 위해 할당된 적어도 하나의 애플리케이션 태스크를 실행하기 위한 RM 에이전트가 예시되어 있다. 일 구현에서, 본 개시는 실행을 위해 할당된 적어도 하나의 애플리케이션 태스크를 실행하기 위한 RM 에이전트(1410)를 제공한다. RM 에이전트는 프로세서(1602), 및 메모리(1606)에 존재하는 복수의 모듈을 실행하기 위해 프로세서(1602)에 결합된 메모리(1606)를 포함한다. 복수의 모듈은 소프트 한계 또는 하드 한계에 적어도 기초하여 실행을 위한 애플리케이션 태스크를 적어도 수신하도록 구성된 수신 모듈(1608); 애플리케이션 태스크를 실행하도록 구성된 태스크 실행기 모듈(1610) - 태스크 실행기 모듈은 소프트 한계 또는 하드 한계(하드 한계 및 가능한 경우 소프트 한계, 하드 한계는 사용자에 의해 언급된 바와 같을 것임)에 기초하여 할당됨 -; 실행을 위해 할당된 리소스의 리소스 사용을 적어도 모니터링하고; 실행되는 애플리케이션 태스크 및 애플리케이션 이름에 대해 이력 데이터 저장소(1408)에 할당된 리소스의 리소스 사용 통계를 적어도 저장하도록 구성된 태스크 실행기 리소스 모니터링 모듈(1612)을 포함한다.
일 구현에서, 애플리케이션 태스크의 리소스 요구는 적어도 메모리, 입력/출력(I/O) 프로세스, 중앙 처리 유닛(CPU), 또는 이들의 임의의 조합으로부터 선택된다.
일 구현에서, 애플리케이션 태스크에 대한 소프트 한계 또는 하드 한계는 이력 데이터 저장소에 사전 저장된 적어도 애플리케이션 이름, 애플리케이션 태스크, RM 에이전트, RM 에이전트 유형, 또는 이들의 임의의 조합과 수신된 애플리케이션 태스크의 리소스 요구를 매칭시킴으로써 제공된다.
일 구현에서, 매칭이 발견되면, 리소스 예측 모듈은 수신된 애플리케이션 태스크의 소프트 한계를 식별하기 위해 리소스 사용과 연관된 구성 가능한 공식을 적어도 적용하도록 추가로 구성되고, 구성 가능한 공식은 바람직하게는 최대, 평균, 표준 편차, 또는 이들의 임의의 조합으로부터 선택된다.
일 구현에서, 매칭이 발견되지 않으면, 리소스 예측 모듈은 애플리케이션과 연관된 이력 데이터 저장소에 사전 저장된 이력 리소스 사용의 상이한 세트에 대한 신뢰 스코어를 적어도 생성하고; 상기 생성된 신뢰 스코어로부터 최상의 신뢰 스코어를 선택하고; 그에 의해 수신된 애플리케이션 태스크의 소프트 한계를 식별하기 위해 상기 리소스 사용과 연관된 구성 가능한 공식을 적어도 적용하도록 추가로 구성된다.
일 구현에서, 실행을 위해 할당된 상기 리소스의 리소스 사용이 소프트 한계를 초과하면, RM 에이전트는 애플리케이션 태스크의 실행을 위해 적어도 하나의 다른 리소스를 할당하도록 추가로 구성된다.
일 구현에서, 실행을 위해 할당된 상기 리소스의 리소스 사용이 하드 한계를 초과하면, 애플리케이션 태스크의 실행은 중단/종료된다.
일 구현에서, 태그는 애플리케이션의 주어진 태스크를 식별하는 태스크 유형을 포함하고; 리소스 사용은 태스크 시간에 기초할 것이다.
일 구현에서, 리소스 사용 통계는 애플리케이션 이름, 애플리케이션 식별, 애플리케이션 태스크 유형, 태그, 리소스 제공 유형, 또는 이들의 임의의 조합을 적어도 포함한다.
본 주제의 실시예에 따른 예시된 리소스 관리기(1402) 또는 RM 에이전트(1410)는 프로세서, 인터페이스, 및 메모리를 포함할 수 있다. 적어도 하나의 프로세서는 하나 이상의 마이크로프로세서, 마이크로컴퓨터, 마이크로컨트롤러, 디지털 신호 프로세서, 중앙 처리 유닛, 상태 머신, 로직 회로, 및/또는 동작 명령어들에 기초하여 신호들을 조작하는 임의의 디바이스로 구현될 수 있다. 다른 능력들 중에서도, 적어도 하나의 프로세서는 메모리에 저장된 컴퓨터 판독가능 명령어들 또는 모듈들을 페치하고 실행하도록 구성된다.
인터페이스(I/O 인터페이스)(1504 및/또는 1604)는 다양한 소프트웨어 및 하드웨어 인터페이스, 예를 들어 웹 인터페이스, 그래픽 사용자 인터페이스 등을 포함할 수 있다. I/O 인터페이스는 리소스 관리기(1402) 또는 RM 에이전트(1410)가 사용자와 직접 상호작용하는 것을 가능하게 할 수 있다. 또한, I/O 인터페이스는 리소스 관리기(1402) 또는 RM 에이전트(1410)가 다른 디바이스들 또는 노드들, 컴퓨팅 디바이스들, 예컨대 웹 서버들 및 외부 데이터 서버들(도시되지 않음)과 통신하는 것을 가능하게 할 수 있다. I/O 인터페이스는 유선 네트워크들, 예를 들어, GSM, CDMA, LAN, 케이블 등, 및 무선 네트워크들, 예컨대 WLAN, 셀룰러, 또는 위성을 포함하는, 매우 다양한 네트워크들 및 프로토콜 유형들 내에서의 다수의 통신을 용이하게 할 수 있다. I/O 인터페이스는 다수의 디바이스들을 서로 또는 다른 서버에 연결하기 위한 하나 이상의 포트를 포함할 수 있다. I/O 인터페이스는 인터페이스에 대해 제공된 스크린을 통해 사용자와 리소스 관리기(1402) 또는 RM 에이전트(1410) 사이의 상호작용을 제공할 수 있다.
메모리는, 예를 들어, 휘발성 메모리, 예컨대 정적 랜덤 액세스 메모리(SRAM), 및 동적 랜덤 액세스 메모리(DRAM), 및/또는 비휘발성 메모리, 예컨대 판독 전용 메모리(ROM), 소거가능 프로그램 가능 ROM, 플래시 메모리들, 하드 디스크들, 광 디스크들, 및 자기 테이프들을 포함하는 본 기술분야에 공지된 임의의 컴퓨터 판독가능 매체를 포함할 수 있다. 메모리는 다양한 기능들을 수행하기 위한 복수의 명령어 또는 모듈 또는 애플리케이션을 포함할 수 있다. 메모리는 특정 태스크들을 수행하거나 특정 추상 데이터 유형들을 구현하는 루틴들, 프로그램들, 객체들, 컴포넌트들, 데이터 구조들 등을 포함할 수 있다.
도 17은 본 주제의 실시예에 따른, 적응적 리소스 관리를 위한 방법을 예시한다. 이 방법은 컴퓨터 실행가능 명령어들의 일반적인 맥락에서 설명될 수 있다. 일반적으로, 컴퓨터 실행가능 명령어들은 특정 기능들을 수행하거나 특정 추상 데이터 유형들을 구현하는 루틴들, 프로그램들, 객체들, 컴포넌트들, 데이터 구조들, 절차들, 모듈들, 기능들 등을 포함할 수 있다. 방법들은 또한 기능들이 통신 네트워크를 통해 링크되는 원격 처리 디바이스들에 의해 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 컴퓨터 실행가능 명령어들은 메모리 저장소들을 포함하는 로컬 및 원격 컴퓨터 저장 매체 양쪽 모두에 위치할 수 있다.
방법이 설명되는 순서는 제한으로서 해석되도록 의도된 것이 아니며, 임의의 수의 설명된 방법 블록들을 임의의 순서로 조합하여 방법 또는 대안적인 방법들을 구현할 수 있다. 부가적으로, 개별 블록들은 본 명세서에 설명된 주제의 보호 범위로부터 벗어나지 않고 방법으로부터 삭제될 수 있다. 더욱이, 방법은 임의의 적합한 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합으로 구현될 수 있다. 그러나, 설명의 편의상, 아래에 설명된 실시예들에서, 이 방법은 위에 설명된 시스템(1400) 또는 리소스 관리기(1402) 또는 RM 에이전트(1410)에서 구현되는 것으로 간주될 수 있다.
일 구현에서, 본 개시는 적응적 리소스 관리를 위한 방법을 제공한다.
블록 1702에서, 적어도 애플리케이션으로부터의 적어도 하나의 리소스 요청이 수신된다. 애플리케이션은 적어도 애플리케이션 이름 및 태그와 함께 수신되고, 리소스 요청은 실행을 위한 애플리케이션 태스크의 리소스 요구를 적어도 포함한다. 애플리케이션 태스크의 리소스 요구는 적어도 메모리, 입력/출력(I/O) 프로세스, 중앙 처리 유닛(CPU), 또는 이들의 임의의 조합으로부터 선택된다. 태그는 애플리케이션의 주어진 태스크를 식별하는 태스크 유형을 포함하고, 리소스 사용은 태스크 시간에 기초할 것이다.
블록 1704에서, 적어도 하나의 RM 에이전트가 애플리케이션 태스크의 실행을 위해 식별된다.
블록 1706에서, 이력 데이터 저장소에 사전 저장된 적어도 이력 리소스 사용 통계에 기초한 애플리케이션 태스크에 대한 소프트 한계 또는 적어도 하나의 사용자에 의해 구성된 애플리케이션 태스크에 대한 하드 한계가 적어도 애플리케이션 태스크에 대해 제공된다. 애플리케이션 태스크에 대한 소프트 한계 또는 하드 한계는 이력 데이터 저장소에 사전 저장된 적어도 애플리케이션 이름, 애플리케이션 태스크, RM 에이전트, RM 에이전트 유형, 또는 이들의 임의의 조합과 수신된 애플리케이션 태스크의 리소스 요구를 매칭시킴으로써 제공된다. 또한, 매칭이 발견되면, 방법은 또한 수신된 애플리케이션 태스크의 소프트 한계를 식별하기 위해 리소스 사용과 연관된 구성 가능한 공식을 적어도 적용하고, 구성 가능한 공식은 바람직하게는 최대, 평균, 표준 편차, 또는 이들의 임의의 조합으로부터 선택된다. 매칭이 발견되지 않으면, 방법은 애플리케이션과 연관된 이력 데이터 저장소에 사전 저장된 이력 리소스 사용의 상이한 세트에 대한 신뢰 스코어를 적어도 생성하고, 생성된 신뢰 스코어로부터 최상의 신뢰 스코어를 선택하고; 그에 의해 수신된 애플리케이션 태스크의 소프트 한계를 식별하기 위해 상기 리소스 사용과 연관된 구성 가능한 공식을 적어도 적용한다.
블록 1708에서, 식별된 RM 에이전트로부터의 적어도 하나의 리소스가 실행을 위해 할당된다.
블록 1710에서, 애플리케이션 태스크가 소프트 한계 또는 하드 한계에 적어도 기초하여 스케줄링된다.
블록 1712에서, 실행 동안 애플리케이션 태스크의 리소스 사용이 적어도 모니터링된다. 실행을 위해 할당된 상기 리소스의 리소스 사용이 소프트 한계를 초과하면, RM 에이전트는 애플리케이션 태스크의 실행을 위해 적어도 하나의 다른 리소스를 할당하도록 추가로 구성된다. 또한, 실행을 위해 할당된 상기 리소스의 리소스 사용이 하드 한계를 초과하면, 애플리케이션 태스크의 실행은 중단/종료된다.
블록 1714에서, 태그에 대해 이력 데이터 저장소에 애플리케이션 태스크의 리소스 사용 통계가 적어도 저장된다. 리소스 사용 통계는 애플리케이션 이름, 애플리케이션 식별, 애플리케이션 태스크 유형, 태그, 리소스 제공 유형, 또는 이들의 임의의 조합을 적어도 포함할 수 있다.
일 구현에서, 리소스 관리기에 의한, 적응적 리소스 관리를 위한 방법이 개시된다. 이 방법은:
적어도 애플리케이션으로부터 적어도 하나의 리소스 요청을 수신하는 단계 - 상기 애플리케이션은 적어도 애플리케이션 이름 및 태그와 함께 수신되고, 상기 리소스 요청은 실행을 위한 애플리케이션 태스크의 리소스 요구를 적어도 포함함 -;
상기 애플리케이션 태스크의 실행을 위해 적어도 하나의 RM 에이전트를 식별하는 단계;
이력 데이터 저장소에 사전 저장된 이력 리소스 사용 통계에 적어도 기초하여 애플리케이션 태스크에 대한 소프트 한계 또는 하드 한계(소프트 한계가 이용 가능하지 않은 경우)를 적어도 제공하는 단계; 및
애플리케이션 태스크에 대한 하드 한계 또는 상기 소프트 한계에 기초하여 실행을 위해 식별된 상기 RM 에이전트로부터의 리소스를 적어도 할당하는 단계를 포함한다.
일 구현에서, 상기 RM 에이전트에 의해, 실행을 위해 할당된 적어도 하나의 애플리케이션 태스크를 실행하는 방법이 개시된다. 이 방법은:
소프트 한계 또는 하드 한계(하드 한계 및 가능한 경우 소프트 한계, 하드 한계는 사용자에 의해 언급된 바와 같을 것임)에 적어도 기초하여 실행을 위한 애플리케이션 태스크를 적어도 수신하는 단계;
상기 애플리케이션 태스크를 실행하는 단계 - 상기 태스크 실행기 모듈은 상기 소프트 한계 또는 상기 하드 한계에 기초하여 할당됨 -;
실행 동안 애플리케이션 태스크의 리소스 사용을 적어도 모니터링하는 단계; 및
상기 태그에 대해 이력 데이터 저장소에 상기 애플리케이션 태스크의 리소스 사용 통계를 적어도 저장하는 단계를 포함한다.
만약 있다면 이용 가능한 종래 기술의 기법들과는 대조적으로, 본 개시는 다음에 언급된 것에 의해 효율적인 리소스 활용을 보장하기 위해 분산 시스템들에서 실행되고 있는 애플리케이션들에 대한 적응적 리소스 핸들링을 제공한다:
리소스 관리기들이 리소스 적응이 더 효과적이도록 태그들을 이용하여 고유하게 애플리케이션을 식별하는 데 참여할 수 있는 프레임워크를 제공하는 것.
노드 유형, 사용자 정의된 애플리케이션 및 태스크 태그 등과 같은 다양한 파라미터들에 대해 각각의 고유한 애플리케이션의 태스크에 대한 리소스 통계를 수집 및 저장하기 위한 프레임워크를 제공하는 것.
수집된 이력 통계에 기초하여 리소스 모니터링이 행해지는 프레임워크를 제공하는 것.
이력적으로 식별된 리소스 사용 한계들에 기초하여 리소스 관리가 행해지는 프레임워크를 제공하는 것. 기록들에 대한 정확한 매칭이 발견되지 않으면 신뢰 스코어에 기초하여 본 개시는 한계들을 식별할 것이다.
각각의 RM 에이전트가 양쪽 한계들: 애플리케이션에 의해 주어진 것(하드 한계) 및 이력 통계에 의해 주어진 것(소프트 한계)으로 론칭될 워커들(태스크 실행기들)을 수신하는 프레임워크를 제공하는 것. 또한, RM 에이전트들은 태스크 실행기들이 그의 하드 한계들을 초과하지 않는 것을 보장하고, 실행기들이 소프트 한계를 초과할 때 에이전트는 실행기에 할당된 리소스를 동적으로 리사이징하려고 시도한다.
위에서 설명된 것과 별개로, 본 개시는 아래 언급된 이점들을 또한 포함하거나 또는 본 개시는 다음을 달성하는 것을 가능하게 한다:
애플리케이션의 더 빠른 실행에 의해, 그리고 동일한 하드웨어 리소스들을 이용하여 더 많은 태스크들을 핸들링하는 것을 가능하게 함으로써 하드웨어 리소스들을 더 잘 활용(더 적은 것으로 더 많은 것을 한다).
애플리케이션 파라미터들을 최적화하기 위해 수동 개입/모니터링이 필요하지 않고 그에 의해 운영 스태프의 더 나은 효율을 달성하는 것을 가능하게 한다.
본 기술분야의 통상의 기술자는 본 개시의 구현을 위해 임의의 알려진 또는 새로운 알고리즘들이 사용될 수 있음을 이해할 수 있다. 그러나, 유의해야 할 점은, 본 개시는 임의의 알려진 또는 새로운 알고리즘들을 사용하는 것에 관계없이 위에 언급된 이점들 및 기술적 진보를 달성하기 위해 백업 동작 동안 사용되는 방법을 제공한다는 점이다.
본 기술분야의 통상의 기술자는 본 명세서에 개시된 실시예들에서 설명된 예들과 조합하여, 유닛들 및 알고리즘 단계들이 전자 하드웨어, 또는 컴퓨터 소프트웨어 및 전자 하드웨어의 조합에 의해 구현될 수 있다는 것을 알 수 있다. 기능들이 하드웨어 또는 소프트웨어에 의해 수행되는지는 기술적 해결책의 특정 애플리케이션들 및 설계 제약 조건들에 좌우된다. 본 기술분야의 통상의 기술자는 각각의 특정 애플리케이션에 대해 설명된 기능들을 구현하기 위해 상이한 방법들을 사용할 수 있지만, 그 구현이 본 발명의 범위를 벗어나는 것으로 고려되어서는 안 된다.
본 기술분야의 통상의 기술자는, 편리하고 간략한 설명의 목적으로, 전술한 시스템, 장치, 및 유닛의 상세한 작업 프로세스에 대해서는, 전술한 방법 실시예들에서의 대응하는 프로세스들이 참조될 수 있고, 세부사항들은 여기서 다시 설명되지 않는다는 점을 명확히 이해할 수 있다.
본 출원에서 제공된 여러 실시예들에서, 개시된 시스템, 장치, 및 방법은 다른 방식들로 구현될 수 있다는 점을 이해해야 한다. 예를 들어, 설명된 장치 실시예는 단지 예시적인 것이다. 예를 들어, 유닛 구분은 단지 논리적인 기능 구분일 뿐이고 실제 구현에서는 다른 구분일 수 있다. 예를 들어, 복수의 유닛 또는 컴포넌트가 조합되거나 다른 시스템에 통합되거나, 또는 일부 특징들이 무시되거나 수행되지 않을 수 있다. 게다가, 디스플레이되거나 논의된 상호 결합들 또는 직접 결합들 또는 통신 연결들은 일부 인터페이스들을 통해 구현될 수 있다. 장치들 또는 유닛들 사이의 간접 결합들 또는 통신 연결들은 전자적, 기계적, 또는 다른 형태들로 구현될 수 있다.
기능들이 소프트웨어 기능 유닛의 형태로 구현되고 독립된 제품으로서 판매되거나 사용될 때, 기능들은 컴퓨터 판독가능 저장 매체 내에 저장될 수 있다. 이러한 이해에 기초하여, 본질적으로 본 발명의 기술적 해결책들, 또는 종래 기술에 기여하는 부분, 또는 기술적 해결책들의 일부가 소프트웨어 제품의 형태로 구현될 수 있다. 컴퓨터 소프트웨어 제품은 저장 매체에 저장되고, (개인용 컴퓨터, 서버, 또는 네트워크 디바이스일 수 있는) 컴퓨터 디바이스에게 본 발명의 실시예에서 설명된 방법들의 단계들의 전부 또는 일부를 수행하도록 지시하기 위한 여러 명령어들을 포함한다. 전술한 저장 매체는: USB 플래시 드라이브, 이동식 하드 디스크, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 자기 디스크, 또는 광 디스크와 같은, 프로그램 코드를 저장할 수 있는 임의의 매체를 포함한다.
비록 분산 컴퓨팅 시스템들에서의 적응적 리소스 관리를 위한 구현들이 구조적 특징들 및/또는 방법들에 특정한 언어로 설명되었지만, 첨부된 청구항들은 설명된 특정 특징들 또는 방법들에 반드시 제한되지는 않는다는 것을 이해해야 한다. 오히려, 특정 특징들 및 방법들은 분산 컴퓨팅 시스템들에서의 적응적 리소스 관리의 구현들의 예들로서 개시되어 있다.

Claims (34)

  1. 적응적 리소스 관리를 위한 시스템으로서, 상기 시스템은 리소스 관리기(RM) 및 적어도 하나의 RM 에이전트를 포함하고,
    상기 리소스 관리기(RM)는:
    적어도 하나의 애플리케이션으로부터 적어도 하나의 리소스 요청을 수신하고 - 상기 애플리케이션은 애플리케이션 이름 및 태그를 적어도 포함하고, 상기 리소스 요청은 실행을 위한 애플리케이션 태스크의 리소스 요구를 포함함 -;
    이력 데이터 저장소에 사전 저장된 적어도 이력 리소스 사용 통계에 기초한 상기 애플리케이션 태스크에 대한 소프트 한계 및 적어도 하나의 사용자에 의해 구성된 상기 애플리케이션 태스크에 대한 하드 한계를 적어도 제공하고;
    상기 소프트 한계 또는 상기 하드 한계에 기초하여, 상기 애플리케이션 태스크의 실행을 위해 식별된 상기 RM 에이전트로부터의 적어도 하나의 리소스를 할당하도록 구성되고 - 실행을 위해 할당된 상기 리소스의 리소스 사용이 상기 소프트 한계를 초과하면, 상기 RM 에이전트는 상기 애플리케이션 태스크의 실행을 위해 적어도 하나의 다른 리소스를 할당하도록 추가로 구성되고,
    실행을 위해 할당된 상기 리소스의 리소스 사용이 상기 하드 한계를 초과하면, 상기 애플리케이션 태스크의 실행은 중단 또는 종료됨 -;
    상기 RM 에이전트는:
    상기 소프트 한계 또는 상기 하드 한계에 적어도 기초하여 상기 애플리케이션 태스크를 실행하고;
    실행 동안 상기 애플리케이션 태스크를 모니터링하고;
    상기 태그에 대해 상기 애플리케이션 태스크의 리소스의 리소스 사용 통계를 적어도 저장하도록 구성되는, 시스템.
  2. 제1항에 있어서, 상기 애플리케이션 태스크의 리소스 요구는 적어도 메모리, 입력/출력(I/O) 프로세스, 중앙 처리 유닛(CPU), 또는 이들의 임의의 조합으로부터 선택되는, 시스템.
  3. 제1항에 있어서, 상기 애플리케이션 태스크에 대한 소프트 한계 또는 하드 한계는 이력 데이터 저장소에 사전 저장된 적어도 상기 애플리케이션 이름, 상기 애플리케이션 태스크, 상기 RM 에이전트, RM 에이전트 유형, 또는 이들의 임의의 조합과 애플리케이션 태스크의 리소스 요구를 매칭시킴으로써 제공되는, 시스템.
  4. 제3항에 있어서, 상기 리소스 관리기는: 매칭이 발견될 때 상기 애플리케이션 태스크의 소프트 한계를 식별하기 위해 상기 리소스 사용과 연관된 구성 가능한 공식을 적어도 적용하도록 추가로 구성되는, 시스템.
  5. 제3항에 있어서, 매칭이 발견되지 않을 때, 상기 리소스 관리기는:
    상기 애플리케이션과 연관된 이력 데이터 저장소에 사전 저장된 이력 리소스 사용의 상이한 세트에 대한 신뢰 스코어를 적어도 생성하고;
    상기 생성된 신뢰 스코어로부터 최상의 신뢰 스코어를 선택하고; 그에 의해
    상기 애플리케이션 태스크의 소프트 한계를 식별하기 위해 상기 리소스 사용과 연관된 구성 가능한 공식을 적어도 적용하도록 추가로 구성되는, 시스템.
  6. 제1항에 있어서, 상기 태그는 상기 애플리케이션의 주어진 태스크를 식별하는 태스크 유형을 포함하는, 시스템.
  7. 제1항에 있어서, 상기 리소스 사용 통계는 애플리케이션 이름, 애플리케이션 식별, 애플리케이션 태스크 유형, 상기 태그, 리소스 제공 유형, 또는 이들의 임의의 조합을 적어도 포함하는, 시스템.
  8. 적응적 리소스 관리를 위한 리소스 관리기로서, 상기 리소스 관리기는:
    프로세서; 및
    메모리에 저장된 복수의 명령어를 실행하기 위해 상기 프로세서에 결합된 메모리를 포함하고, 상기 복수의 명령어는,
    적어도 하나의 애플리케이션으로부터 적어도 하나의 리소스 요청을 수신하고 - 상기 애플리케이션은 애플리케이션 이름 및 태그를 적어도 포함하고, 상기 리소스 요청은 실행을 위한 애플리케이션 태스크의 리소스 요구를 적어도 포함함 -;
    이력 데이터 저장소에 사전 저장된 적어도 이력 리소스 사용 통계에 기초한 상기 애플리케이션 태스크에 대한 소프트 한계 및 적어도 하나의 사용자에 의해 구성된 상기 애플리케이션 태스크에 대한 하드 한계를 적어도 제공하고;
    상기 소프트 한계 또는 하드 한계에 기초하여, 식별된 적어도 하나의 RM 에이전트로부터의 상기 애플리케이션 태스크의 실행을 위한 적어도 하나의 리소스를 할당하기 위한 것이고,
    상기 실행을 위해 할당된 상기 리소스의 리소스 사용이 상기 소프트 한계를 초과하면, 상기 RM 에이전트는 상기 애플리케이션 태스크의 실행을 위해 적어도 하나의 다른 리소스를 할당하도록 추가로 구성되고,
    실행을 위해 할당된 상기 리소스의 리소스 사용이 상기 하드 한계를 초과하면, 상기 애플리케이션 태스크의 실행은 중단 또는 종료하는, 리소스 관리기.
  9. 제8항에 있어서, 상기 애플리케이션 태스크의 리소스 요구는 적어도 메모리, 입력/출력(I/O) 프로세스, 중앙 처리 유닛(CPU), 또는 이들의 임의의 조합으로부터 선택되는, 리소스 관리기.
  10. 제8항에 있어서, 상기 애플리케이션 태스크에 대한 소프트 한계 또는 하드 한계는 이력 데이터 저장소에 사전 저장된 적어도 상기 애플리케이션 이름, 상기 애플리케이션 태스크, 상기 RM 에이전트, RM 에이전트 유형, 또는 이들의 임의의 조합과 상기 애플리케이션 태스크의 리소스 요구를 매칭시킴으로써 제공되는, 리소스 관리기.
  11. 제10항에 있어서, 매칭이 발견되면, 상기 프로세서는 상기 애플리케이션 태스크의 소프트 한계를 식별하기 위해 상기 리소스 사용과 연관된 구성 가능한 공식을 적어도 적용하도록 추가로 구성되는, 리소스 관리기.
  12. 제10항에 있어서, 매칭이 발견되지 않으면, 상기 프로세서는:
    상기 애플리케이션과 연관된 이력 데이터 저장소에 사전 저장된 이력 리소스 사용의 상이한 세트에 대한 신뢰 스코어를 적어도 생성하고;
    상기 생성된 신뢰 스코어로부터 최상의 신뢰 스코어를 선택하고; 그에 의해
    상기 애플리케이션 태스크의 소프트 한계를 식별하기 위해 상기 리소스 사용과 연관된 구성 가능한 공식을 적어도 적용하도록 추가로 구성되는, 리소스 관리기.
  13. 제8항에 있어서, 상기 태그는 상기 애플리케이션의 주어진 태스크를 식별하는 태스크 유형을 포함하는, 리소스 관리기.
  14. 제8항에 있어서, 상기 이력 리소스 사용 통계는 애플리케이션 이름, 애플리케이션 식별, 애플리케이션 태스크 유형, 상기 태그, 리소스 제공 유형, 또는 이들의 임의의 조합을 적어도 포함하는, 리소스 관리기.
  15. 적응적 리소스 관리를 위한 방법으로서, 상기 방법은:
    적어도 애플리케이션으로부터 적어도 하나의 리소스 요청을 수신하는 단계 - 상기 애플리케이션은 적어도 애플리케이션 이름 및 태그를 포함하고, 상기 리소스 요청은 실행을 위한 애플리케이션 태스크의 리소스 요구를 적어도 포함함 -;
    상기 애플리케이션 태스크의 실행을 위해 적어도 하나의 RM 에이전트를 식별하는 단계;
    이력 데이터 저장소에 사전 저장된 적어도 이력 리소스 사용 통계에 기초한 상기 애플리케이션 태스크에 대한 소프트 한계 및 적어도 하나의 사용자에 의해 구성된 상기 애플리케이션 태스크에 대한 하드 한계를 적어도 제공하는 단계;
    상기 애플리케이션 태스크의 실행을 위해 식별된 RM 에이전트로부터의 적어도 하나의 리소스를 할당하는 단계 - 상기 애플리케이션 태스크의 실행을 위해 식별된 RM 에이전트로부터의 적어도 하나의 리소스를 할당하는 단계는:
    실행을 위해 할당된 상기 리소스의 리소스 사용이 상기 소프트 한계를 초과하면, 상기 애플리케이션 태스크의 실행을 위해 식별된 상기 RM 에이전트로부터 적어도 하나의 다른 리소스를 할당하고,
    실행을 위해 할당된 상기 리소스의 리소스 사용이 상기 하드 한계를 초과하면, 상기 애플리케이션 태스크의 실행을 중단 또는 종료하는 것을 포함함 -;
    상기 소프트 한계 또는 상기 하드 한계에 적어도 기초하여 상기 애플리케이션 태스크를 스케줄링하는 단계; 및
    실행 동안 상기 애플리케이션 태스크의 리소스 사용을 적어도 모니터링하는 단계; 및
    상기 태그에 대해 상기 이력 데이터 저장소에 상기 애플리케이션 태스크의 리소스 사용 통계를 적어도 저장하는 단계를 포함하는, 방법.
  16. 제15항에 있어서, 상기 애플리케이션 태스크에 대한 소프트 한계 또는 하드 한계는 이력 데이터 저장소에 사전 저장된 적어도 상기 애플리케이션 이름, 상기 애플리케이션 태스크, 상기 RM 에이전트, RM 에이전트 유형, 또는 이들의 임의의 조합과 상기 애플리케이션 태스크의 리소스 요구를 매칭시킴으로써 제공되는, 방법.
  17. 제16항에 있어서, 매칭이 발견되면, 상기 방법은 상기 애플리케이션 태스크의 소프트 한계를 식별하기 위해 상기 리소스 사용과 연관된 구성 가능한 공식을 적어도 적용하는 단계를 추가로 포함하는, 방법.
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
KR1020197003814A 2016-07-13 2017-07-03 분산 컴퓨팅 시스템에서의 적응적 리소스 관리 KR102199275B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
ININ201641024001 2016-07-13
IN201641024001 2016-07-13
PCT/CN2017/091506 WO2018010564A1 (en) 2016-07-13 2017-07-03 Adaptive resource management in distributed computing systems

Publications (2)

Publication Number Publication Date
KR20190028477A KR20190028477A (ko) 2019-03-18
KR102199275B1 true KR102199275B1 (ko) 2021-01-06

Family

ID=60951571

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197003814A KR102199275B1 (ko) 2016-07-13 2017-07-03 분산 컴퓨팅 시스템에서의 적응적 리소스 관리

Country Status (5)

Country Link
US (1) US10503558B2 (ko)
EP (1) EP3475820A4 (ko)
KR (1) KR102199275B1 (ko)
CN (1) CN109478147B (ko)
WO (1) WO2018010564A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102130491B1 (ko) 2019-03-13 2020-07-14 주식회사 냄새뚝 선박 배기가스 정화장치 및 방법
US11689475B2 (en) * 2019-08-09 2023-06-27 Oracle International Corporation System and method for tag based resource limits or quotas in a cloud infrastructure environment
US11646975B2 (en) 2019-08-09 2023-05-09 Oracle International Corporation System and method for compartment quotas in a cloud infrastructure environment
CN110597626B (zh) * 2019-08-23 2022-09-06 第四范式(北京)技术有限公司 在分布式系统中资源及任务的分配方法、装置及系统
CN111078399B (zh) * 2019-11-29 2023-10-13 珠海金山数字网络科技有限公司 一种基于分布式架构的资源分析方法及系统
CN113157428B (zh) * 2020-01-07 2022-04-08 阿里巴巴集团控股有限公司 基于容器的资源调度方法、装置及容器集群管理装置
US11948010B2 (en) * 2020-10-12 2024-04-02 International Business Machines Corporation Tag-driven scheduling of computing resources for function execution
US11500539B2 (en) * 2020-10-16 2022-11-15 Western Digital Technologies, Inc. Resource utilization tracking within storage devices
CN114064295B (zh) * 2021-12-13 2022-06-21 南方电网数字电网研究院有限公司 一种结合变电网关的本地资源管理方法及系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282561B1 (en) * 1995-12-07 2001-08-28 Microsoft Corporation Method and system for resource management with independent real-time applications on a common set of machines
US7334228B2 (en) * 2001-07-27 2008-02-19 International Business Machines Corporation Runtime-resource management
US7093004B2 (en) 2002-02-04 2006-08-15 Datasynapse, Inc. Using execution statistics to select tasks for redundant assignment in a distributed computing platform
US8185899B2 (en) 2007-03-07 2012-05-22 International Business Machines Corporation Prediction based priority scheduling
CN102223419A (zh) * 2011-07-05 2011-10-19 北京邮电大学 面向网络化操作系统的虚拟资源动态反馈均衡分配机制
CN102958166B (zh) * 2011-08-29 2017-07-21 华为技术有限公司 一种资源分配方法及资源管理平台
US8856797B1 (en) * 2011-10-05 2014-10-07 Amazon Technologies, Inc. Reactive auto-scaling of capacity
CN102521757A (zh) * 2011-11-24 2012-06-27 成都美璞科技有限公司 基于智能终端的商户会员卡一键申请方法
CN103593242B (zh) * 2013-10-15 2017-04-05 北京航空航天大学 基于Yarn框架的资源共享控制系统
CN104281496B (zh) * 2014-10-27 2018-02-02 深圳中兴网信科技有限公司 虚拟资源的分配方法及分配装置
JP2016177324A (ja) * 2015-03-18 2016-10-06 株式会社リコー 情報処理装置、情報処理システム、情報処理方法、及びプログラム
US20170235816A1 (en) * 2016-02-12 2017-08-17 Nutanix, Inc. Entity database data aggregation

Also Published As

Publication number Publication date
CN109478147B (zh) 2021-12-14
EP3475820A1 (en) 2019-05-01
US10503558B2 (en) 2019-12-10
US20190146848A1 (en) 2019-05-16
CN109478147A (zh) 2019-03-15
WO2018010564A1 (en) 2018-01-18
EP3475820A4 (en) 2019-06-26
KR20190028477A (ko) 2019-03-18

Similar Documents

Publication Publication Date Title
KR102199275B1 (ko) 분산 컴퓨팅 시스템에서의 적응적 리소스 관리
KR102624607B1 (ko) 고성능 ssd들을 사용하여 롱 테일 레이턴시를 감소시키기 위한 랙-레벨의 스케줄링
US8589923B2 (en) Preprovisioning virtual machines based on request frequency and current network configuration
US9503387B2 (en) Instantiating incompatible virtual compute requests in a heterogeneous cloud environment
US11561830B2 (en) System and method for low latency node local scheduling in distributed resource management
US8739169B2 (en) Method for monitoring operating experiences of images to improve workload optimization in cloud computing environments
US9535754B1 (en) Dynamic provisioning of computing resources
US10908965B2 (en) Method, apparatus, and computer program product for processing computing task
US11861410B2 (en) Cloud computing burst instance management through transfer of cloud computing task portions between resources satisfying burst criteria
US9270539B2 (en) Predicting resource provisioning times in a computing environment
US10860353B1 (en) Migrating virtual machines between oversubscribed and undersubscribed compute devices
US9652294B2 (en) Cross-platform workload processing
CN114208126A (zh) 用于配置云存储软件设备的方法和装置
US11032152B2 (en) Machine-learning based self-populating dashboard for resource utilization monitoring in hyper-converged information technology environments
US11645098B2 (en) Systems and methods to pre-provision sockets for serverless functions
US20170149864A1 (en) Distributed applications management with dependent resilient distributed services
US10248466B2 (en) Managing workload distribution among processing systems based on field programmable devices
US8977752B2 (en) Event-based dynamic resource provisioning
CA2631255A1 (en) Scalable scheduling of tasks in heterogeneous systems
US9772877B2 (en) Managing I/O operations in a shared file system
US9722897B2 (en) Managing isolation requirements of a multi-node workload application
González et al. HerdMonitor: monitoring live migrating containers in cloud environments
US20230401099A1 (en) Attributes for workloads, infrastructure, and data for automated edge deployment
Srikrishnan et al. A log data analytics based scheduling in open source cloud software
CN117931359A (zh) 用于容器协调平台的虚拟机智能快照

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant