KR20140057641A - 데이터센터 리소스 할당 - Google Patents

데이터센터 리소스 할당 Download PDF

Info

Publication number
KR20140057641A
KR20140057641A KR1020147008601A KR20147008601A KR20140057641A KR 20140057641 A KR20140057641 A KR 20140057641A KR 1020147008601 A KR1020147008601 A KR 1020147008601A KR 20147008601 A KR20147008601 A KR 20147008601A KR 20140057641 A KR20140057641 A KR 20140057641A
Authority
KR
South Korea
Prior art keywords
task
fingerprint
data center
fingerprints
received
Prior art date
Application number
KR1020147008601A
Other languages
English (en)
Other versions
KR101630749B1 (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 KR20140057641A publication Critical patent/KR20140057641A/ko
Application granted granted Critical
Publication of KR101630749B1 publication Critical patent/KR101630749B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • 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/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/5044Allocation 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 hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Educational Administration (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

여기에서 달리 지적되지 않는다면, 본 섹션에서 설명되는 접근법은 본 출원에서 청구범위에 대한 종래 기술이 아니며, 본 섹션에 포함함으로써 선행 기술로 인정되지 않는다. 현재 데이터센터는 데이터센터에서 태스크로 리소스를 할당함으로써 클라이언트를 위한 태스크를 수행할 수 있다. 종래의 데이터센터에서, 리소스는 비효율적으로 할당될 수 있고, 일부 예시에서, 공유된 하드웨어에 대한 특정 태스크의 콜로케이션은 공유된 하드웨어에게 스트레스를 주고 및/또는 그를 비효율적으로 이용할 수 있다.

Description

데이터센터 리소스 할당{DATACENTER RESOURCE ALLOCATION}
여기에서 달리 지적되지 않는다면, 본 섹션에서 설명되는 접근법은 본 출원에서 청구범위에 대한 종래 기술이 아니며, 본 섹션에 포함함으로써 선행 기술로 인정되지 않는다.
현재의 데이터센터는 데이터센터에서 리소스를 태스크로 할당함으로써 클라이언트를 위한 태스크를 수행할 수 있다. 종래의 데이터센터에서 리소스는 비효율적으로 할당될 수 있고, 일부 예시에서, 공유된 하드웨어에 대한 특정 태스크의 콜로케이션(colocation)은 공유된 하드웨어에게 스트레스를 주고 및/또는 그를 비효율적으로 이용할 수 있다.
본 개시는 데이터센터 리소스를 할당하기 위한 및/또는 태스크 지문(task fingerprint)과 리소스 할당 데이터베이스(resource allocation database)를 생성하기 위한 예시적인 방법을 설명한다. 데이터센터에서 리소스를 할당하기 위한 예시적인 방법은 데이터센터에서 태스크를 수신하는 단계, 수신된 태스크에 기초하여 태스크 지문을 생성 하는 단계, 태스크 지문을 복수의 참조 태스크 지문과 비교하여 가장 근접한 매치 참조 태스크 지문(reference task fingerprint)을 결정하는 단계, 가장 근접한 매치 참조 태스크 지문에 연관된 참조 태스크 행동 프로파일(reference task behavior profile)을 결정하는 단계, 및 참조 태스크 행동 프로파일에 기초하여 수신된 태스크를 수행하도록 리소스를 할당하는 단계를 포함할 수 있다.
태스크 지문과 리소스 할당 데이터베이스를 생성하기 위한 예시적인 방법은 데이터센터에서 복수의 태스크를 수신하는 단계, 각각의 수신된 태스크에 대한 태스크 지문을 생성하여 복수의 태스크 지문을 형성하는 단계, 각각의 수신된 태스크로 리소스 세트를 할당하여 복수의 할당된 리소스 세트를 정의하는 단계, 각각의 할당된 리소스 세트를 이용하여 각각의 수신된 태스크를 수행하는 단계, 복수의 태스크 행동을 생성하도록 할당된 리소스 세트를 이용하여 각각의 수행된 태스크에 대한 태스크 행동을 수집하는 단계, 및 데이터센터의 데이터베이스에서 각각의 태스크 지문, 할당된 리소스 세트 및 태스크 행동을 연관시켜 태스크 지문 및 리소스 할당 데이터베이스를 생성하는 단계를 포함할 수 있다.
본 개시는, 실행되는 경우, 데이터센터로 하여금 데이터센터 리소스를 할당하고 및/또는 태스크 지문 및 리소스 할당 데이터베이스를 생성하게 하는 명령어를 저장하는, 예시적인 기계 판독가능 일시적이지 않은 매체를 또한 설명한다. 예시적인 기계 판독가능 일시적이지 않은 매체는, 실행되는 경우, 데이터센터로 하여금, 데이터센터에서 태스크를 수신하고, 수신된 태스크에 기초하여 태스크 지문을 생성하고, 태스크 지문을 복수의 참조 태스크 지문과 비교하여 가장 근접한 매치 참조 태스크 지문을 결정하고, 가장 근접한 매치 참조 태스크 지문과 연관된 참조 태스크 행동 프로파일을 결정하고, 참조 태스크 행동 프로파일에 기초하여 수신된 태스크를 수행하도록 리소스를 할당함으로써 데이터센터 리소스를 할당하게 하는 명령어를 저장할 수 있다.
예시적인 기계 판독가능, 일시적이지 않은 매체는, 실행되는 경우, 데이터센터로 하여금, 데이터센터에서 복수의 태스크를 수신하고, 각각의 수신된 태스크에 대한 태스크 지문을 생성하여 복수의 태스크 지문을 형성하고, 각각의 수신된 태스크로 리소스 세트를 할당하여 복수의 할당된 리소스 세트를 정의하고, 각각의 할당된 리소스 세트를 이용하여 각각의 수신된 태스크를 수행하고, 복수의 태스크 행동을 생성하도록 할당된 리소스 세트를 이용하여 각각의 수행된 태스크에 대한 태스크 행동을 수집하고, 데이터센터의 데이터베이스에서 각각의 태스크 지문, 할당된 리소스 세트 및 태스크 행동을 연관시켜 태스크 지문 및 리소스 할당 데이터베이스를 생성함으로써, 태스크 지문과 리소스 할당 데이터베이스를 생성하게 하는 명령어를 저장할 수 있다.
본 개시는 데이터센터 리소스를 할당시키기 위한 및/또는 태스크 지문과 리소스 할당 데이터베이스를 생성하기 위한 예시적인 데이터센터를 또한 설명한다. 예시적인 데이터센터는, 실행되는 경우, 데이터센터로 하여금, 데이터센터에서 태스크를 수신하고, 수신된 태스크에 기초하여 태스크 지문을 생성하고, 태스크 지문을 복수의 참조 태스크 지문과 비교하여 가장 근접한 매치 참조 태스크 지문을 결정하고, 가장 근접한 매치 참조 태스크 지문과 연관된 참조 태스크 행동 프로파일을 결정하고, 참조 태스크 행동 프로파일에 기초하여 수신된 태스크를 수행하도록 리소스를 할당함으로써, 리소스를 할당하게 하는 명령어를 저장하는 기계 판독가능 매체 및 프로세서를 포함 할 수 있다.
예시적인 데이터센터는, 실행되는 경우, 데이터센터로 하여금, 데이터센터에서 복수의 태스크를 수신하고, 각각의 수신된 태스크에 대한 태스크 지문을 생성하여 복수의 태스크 지문을 형성하고, 각각의 수신된 태스크로 리소스 세트를 할당하여 복수의 할당된 리소스 세트를 정의하고, 각각의 할당된 리소스 세트를 이용해 각각의 수신된 태스크를 수행하고, 복수의 태스크 행동을 생성하도록 할당된 리소스 세트를 이용하여 각각의 수행된 태스크에 대한 태스크 행동을 수집하고, 데이터센터의 데이터베이스에서 각각의 태스크 지문, 할당된 리소스 세트 및 태스크 행동을 연관시켜 태스크 지문과 리소스 할당 데이터베이스를 생성함으로써, 태스크 지문 및 리소스 할당 데이터베이스를 생성하게 하는 명령어를 저장하는 기계 판독가능 매체 및 프로세서를 포함할 수 있다.
이상의 요약은 단순히 예시적인 것으로서 어떠한 방식으로든 제한적으로 의도된 것이 아니다. 이하의 상세한 설명과 도면을 참조함으로써, 상기 설명된 예시적인 양태들, 실시예들, 그리고 특징들에 더하여, 추가적인 양태들, 실시예들, 그리고 특징들 또한 명확해질 것이다.
본 개시의 대상은 특히 본 명세서의 종결부에서 언급되며 명확하게 청구된다. 본 개시의 전술한 특징 및 다른 특징은 첨부 도면과 결합하여, 다음의 설명 및 첨부된 청구범위로부터 더욱 충분히 명백해질 것이다. 이들 도면은 본 개시에 따른 단지 몇 개의 실시예를 묘사할 뿐이고, 따라서, 본 개시의 범위를 제한하는 것으로 고려되어서는 안 될 것임을 이해하면서, 본 개시는 첨부 도면의 사용을 통해 더 구체적이고 상세하게 설명될 것이다.
도 1은 리소스를 할당하기 위한 예시적인 방법의 흐름도의 예시이고,
도 2는 태스크 지문 및 리소스 할당 데이터베이스를 생성하기 위한 예시적인 방법의 흐름도의 예시이고,
도 3은 연관된 태스크 지문, 할당된 리소스 세트 및 태스크 행동 정보에 대한 예시적인 데이터 구조의 표의 예시이고,
도 4는 연관된 태스크 지문 및 태스크 행동 정보에 대한 예시적인 데이터 구조의 표의 예시이고,
도 5는 예시적인 트리 플로우 추출(tree flow extraction)의 도표의 예시이고,
도 6은 예시적인 컴퓨터 프로그램 제품의 예시이고,
도 7은 예시적인 컴퓨팅 장치의 블록도의 예시이고, 모두 본 개시의 적어도 일부 실시예에 따라 배열된다.
대상은 명세서의 종결부에서 특히 언급되고 명확하게 청구된다. 본 개시의 전술한 특징 및 다른 특징은 첨부 도면과 함께, 다음의 설명과 첨부된 청구범위로부터 더욱 충분히 명백해질 것이다. 이들 도면은 본 개시에 따른 몇몇 실시예를 묘사할 뿐이고, 따라서, 범위를 제한하는 것으로 고려되어서는 안될 것임을 이해하면서, 본 개시는 첨부 도면의 사용을 통해 더 구체적이고 상세하게 설명될 것이다.
이하의 설명은 청구된 대상의 완전한 이해를 제공하기 위해 구체적인 세부사항과 함께 다양한 예시를 제시한다. 그러나, 청구된 대상이 여기에서 개시된 구체적인 세부사항의 일부 또는 그 이상이 없이도 실시될 수 있음이 당업자에 의해 이해될 것이다. 또한, 일부 상황에서, 잘 알려진 방법, 절차, 시스템, 컴포넌트 및/또는 회로는 청구된 대상을 불필요하게 불명료하게 하는 것을 피하기 위하여 상세하게 설명되지 않는다.
이하의 상세한 설명에서 본 개시의 일부를 이루는 첨부된 도면이 참조된다. 문맥에서 달리 지시하고 있지 않은 한, 통상적으로, 도면에서 유사한 부호는 유사한 컴포넌트를 나타낸다. 상세한 설명, 도면, 그리고 청구범위에 설명되는 예시적인 예시는 제한적으로 여겨지지 않는다. 본 개시에서 제시되는 대상의 범위 또는 사상에서 벗어나지 않으면서도 다른 예시가 이용되거나, 다른 변경이 이루어질 수 있다. 여기에서 일반적으로 설명되고, 도면에 도시되는 본 개시의 양태는 다양한 다른 구성으로 배열, 대체, 조합, 및 설계될 수 있음과 이 모두가 여기에서 암시적으로 고려될 수 있고, 본 개시의 일부를 만들 수 있음이 기꺼이 이해될 것이다.
본 개시는, 그 중에서도, 데이터센터 리소스를 할당하는 것에 연관된 방법, 장치, 시스템 및 컴퓨터 판독가능 매체에 관련된다.
일부 예시에서, 태스크는 데이터센터에서 수신될 수 있다. 일부 예시에서는, 수신된 태스크에 대한 태스크 지문이 생성될 수 있고, 태스크 지문은 태스크 지문에 가장 근접한 매치 참조 태스크 지문을 결정하도록 이용될 수 있다. 다양한 예시에서는, 태스크 지문 및 가장 근접한 매치 참조 태스크 지문이 (가장 근접한 매치가 태스크 지문에 대한 대용(surrogate)일 수 있도록)완벽하게 매치되거나 불완전하게 매치될 수 있다. 일부 예시에서, 가장 근접한 매치 참조 태스크 지문에 연관된 태스크 행동 프로파일이 수신된 태스크를 수행하기 위한 데이터센터 리소스를 할당하는데 이용될 수 있다. 일부 예시에서, 태스크 행동 프로파일은 태스크 및 충돌 태스크(conflict task)(즉, 그 태스크와는 리소스를 공유할 수 없는 다른 태스크)를 수행하기 위해 선호되는 하드웨어를 포함할 수 있다. 일부 예시에서는, 태스크를 수행하는 동안에, 태스크 수행이 모니터링될 수 있고 수행 매트릭스(performance metrics)는 (완벽한 매치가 존재하는 경우)태스크 행동 프로파일이 업데이트 되거나 또는 새롭게 식별된 태스크 지문을 위한 새로운 태스크 행동 프로파일 엔트리가 생성될 수 있도록 수집 될 수 있다. 그러한 방법들은 수신된 태스크를 위해 필요한 만큼 및/또는 태스크 행동 프로파일 데이터베이스를 향상시키도록 반복될 수 있다.
일부 예시에서, 논의된 기법은 태스크 지문 및 리소스 할당 데이터베이스를 생성하도록 이용될 수 있다. 일부 예시에서, 데이터베이스는 데이터센터에서 이용될 수 있다. 일부 예시에서, 데이터베이스는 데이터센터에서의 수행을 향상시키기 위해 다른 데이터센터나 새롭게 구현된 데이터센터로 제공될 수 있다. 일부 예시에서, 데이터베이스는 클라이언트를 위한 태스크를 완료하는 과정에서 생성될 수 있다. 일부 예시에서, 데이터베이스는 준비된 태스크의 그룹에 응답하여 생성될 수 있다.
도 1은 본 개시의 적어도 일부 실시예에 따라 배열되는, 리소스를 할당하기 위한 예시적인 방법(100)의 흐름도의 예시이다. 일반적으로 방법(100)은 여기에서 논의된 것들과 같은 임의의 적절한 장치, 장치들 또는 시스템에 의해 수행될 수 있다. 일부 예시에서, 방법(100)은 데이터센터나 데이터센터의 클러스터(cluster) 등에 의해 수행될 수 있다. 일부 예시에서, 방법(100)은 클라우드 컴퓨팅 서비스에 의해 수행될 수 있다. 일부 예시에서, 방법(100)은 IaaS(Infrastructure as a Service) 제공자 또는 PaaS(Platform as a Service) 제공자 등에 의해 수행될 수 있다. 일부 예시에서, 방법(100)은 도 7에 대해 여기에서 논의된 시스템에 의해 수행될 수 있다.
방법(100)은 하드웨어, 소프트웨어, 및/또는 펌웨어에 의해 수행될 수 있는 프로세스 단계, 기능적 작동, 이벤트 및/또는 동작 등으로 설명될 수 있는 다양한 기능적 블록 또는 동작을 기술한다. 도 1에 도시된 기능적 블록에 대한 많은 대안은 다양한 구현예로 실시될 수 있다. 예를 들어, 청구된 대상의 범위를 벗어나지 않으면서 도 1에 도시되지 않은 개재된 동작 및/또는 도 1에 도시되지 않은 추가적인 동작이 사용될 수 있으며 및/또는 도 1에 도시된 동작 중 일부가 제거될 수 있다. 방법(100)은 블록(110, 120, 130, 140, 150, 160, 170 및/또는 180)중 하나 이상에 의해 나타난 기능적 작동 중 하나 이상을 포함할 수 있다. 방법(100)의 프로세스는 블록(110)에서 시작할 수 있다.
블록(110), "태스크 수신"에서, 예컨대, 태스크가 데이터센터에서 수신될 수 있다. 일반적으로, 태스크는 임의의 적절한 커뮤니케이션 기술 및 기술들을 이용하여 수신될 수 있다. 일반적으로, 수신된 태스크는 임의의 적절한 태스크, 태스크의 그룹, 또는 서브태스크 등을 포함할 수 있다. 일부 예시에서, 태스크는 애플리케이션일 수 있다. 일부 예시에서, 태스크는 프로세스일 수 있다. 일부 예시에서 태스크는 데이터센터에 의해 제공되는 라이브러리 태스크 및/또는 표준일 수 있다. 일부 예시에서 태스크는 클라이언트에 의해 쓰여진 태스크일 수 있다. 일반적으로, 태스크는 임의의 적절한 클라이언트, 클라이언트 시스템 또는 사용자 시스템 등으로부터 수신될 수 있다. 방법(100)의 프로세스는 블록(120)에서 계속할 수 있다.
블록(120), "수신된 태스크에 기초하여 태스크 지문 생성"에서, 태스크 지문이, 수신된 태스크에 적어도 부분적으로 기초하여 생성될 수 있다. 일반적으로, 태스크 지문은 데이터센터에서 수신된 되풀이되는 태스크의 인식 및/또는 매칭을 가능하게 할 수 있는 임의의 적절한 기법 또는 기법들을 이용하여 생성될 수 있다. 일반적으로, 태스크 지문은 태스크의 컴팩트한 표현을 포함할 수 있다. 일부 예시에서, 태스크 지문은 태스크 내부의 서브태스크를 식별 및/또는 매핑함으로써 생성될 수 있다. 일부 예시에서, 태스크 지문은 수신된 태스크 상에서 해시 함수(hash function)를 수행함으로써 생성될 수 있다. 일부 예시에서, 태스크 지문은 태스크 내부의 복수의 서브태스크 중 일부를 서브 지문 마스킹(sub-fingerprint masking)하고 태스크의 마스킹되지 않은 서브태스크를 식별함으로써 생성될 수 있다. 그러한 구현예에서, 알고리즘은, 예를 들어, 오디오 지문 애플리케이션(audio fingerprinting application)에서 이용되는 것과 유사하게 이용될 수 있다. 일부 예시에서, 여기에서 특히 아래에서 도 5에 대해서 더 논의되는 바와 같이, 태스크 지문은 수신된 태스크 상에서 트리 플로우 추출을 수행하고 트리 플로우 추출의 상징적 근사 표현(symbolic approximation representation)을 제공함으로써 생성될 수 있다.
일반적으로, 태스크 지문은, 예를 들어, 컴퓨터, 복수의 컴퓨터, 서버, 컴퓨팅 리소스, 가상 머신 또는 컴퓨팅 클러스터 등과 같은 여기에서 논의되는 데이터센터의 임의의 적절한 리소스에 의해 수행될 수 있다. 일부 예시에서, 태스크 지문은 전용 컴퓨팅 리소스에 의해 수행될 수 있다. 일부 예시에서, 태스크 지문은 데이터센터에서 태스크 지문 생성기에 의해 수행될 수 있다. 일부 예시에서, 태스크 지문을 생성하는 것은 하이퍼바이저 레벨 액세스(hypervisor level access), 보드 레벨 액세스(board level access), 프로세서 코어 레벨 액세스 또는 가상 머신 레벨 액세스 등을 이용하여 수신된 태스크에 액세스하는 것을 포함할 수 있다.
일부 예시에서, 논의된 바와 같이, 태스크 지문은 데이터센터에서 생성될 수 있다. 일부 예시에서, 태스크 지문은, 예를 들어, 클라이언트 시스템, 또는 사용자 시스템 등과 같은 클라이언트로부터 수신될 수 있다. 그러한 예시에서, 태스크 지문을 생성하는데 요구되는 프로세스는 그에 의해 데이터센터에서 클라이언트 측으로 오프로드 될 수 있다. 일반적으로, 태스크 지문은 여기에서 논의되는 임의의 기법을 이용하여 클라이언트 측에서 형성되고, 태스크 지문은 임의의 적절한 통신 기법을 이용하여 클라이언트 측으로부터 전송될 수 있다. 방법(100)의 프로세스는 블록(130)에서 계속할 수 있었다.
블록(130), "태스크 지문을 참조 태스크 지문과 비교하여 가장 근접한 매치 참조 태스크 지문 결정"에서, 생성된 태스크 지문이 하나 이상의 참조 태스크 지문과 비교되어 가장 근접한 매치 참조 태스크 지문을 결정할 수 있다. 일반적으로, 비교는 임의의 적절한 기법 또는 기법들을 이용하여 이루어질 수 있다. 일부 예시에서, 비교는 태스크 지문 및 참조 태스크 지문에 연관된 해시 함수의 결과를 비교하는 것을 포함할 수 있다. 일부 예시에서, 비교는 태스크 지문 및 참조 태스크 지문에 연관된 서브 지문 마스킹(sub-fingerprint masking)의 결과를 비교하는 것을 포함할 수 있다. 일부 예시에서, 비교는 태스크 지문 및 참조 태스크 지문에 연관된 상징적 근사 표현 및 트리 플로우 추출의 결과를 비교하는 것을 포함할 수 있다. 일부 예시에서, 태스크 지문과 참조 태스크 지문의 각각의 비교는 유사성 스코어를 생성할 수 있고, 가장 높은 유사성 스코어는 가장 근접한 매치를 제공할 수 있다. 일반적으로, 태스크 지문은 여기에서 논의된 데이터센터의 임의의 적절한 리소스에 의해 수행될 수 있다. 일부 예시에서, 지문 비교는 전용 컴퓨팅 리소스에 의해 수행될 수 있다. 일부 예시에서, 지문 비교는 데이터센터에서 태스크 관리자에 의해 수행될 수 있다. 방법(100)의 프로세스는 블록(140)에서 계속 할 수 있다.
블록(140), "가장 근접한 매치 참조 태스크 지문에 연관된 참조 태스크 행동 프로파일 결정"에서, 가장 근접한 매치 참조 태스크 지문과 연관된 참조 태스크 행동 프로파일이 결정된다. 일반적으로, 참조 태스크 행동 프로파일은 임의의 적절한 기법 또는 기법들을 이용하여 결정될 수 있다. 일부 예시에서, 블록(130)에서 논의된 비교는, 가장 높은 스코어 또는 랭킹이 가장 근접한 매치 참조 태스크 지문을 나타낼 수 있도록 각각의 비교에 대한 스코어와 랭킹을 생성시킨다. 일부 예시에서, 태스크 지문 및 가장 근접한 매치 참조 태스크 지문은, 그 매치가 데이터센터에서 이전에 수행된 적이 있었음을 나타낼 수 있을 정도로 정확하거나 완벽한 매치일 수 있다. 일부 예시에서, 태스크 지문 및 가장 근접한 매치 참조 태스크 지문은 정확하거나 완벽한 매치가 아닐 수 있다. 그러한 예시에서, 가장 근접한 매치 참조 태스크 지문은 태스크의 대용으로 간주될 수 있어, 그 것이 가장 근접한 매치 참조 태스크 지문에 대한 매치인 것처럼 태스크에 리소스가 할당되고 완료될 수 있다. 일부 예시에서, 할당된 리소스에 대한 조정 및/또는 허용이 매치의 근접성에 기초하여 이루어 질 수 있다. 일반적으로, 태스크 지문은 여기에서 논의된 데이터센터의 임의의 적절한 리소스에 의해 수행될 수 있다. 일부 예시에서, 지문 비교는 전용 컴퓨팅 리소스에 의해 수행될 수 있다. 일부 예시에서, 지문 비교는 데이터센터에서 태스크 관리자에 의해 수행될 수 있다.
일반적으로, 태스크 행동 프로파일은 데이터센터에서 태스크를 수행하는 것에 연관된 임의의 정보를 포함할 수 있다. 일부 예시에서, 태스크 행동 프로파일은 태스크를 수행하기 위한 리소스의 선호되는 세트를 포함할 수 있다. 일부 예시에서, 리소스의 세트는 프로세서 유형 및/또는 용량, 전형적인 태스크 지속기간, 메모리 유형 및/또는 양, 캐시 공간 또는 가상 머신 유형 또는 용량 등을 포함할 수 있다. 일부 예시에서, 태스크 행동 프로파일은, 충돌 태스크가, 충돌 태스크와 태스크가 동일한 리소스로 할당되는 경우 상당한 감속(slowdown) 및/또는 비효율이 발생할 수 있음을 나타낼 수 있도록, 하나 이상의 충돌 태스크를 포함할 수 있다. 이해될 바와 같이, 리소스를 공유하는 경우, 많은 예시에서, 최소한 또는 보통의 비효율이 발생할 수 있다. 일부 예시에서, 비효율성이 미리 결정된 기준점보다 높을 수 있는 경우, 충돌 리소스가 존재할 수 있다. 일부 예시에서, 미리 결정된 기준점은 50% 감속일 수 있다. 일부 예시에서, 미리 결정된 기준점은 100% 감속일 수 있다. 일부 예시에서, 미리 결정된 기준점은 200% 감속일 수 있다. 일부 구현예에서, 수행 감소는 표준 태스크 지속기간의 다섯 배의 태스크 지속기간을 포함할 수 있다. 일부 예시에서, 수신된 태스크를 수행하기 위해 리소스를 할당하는 것은 충돌 태스크 중 하나 이상에 의해 이용되는 리소스들과 상이한 리소스를 할당하는 것을 포함할 수 있다. 방법(100)의 프로세스는 블록(150)에서 계속 할 수 있다.
블록(150), "참조 태스크 행동 프로파일에 기초하여 수신된 태스크를 수행하도록 리소스 할당"에서, 리소스가 참조 태스크 행동 프로파일에 적어도 부분적으로 기초하여 수신된 일을 수행하도록 데이터센터에서 할당될 수 있다. 일반적으로, 리소스는 임의의 적절한 기법 또는 기법들을 이용하여 할당될 수 있다. 일부 예시에서, 리소스는 데이터센터에서 태스크 관리자에 의해 할당될 수 있다. 논의된 바와 같이, 일부 예시에서, 태스크 행동 프로파일은 하나 이상의 충돌 태스크를 포함할 수 있다. 일부 예시에서는, 수신된 태스크를 수행하기 위해 리소스를 할당하는 것은 충돌 태스크 중 하나 이상에 의해 이용되는 리소스와는 상이한 리소스를 할당하는 것을 포함할 수 있다. 그러한 예시에서, 리소스는 여기에서 논의된 바와 같이 데이터센터에서 시간에 걸쳐 획득된 콜로케이션 데이터에 기초하여 할당될 수 있다. 이해될 바와 같이, 그러한 콜로케이션 수행 비효율을 피하는 것은 데이터센터에서의 상당한 수행 향상을 야기할 수 있다.
일부 예시에서, 리소스는 가장 효율적으로 태스크를 수행할 수 있는 리소스 유형, 양 또는 조합 등의 식별에 기초하여 할당될 수 있다. 일반적으로, 할당된 리소스는 임의의 적절한 리소스를 포함할 수 있다. 일부 예시에서, 할당된 리소스는 프로세서, 메모리, 캐시 공간, 또는 가상 머신을 포함할 수 있다. 논의된 바와 같이, 일부 예시에서, 태스크 지문은 참조 태스크 지문에 완벽한 매치가 아닐 수 있고, 가장 근접한 매치 참조 태스크 지문 또는 태스크 대용이 이용될 수 있다. 논의된 기법은, 가장 근접한 매치 참조 태스크 지문 또는 태스크 대용을 위한 최적화된 리소스의 이용에 기초하여 수신된 태스크가 실질적으로 최적화될 수 있도록, 그러한 태스크 지문에 대한 효율적인 근사 매칭을 제공할 수 있다. 방법(100)의 프로세스는 블록(160)에서 계속 할 수 있다.
블록(160), "할당된 리소스를 이용하여 수신된 태스크 수행"에서, 수신된 태스크는 할당된 리소스를 이용하여 수행될 수 있다. 일반적으로, 수신된 태스크는 임의의 적절한 기법 또는 기법들을 이용하여 수행될 수 있고, 할당된 리소스를 블록(150)에서 논의된 것처럼 구현할 수 있다. 일부 예시에서, 할당된 자원은 수신된 태스크의 완료를 위해 계속해서 이용 가능할 수 있다. 일부 예시에서, 할당된 리소스는 수신된 태스크를 수행하는 동안 이용 불가능 하거나, 이용 불가능하게 되거나 또는 실패 등을 할 수 있다. 그러한 예시에서, 데이터센터는 수신된 태스크를 수행하도록 다른 리소스를 할당할 수 있다. 방법(100)의 프로세스는 블록(170)에서 계속 할 수 있다.
블록(170),"태스크의 수행에 기초하여 수행 매트릭스 수집"에서, 수행에 기초하여 수행 매트릭스가 수집될 수 있다. 일반적으로, 수행 매트릭스는 임의의 적절한 기법 또는 기법들을 이용하여 수집될 수 있다. 일반적으로, 수행 매트릭스의 수집은 여기에서 논의된 데이터센터의 임의의 적절한 리소스에 의해 수행될 수 있다. 일부 예시에서, 수행 매트릭스의 수집은 전용 컴퓨팅 리소스에 의해 수행될 수 있다. 일부 예시에서, 수행 매트릭스의 수집은 데이터센터의 태스크 프로파일러에 의해 수행될 수 있다. 일부 예시에서, 수행 매트릭스는 하이퍼바이저를 통해 수집될 수 있다. 일부 예시에서, 수행 매트릭스는 가상 플랫폼 설계 등과 같은 수정된 가상 머신을 통해 수집될 수 있다. 그러한 수정된 가상 머신은 캐시 사용 또는 메모리 대역폭 등을 포함하는 가상 머신 상태 및/또는 운영 체제에 대한 가시성을 제공할 수 있다. 일부 예시에서, 수행 매트릭스는 데이터센터에서 네트워크 사용 모니터링에 기초하여 패킷을 이용하여 수집될 수 있다.
일반적으로, 수행 매트릭스는 임의의 적절한 수행 매트릭스를 포함할 수 있다. 일부 예시에서, 수행 매트릭스는 데이터센터 관리 연관 매트릭스를 포함할 수 있다. 일부 예시에서, 수행 매트릭스는 태스크 지속기간(즉, 태스크가 완료되는데 얼마나 걸리는지), CPU(central processing unit) 사용, 메모리 사용, 네트워크 사용, 저장 볼륨 사용, 저장 볼륨 액세스 빈도, 메모리 사용의 변화 상태 또는 시간에 걸친 네트워크 트래픽 변화 등을 포함할 수 있다. 일부 예시에서, 수행 매트릭스는 매트릭스가 다양한 발생의 통계적인 확률을 포함할 수 있도록 예측 매트릭스(predictive metrics)를 포함할 수 있다. 데이터센터에서 많이 반복될 수 있으며, 발생 확률을 포함할 수 있는 태스크를 분석함으로써 그러한 매트릭스가 생성될 수 있다. 예시로써, 특정 태스크(및 연관된 태스크 지문)는 2GB 데이터 저장 액세스를 생성하는 것의 90% 확률을 가질 수 있다. 또한, 예측 매트릭스는 매트릭스가 입력(input)을 가질 수 있도록 이전 활동에 의존적일 수 있다. 논의된 예시를 이용하면, 2GB 데이터 저장 액세스를 생성하는 것의 90% 확률은 다른 태스크 또는 애플리케이션으로부터 1MB(또는 그 이상) 네트워크 전달 이후에 발생할 수 있다. 그러한 매트릭스는 실질적으로 유연하고, 정확하고, 런타임 특정(runtime specific)인 이점을 제공할 수 있다. 방법(100)의 프로세스는 블록(180)에서 계속 할 수 있다.
블록(180), "수행 매트릭스에 기초하여 참조 태스크 행동 프로파일 업데이트"에서, 참조 태스크 행동 프로파일은 수집된 수행 매트릭스에 적어도 부분적으로 기초하여 업데이트될 수 있다. 일반적으로, 참조 태스크 행동 프로파일은 임의의 적절한 기법 또는 기법들을 이용하여 업데이트될 수 있다. 일반적으로, 태스크 행동 프로파일은 여기에서 논의된 데이터센터의 임의의 적절한 리소스에 의해 업데이트될 수 있다. 일부 예시에서, 태스크 행동 프로파일은 전용 컴퓨팅 리소스에 의해 업데이트될 수 있다. 일부 예시에서, 태스크 행동 프로파일은 데이터센터의 태스크 프로파일러에서 업데이트될 수 있다. 여기에서 더 논의된 바와 같이, 태스크 행동 프로파일은 데이터베이스로 구현되고, 태스크 행동 프로파일은 데이터베이스에서 정보를 업데이트함으로써 업데이트될 수 있다. 일반적으로, 태스크 행동 프로파일에 대한 업데이트는 여기에서 논의된 임의의 행동 프로파일 정보를 포함할 수 있다. 논의된 바와 같이, 일부 예시에서, 완벽하거나 실질적으로 완벽한 매치는 태스크 지문 및 가장 근접한 매치 참조 태스크 지문 사이에서 결정되었을 수 있다. 그러한 예시에서, 태스크 행동 프로파일에 대한 업데이트는 가장 근접한 매치 참조 태스크 지문의 태스크 행동 프로파일을 업데이트하는 것을 포함할 수 있다. 일부 예시에서, 태스크 지문은 새롭게 식별된 태스크 지문일 수 있고, 태스크 행동 프로파일을 업데이트하는 것은 새로운 지문 및 새로운 행동 프로파일 엔트리를 제공하는 것을 포함할 수 있다.
방법(100) 및 여기에서 논의된 다른 기법은 동적 스케줄링, 동적 용량 플래닝, 상당한 효율성, 동일한 하드웨어로부터의 향상된 수행 또는 데이터센터를 위한 리소스 절약 및 최적화를, 특히 두 개 이상의 태스크 사이에서 공유되는 자원을 이용하는 경우, 제공할 수 있다. 방법(100)은 태스크가 데이터센터에서 수신됨에 따라 임의의 횟수로 수행될 수 있다. 일부 예시에서, 방법(100)은 수신된 모든 태스크에 대해 수행될 수 있다. 일부 예시에서, 방법(100)은 수신된 태스크의 일부에 대해 또는 데이터센터 내부의 특정 로드 레벨 동안과 같은 특정 상황에서 수행될 수 있다. 논의된 바와 같이, 태스크는 복수의 클라이언트 중 수신된 임의의 것일 수 있다. 일부 예시에서, 상이한 클라이언트로부터 수신된 태스크는, 여기에서 설명된 바와 같이, 지문화되고, 비교되고, 리소스를 할당하는데 이용될 수 있다. 그러한 구현예는 태스크를 특징짓고 리소스를 할당하기 위해 실질적으로 더 많은 정보를 제공하는 이점을 제공할 수 있다. 또한, 그러한 구현예는 더 작은 클라이언트, 서비스를 덜 이용하는 클라이언트, 또는 새로운 클라이언트 등에 대해 효율적으로 리소스를 할당하는 이점을 제공할 수 있다.
논의된 바와 같이, 여기에서 논의된 기법은 데이터센터를 위한 상당한 효율성 및 리소스 절약을 제공할 수 있다. 일부 예시에서, 생성되고 보유되는 정보가 다른 데이터센터에서의 이용을 위해 효력을 가질 수 있도록, 다른 데이터센터로 이전될 수 있거나, 새로운 데이터센터에서 구현 될 수 있거나 또는 데이터센터 솔루션으로 제공될 수 있는 데이터베이스가 생성될 수 있다.
도 2는 본 개시의 적어도 일부 실시예에 따라서 배열되는, 태스크 지문 및 리소스 할당 데이터베이스를 생성하기 위한 예시적인 방법(200)의 흐름도의 예시이다. 일반적으로, 방법(200)은 여기에서 논의된 것들과 같은 임의의 적절한 장치, 장치들 또는 시스템에 의해 수행될 수 있다. 일부 예시에서, 방법(200)은 데이터센터, 또는 데이터센터 클러스터 등에 의해 수행될 수 있다. 일부 예시에서, 방법(200)은 클라우드 컴퓨팅 서비스에 의해 수행될 수 있다. 일부 예시에서, 방법(200)은 여기에서 도 7과 관해 논의된 시스템에 의해 수행될 수 있다. 일부 예시에서, 방법(200)은 다른 데이터센터 또는 데이터센터 클러스터 등에 이전 및/또는 전송될 수 있는 태스크 지문 및 리소스 할당 데이터베이스를 제공한다.
방법(200)은 하드웨어, 소프트웨어 및/또는 펌웨어에 의해 수행될 수 있는 프로세스 단계, 기능적 작동, 이벤트 및/또는 동작 등으로 설명될 수 있는 다양한 기능적 블록 또는 동작을 기술한다. 도 2에 도시된 기능적 블록에 대한 많은 대안들은 다양한 구현예로 실시될 수 있다. 예를 들어, 청구된 대상의 범위를 벗어나지 않으면서 도 2에 도시되지 않은 개재된 동작 및/또는 도 2에 도시되지 않은 추가적인 동작이 사용될 수 있고 및/또는 도 2에 도시된 동작 중 일부가 제거될 수 있다. 방법(200)은 블록(210, 220, 230, 240, 250, 260, 270 및/또는 280) 중 하나 이상에 의해 나타난 기능적 동작 중 하나 이상을 포함할 수 있다. 방법(200)의 프로세스는 블록(210)에서 시작할 수 있다.
블록(210), "태스크 수신"에서, 예를 들어, 태스크가 데이터센터에서 수신될 수 있다. 일반적으로, 태스크는 임의의 적절한 통신 기법 또는 기법들을 이용하여 수신될 수 있다. 일반적으로, 수신된 태스크는 여기에서, 그리고 특히 방법(100)의 블록(110)에 관해 논의된 임의의 적절한 태스크, 태스크의 그룹 또는 서브태스크, 애플리케이션, 프로세스 등을 포함할 수 있다. 방법(200)의 프로세스는 블록(220)에서 계속할 수 있다.
블록(220), "수신된 태스크에 기초하여 태스크 지문 생성"에서, 수신된 태스크에 적어도 부분적으로 기초하여 태스크 지문이 데이터센터에서 생성된다. 일반적으로, 태스크 지문은 데이터센터에서 수신된 되풀이되는 태스크의 인식 및/또는 매칭을 가능하게 할 수 있는 임의의 적절한 기법 또는 기법들을 이용하여 생성될 수 있다. 여기에서 논의된 그리고 특히, 방법(100)의 블록(120)에 관하여 논의된 임의의 방법 또는 기법이 태스크 지문을 생성하는데 이용될 수 있다.
논의된 바와 같이, 일부 예시에서, 태스크 지문은 데이터센터에서 생성될 수 있다. 일부 예시에서, 태스크 지문은, 예를 들어 클라이언트 시스템, 또는 사용자 시스템 등과 같은 클라이언트로부터 수신될 수 있다. 그러한 예시에서, 태스크 지문을 생성하기 위해 요구되는 프로세스는 그에 의해 데이터센터에서 클라이언트 측으로 오프로드될 수 있다. 일반적으로, 태스크 지문은 여기에서 논의된 임의의 기법을 이용하여 클라이언트 측에서 형성될 수 있고, 태스크 지문은 임의의 적절한 통신 기법을 이용하여 클라이언트 측으로부터 전송될 수 있다. 방법(200)의 프로세스는 블록(230)에서 계속할 수 있다.
블록(230), "수신된 태스크를 수행하도록 리소스 세트 할당"에서, 수신된 태스크를 수행하도록 리소스가 데이터센터에서 할당될 수 있다. 일반적으로 리소스는 임의의 적절한 기법 또는 기법들을 이용하여 할당될 수 있다. 일부 예시에서, 리소스는 데이터센터에서 태스크 관리자에 의해 할당될 수 있다. 일부 예시에서, 할당된 리소스를 가지고 수행하는 동안, 태스크 행동에 대한 데이터를 수집하도록 리소스가 할당될 수 있다. 일부 예시에서, 리소스는 무작위로 선택될 수 있다. 일부 예시에서, 리소스는, 수신된 태스크가 모두(적어도 처음에) 베이스라인 리소스 세트(baseline resource set)를 가지고 수행될 수 있도록 리소스 템플릿에 기초하여 선택될 수 있다. 일부 예시에서, 리소스는 태스크 지문의 특징에 기초하여 선택될 수 있다. 일부 예시에서, 리소스는 여기에서, 특히 방법(100)에 관하여 논의된 참조 태스크 행동 프로파일 및 참조 태스크 지문에 대한 비교에 기초하여 선택될 수 있다. 일부 예시에서, 태스크에 대한 충돌 태스크를 결정하는 것이 바람직할 수 있다. 일부 예시에서, 리소스를 할당하는 것은 태스크 충돌이 존재할 수 있는지 결정하도록 다른 태스크를 이미 수행하는 리소스를 할당하는 것을 포함할 수 있다. 일부 예시에서, 태스크를 수행할 수 있는 최소한의 리소스 양을 결정하는 것이 바람직할 수 있다. 일반적으로, 할당된 리소스는 임의의 적절한 리소스를 포함할 수 있다. 일부 예시에서, 할당된 리소스는 프로세서, 메모리, 캐시 공간, 또는 가상 머신 등을 포함할 수 있다. 방법(200)의 프로세스는 블록(240)에서 계속할 수 있다.
블록(240), "할당된 리소스 세트를 이용하여 수신된 태스크 수행"에서, 수신된 태스크가 할당된 리소스를 이용하여 수행될 수 있다. 일반적으로, 수신된 태스크는 임의의 적절한 기법 또는 기법들을 이용하여 수행될 수 있고, 블록(230)에서 논의된 바와 같이 할당된 리소스를 구현할 수 있다. 수신된 태스크는 여기에서 논의된 임의의 기술을 이용하여 수행될 수 있다. 방법(200)의 프로세스는 블록(250)에서 계속할 수 있다.
블록(250), "수행된 태스크에 대한 태스크 행동 수집"에서, 수행에 기초하여 수행 매트릭스가 수집될 수 있다. 일반적으로, 수행 매트릭스는 임의의 적절한 기법 또는 기법들을 이용하여 수집될 수 있다. 일반적으로, 수행 매트릭스의 수집은, 여기에서 논의된 바와 같이, 데이터센터의 임의의 적절한 리소스에 의해 수행될 수 있다. 일부 예시에서, 수행 매트릭스의 수집은 태스크 프로파일과 같은 전용 컴퓨팅 리소스에 의해 수행될 수 있다. 일부 예시에서, 수행 매트릭스는 하이퍼바이저를 통해, 가상 플랫폼 설계와 같은 수정된 가상 머신을 통해 또는 네트워크 이용 모니터링에 기초하여 패킷 등을 이용하여 수집될 수 있다.
일반적으로, 수행 매트릭스는 임의의 적절한 수행 매트릭스를 포함할 수 있다. 일부 예시에서, 수행 매트릭스는 데이터센터 관리 연관 매트릭스를 포함할 수 있다. 일부 예시에서, 수행 매트릭스는 태스크 지속기간, CPU(central processing unit) 사용, 메모리 사용, 네트워크 사용, 저장 볼륨 사용, 저장 볼륨 액세스 빈도, 메모리 사용의 변화 상태, 또는 시간에 걸친 네트워크 트래픽 변화 등을 포함할 수 있다. 일부 예시에서, 매트릭스가 여기에서 논의된 통계적 확률을 포함할 수 있도록 수행 매트릭스는 예측 매트릭스를 포함할 수 있다. 방법(200)의 프로세스는 블록(260)에서 계속할 수 있다.
블록(260), "데이터베이스에 태스크 지문이 있는가?"에서, 태스크 지문이 태스크 지문 및 리소스 할당 데이터베이스에 있는지 결정될 수 있다. 일반적으로, 그러한 결정은 임의의 적절한 기법 또는 기법들을 이용하여 이루어질 수 있다. 일부 예시에서, 태스크 지문과 데이터 베이스 내 태스크 지문이 실질적으로 매치되는지 결정될 수 있다. 일부 예시에서, 태스크 지문은 태스크 지문 및 리소스 할당 데이터베이스에 이미 있을 수 있는 참조 태스크 지문과 비교될 수 있다. 일부 예시에서, 비교는 참조 태스크 지문 및 태스크 지문에 연관된 해시 함수의 결과를 비교하는 것, 참조 태스크 지문 및 태스크 지문과 연관된 서브 지문 마스킹(sub-fingerprint masking)의 결과를 비교하는 것 또는 참조 태스크 지문 및 태스크 지문과 연관된 상징적 표현 및 트리 플로우 추출의 결과를 비교하는 것 등을 포함할 수 있다. 일반적으로, 그러한 비교는 예를 들면 태스크 관리자와 같은, 여기에서 논의된 데이터센터의 임의의 적절한 리소스에 의해 수행될 수 있다. 태스크 지문이 태스크 지문 및 리소스 할당 데이터베이스에 없으면, 방법(200)의 프로세스는 블록(270)에서 계속할 수 있다. 태스크 지문이 태스크 지문 및 리소스 할당 데이터베이스에 있으면, 방법(200)의 프로세스는 블록(280)에서 계속할 수 있다.
블록(270), "데이터베이스에서 태스크 지문, 할당된 리소스 세트 및 태스크 행동을 새로운 엔트리로 연관"에서, 태스크 지문, 할당된 리소스 세트 및 태스크 행동가 데이터베이스에서 새로운 엔트리로 연관될 수 있다. 일반적으로, 설명된 데이터는 임의의 적절한 기법 및/또는 데이터 구조를 이용하여 데이터베이스에 입력되고 및/또는 유지될 수 있다. 일부 예시에서, 태스크 지문, 할당된 리소스 세트 및 태스크 행동은 표로 연관될 수 있다. 일부 예시에서, 태스크 지문, 할당된 리소스 세트 및 태스크 행동은 여기에서 도 4 및/또는 5에 관하여 논의되는 표에서 데이터베이스에서 연관될 수 있다. 일부 예시에서, 태스크 지문, 할당된 리소스 세트 및 태스크 행동은 관계 데이터베이스(relational database)에서 연관될 수 있다. 이해될 바와 같이, 다양한 정보가, 예컨대, 타임 스탬프, 데이터센터의 수행 매개변수와 연관된 데이터 또는 데이터센터에 의해 동시에 수행되는 다른 태스크와 연관된 데이터 등과 같은 논의된 데이터와 더불어 데이터베이스에서, 논의된 태스크 수행과 연관될 수 있다.
블록(280), "데이터베이스에서 할당된 리소스 세트 및 태스크 행동을 태스크 지문 엔트리로 연관"에서, 할당된 리소스 세트 및 태스크 행동이 태스크 지문과 공통 태스크 지문 엔트리로 데이터베이스에서 연관될 수 있다. 일반적으로, 논의된 데이터는 임의의 적절한 기법 및/또는 데이터 구조를 이용하여 데이터베이스에 입력되고 및/또는 유지될 수 있다. 일부 예시에서, 할당된 리소스 세트 및 태스크 행동은 표 또는 표 엔트리 등으로 태스크 지문과 연관될 수 있다. 일부 예시에서, 할당된 리소스 세트 및 태스크 행동은 여기에서 도 4 및/또는 5에 관하여 논의되는 표 엔트리로 태스크 지문과 연관될 수 있다. 일부 예시에서, 할당된 리소스 세트 및 태스크 행동은 관계 데이터베이스에서 태스크 지문과 연관될 수 있다. 논의된 바와 같이, 다양한 추가적인 정보는, 예를 들어, 타임 스탬프, 데이터센터의 수행 매개변수와 연관된 데이터 또는 데이터센터에 의해 동시에 수행되는 다른 태스크와 연관된 데이터 등과 같이, 데이터베이스에서, 논의된 태스크 수행과 연관될 수 있다.
방법(200) 및 여기에서 논의된 다른 기법은 태스크 지문 및 리소스 할당 데이터베이스를 제공하도록 수행될 수 있다. 방법(200)은 데이터센터에서 태스크가 수신될 수 있음에 따라, 임의의 횟수로 수행될 수 있다. 이해될 바와 같이, 여기에서 논의된 바와 같이, 더 많은 태스크가 수신될 수 있고, 수행될 수 있고, 특징지어질 수 있을 수록 태스크 지문 및 리소스 할당 데이터베이스는 더 완전해지고, 견고해지고, 및/또는 증축될 수 있다. 일부 예시에서, 태스크 지문 및 리소스 할당 데이터베이스는 적합한 데이터베이스 관리를 제공하기 위해, 주기적으로 재구성되거나, 의문의 여지가 있는 정보를 추려내거나, 다른 데이터베이스와 조합 또는 비교 등이 될 수 있다..
방법(200)에서 논의된 바와 같이, 태스크 지문 및 리소스 할당 데이터베이스는 시간에 걸쳐 구성되고 업데이트될 수 있다. 그러한 데이터베이스는 데이터센터를 구현하는데 유용할 수 있거나, 데이터베이스는 다른 데이터센터, 또는 개시 데이터센터 등에 의하여 사용될 수 있다. 이해될 바와 같이, 방법(200)은 유용한 클라이언트 태스크를 수행하는 기능적 데이터센터 및 태스크 지문 및 리소스 할당 데이터베이스의 결과의 맥락에서 논의될 수 있다. 일부 예시에서, 방법(200)에 관하여 논의된 것과 유사한 기술을 이용하는 방법은 태스크 지문 및 리소스 할당 데이터베이스를 구성하기 위한 일련의 테스트 태스크로 이용될 수 있다. 그러한 예시에서, 태스크는 알려진 공통 태스크로부터 선택되거나, 테스팅 목적을 위해 생성 등이 될 수 있다. 그러한 기법은 데이터베이스 구조가 달성된 테스트 결과에 의해 충분히 및/또는 예상대로 있는 것을 허용하는 이점을 제공할 수 있다.
여기에서 논의된 바와 같이, 일부 예시에서, 태스크 지문 및 리소스 할당 데이터베이스는 생성될 수 있다. 일부 예시에서, 그러한 데이터베이스는 리소스를 할당하는데 사용될 수 있다. 도 3은, 본 개시의 적어도 일부 실시예에 따라 배열되는, 연관된 태스크 지문, 할당된 리소스 세트, 및 태스크 행동 정보에 대한 예시적인 데이터 구조의 표(300)의 예시이다. 도 3에 도시된 바와 같이, 표(300)는 태스크 지문 열(310), 리소스 세트 행(320) 및 대응하는 태스크 행동 엔트리(330) 및/또는 대응하는 빈 엔트리(340)를 포함할 수 있다. 일반적으로, 표(300)는 여기에서 논의되는 데이터센터 또는 시스템에서 유지될 수 있는 데이터베이스에서 구현된 데이터 세트의 표현일 수 있다.
일반적으로, 표(300)는 태스크 지문 열(310)에서 임의의 개수의 태스크 지문 엔트리(1, 2, … X), 리소스 세트 행(320)에서 임의의 개수의 리소스 세트 엔트리(1, 2, … Y), 임의의 개수의 태스크 행동 엔트리(330) 및 임의의 개수의 빈 엔트리(340)를 포함할 수 있다. 일부 예시에서, 태스크 지문 열(310)의 태스크 지문 엔트리는, 여기에서 논의된 바와 같이, 데이터센터에 의해 수행되는 태스크의 태스크 지문을 포함할 수 있다. 일반적으로, 태스크 지문 엔트리는 여기에서 논의된 임의의 지문을 포함할 수 있다. 일부 예시에서, 리소스 세트 엔트리는, 여기에서 논의된 바와 같이, 태스크를 수행하는데 이용되는 할당된 리소스 세트를 포함할 수 있다.
일반적으로, 태스크 행동 엔트리(330)는, 여기에서 논의된 바와 같이, 임의의 태스크 행동 정보를 포함할 수 있다. 일반적으로, 태스크 행동 엔트리는 데이터센터에서 리소스 세트를 이용하는 태스크 지문과 연관된 태스크를 수행하는 것과 연관된 임의의 정보를 포함할 수 있다. 일부 예시에서, 태스크 행동 엔트리는, 여기에서 논의된 바와 같이, 수행 매트릭스를 포함할 수 있다. 일부 예시에서, 태스크 행동 엔트리는 데이터센터 관리 연관 매트릭스를 포함할 수 있다. 일부 예시에서, 태스크 행동 엔트리는, 태스크 지속기간, CPU(central processing unit) 사용, 메모리 사용, 네트워크 사용, 저장 볼륨 사용, 저장 볼륨 액세스 빈도, 메모리 사용의 변화 상태, 또는 시간에 걸친 네트워크 트래픽 변화 등을 포함할 수 있다. 일부 예시에서, 태스크 행동 엔트리는 매트릭스가 확률을 포함할 수 있도록, 예측 매트릭스를 포함할 수 있다. 일부 예시에서, 태스크 행동 엔트리는, 여기에서 논의된 바와 같이, 하나 이상의 충돌 태스크를 포함할 수 있다. 일부 예시에서, 표(300)는, 선호되는 리소스 세트를 나타낼 수 있는 대응하는 태스크 행동 엔트리 및 리소스 세트를, 각각의 태스크 지문에 대해, 식별할 수 있는 포인터 또는 플래그를 포함할 수 있다. 그러한 리소스 세트 및/또는 태스크 행동 엔트리는, 여기에서 논의된 바와 같이, 가장 근접한 매치 참조 태스크 지문에 대한 리소스를 할당함에 있어 이용하기 위한 참조 태스크 행동 프로파일을 나타낼 수 있다. 일반적으로, 빈 엔트리(340)는 정보를 포함하지 않을 수 있고, 데이터센터에서 평가된 태스크 지문 및 리소스 세트 조합에 대한 엔트리를 포함할 수 있다.
도 4는 본 개시의 적어도 일부 실시예에 따라 배열되는, 연관된 태스크 지문 및 태스크 행동 정보에 대한 예시적인 데이터 구조의 표의 예시이다. 도 4에 도시된 바와 같이, 표(400)는 태스크 지문 열(410), 태스크 지문 행(420) 및 대응하는 태스크 행동 엔트리(430) 및/또는 대응하는 빈 엔트리(440)를 포함할 수 있다. 도시된 바와 같이, 표(400)는 동일한 태스크가 공유된 리소스 상에 함께 있는 경우의 예시에 관한 정보를 포함할 수 있는 태스크 행동 엔트리를 포함할 수 있는 대각선 태스크 행동 엔트리(450)를 포함할 수 있다. 일부 예시에서, 표(400)는 임의의 반복된 정보가 제거될 수 있도록 상삼각 행렬 또는 하삼각 행렬 또는 표로 구현될 수 있다. 일부 예시에서, 표(400)는 전체 표로 구현될 수 있고, 상삼각은 높은 우선순위 프로세스 및/또는 태스크를 포함할 수 있고, 하삼각은 더 낮은 우선순위 프로세스 및/또는 태스크를 포함할 수 있다. 일반적으로, 표(400)는 여기에서 논의된 바와 같이, 데이터센터 또는 시스템에서 유지될 수 있는 데이터베이스에서 구현된 데이터 세트의 표현일 수 있다.
일반적으로, 표(400)는 태스크 지문 열(410) 및 태스크 지문 행(420)에서 임의의 개수의 태스크 지문 엔트리(1, 2, … X)를 포함할 수 있고, 임의의 개수의 태스크 행동 엔트리(430) 및 임의의 개수의 빈 엔트리(440)를 포함할 수 있다. 일부 예시에서, 태스크 지문 열(410) 및 태스크 지문 행(420)의 태스크 지문 엔트리는, 여기에서 논의된 바와 같이, 데이터센터에 의해 수행된 태스크의 태스크 지문을 포함할 수 있다. 일반적으로, 태스크 지문 엔트리는 여기에서 논의된 임의의 지문을 포함할 수 있다. 일부 예시에서, 표(400)는 태스크 행동 엔트리(430)가 (태스크 지문에 의해 나타난)태스크 사이에서 리소스를 공유하는 것과 연관된 정보를 포함할 수 있도록, 도시된 바처럼 배열될 수 있다. 그것으로서, 여기에서 논의된 데이터센터에서 비효율을 일으킬 수 있는 충돌 리소스가 쉽게 식별될 수 있다.
일반적으로, 태스크 행동 엔트리(430)는, 여기에서 논의된 임의의 태스크 행동 정보를 포함할 수 있다. 일반적으로, 태스크 행동 엔트리는 데이터센터에서 리소스를 이용하여 태스크 지문과 연관된 태스크를 실질적으로 동시에 수행하기 위해서, 공유된 리소스를 이용하는 것과 연관된 임의의 정보를 포함할 수 있다. 일부 예시에서, 태스크 행동 엔트리는, 여기에서 논의된 바와 같이, 수행 매트릭스를 포함할 수 있다. 일부 예시에서, 태스크 행동 엔트리는 데이터센터 관리 연관 매트릭스를 포함할 수 있다. 일부 예시에서, 태스크 행동 엔트리는 태스크 지속기간, CPU(central processing unit) 사용, 메모리 사용, 네트워크 사용, 저장 볼륨 사용, 저장 볼륨 액세스 빈도, 메모리 사용의 변화 상태, 또는 시간에 걸친 네트워크 트래픽 변화 등을 포함할 수 있다. 일부 예시에서, 태스크 행동 엔트리는 매트릭스가 확률을 포함할 수 있도록 예측 매트릭스를 포함할 수 있다. 일부 예시에서, 표(400)는 논의된 비효율을 일으킬 수 있는 대응하는 태스크를 식별할 수 있어, 그에 의해 충돌 태스크를 나타낼 수 있는 포인터 또는 플래그를 포함할 수 있다. 일반적으로, 빈 엔트리(440)는 정보를 포함하지 않을 수 있고, 데이터센터에서 평가된 태스크 지문 및 리소스 세트 조합에 대한 엔트리를 포함할 수 있다.
여기에서 논의된 바와 같이, 일부 예시에서, 태스크 지문은 수신된 태스크에 대해 트리 플로우 추출을 수행함으로써, 그리고 트리 플로우 추출의 상징적 근사 표현을 제공함으로써 생성될 수 있다. 일부 예시에서, 트리 플로우 추출은 태스크의 행동적 구조의 표현을 제공할 수 있고, 태스크의 데이터 내용에 대한 컴포넌트를 포함할 수 있다. 도 5는, 본 개시의 적어도 일부 실시예에 따라 배열되는, 예시적인 트리 플로우 추출의 도표(500)의 예시이다. 도 5에 도시된 바와 같이, 도표(500)는 연결(520)에 의해 링크될 수 있는 (도표(500)에서 1-63으로 번호 매겨진)코드 세그먼트(510)를 포함할 수 있다. 일부 예시에서, 도표(500)는 또한 세그먼트(530)를 포함할 수 있다. 일반적으로, 코드 세그먼트(510)는 태스크에서 추출된 트리 플로우에서 실행 단위를 나타낼 수 있다. 일반적으로, 연결(520)은 실행 단위 사이의 링크 또는 실행 플로우를 나타낼 수 있다. 일반적으로, 세그먼트(530)는 태스크의 실행 중 코드 세그먼트(510)가 호출될 수 있는 빈도 및/또는 확률을 나타낼 수 있다. 여기에서 논의된 바와 같이, 도표(500)의 예시적인 트리 플로우 추출과 같은 트리 플로우 추출은 임의의 적절한 기법 또는 기법들을 이용하여 상징적 근사 형식으로 전환될 수 있다.
여기에서 논의된 바와 같이, 일부 예시에서, 태스크 지문은 수신된 태스크 상에서 트리 플로우 추출을 수행함으로써, 그리고 트리 플로우 추출의 상징적 근사 표현을 제공함으로써 생성될 수 있다. 일부 예시에서, 트리 플로우 추출은 태스크의 행동적 구조의 표현를 제공할 수 있고, 태스크의 데이터 내용에 대한 컴포넌트를 포함할 수 있다. 일부 예시에서, 트리 플로우 추출은 태스크와 연관된 시그니처를 제공할 수 있다. 일반적으로 트리 플로우 추출은 임의의 적절한 기법 또는 기법들을 이용하여 수행될 수 있다. 일부 예시에서, 트리 플로우 추출은 하이퍼바이저가 가질 수 있는 가상 머신 파일 시스템으로의 액세스를 통해 수행될 수 있다. 일부 예시에서, 트리 플로우 추출은 컴파일된 바이트코드, 스크립트 또는 로우 코드(raw code) 등에 대한 추출을 수행하는 것을 포함할 수 있다. 일부 예시에서, 트리 플로우 추출은 태스크 패키지 업로드 및/또는 설치 동안 수행될 수 있다. 그러한 구현예는 데이터센터 하이퍼바이저에 대한 변경을 요구하지 않는 이점을 제공할 수 있다. 그러한 구현예에서, 트리 플로우 추출에 의해 결정된 태스크 지문은 암호화 되어 데이터센터에서 가상 머신 옆에 저장될 수 있다.
일반적으로, 여기에서 논의된 시스템 설계, 방법 및 데이터베이스는 임의의 적절한 컴퓨터 판독가능 매체 또는 컴퓨터 프로그램 제품을 이용하여 임의의 데이터센터, 시스템 및/또는 컴퓨팅 시스템에서 구현될 수 있다. 예시적인 컴퓨터 프로그램 제품은 도 6 및 명세서 다른 부분에 관하여 설명된다. 예시적인 시스템은 도 7 및 명세서 다른 부분에 관하여 설명된다. 일부 예시에서, 데이터센터, 시스템 또는 데이터 클러스터 또는 여기에서 논의된 다른 시스템은 복수의 물리적 장소 또는 위치 상에서 구현될 수 있다.
도 6은 본 개시의 적어도 일부 실시예에 따라 배열되는, 예시적인 컴퓨터 프로그램 제품(600)을 도시한다. 컴퓨터 프로그램 제품(600)은 실행되는 경우, 머신으로 하여금, 여기에서 논의된 프로세스 및 방법에 따라 데이터센터 리소스를 할당하게 하는 저장된 복수의 명령어를 저장하는, 기계로 판독가능 일시적이지 않은 매체를 포함할 수 있다. 컴퓨터 프로그램 제품(600)은 신호 베어링 매체(602)를 포함할 수 있다. 신호 베어링 매체(602)는 하나 이상의 프로세서에 의해 실행되는 경우, 컴퓨팅 장치로 하여금 여기에서 설명된 기능을 제공하는 것을 동작적으로 가능하게 할 수 있는 하나 이상의 기계 판독가능 명령어(604)를 포함할 수 있다. 다양한 예시에서, 기계 판독가능 명령어 중 일부 또는 모두는 여기에서 논의된 기기에 의해 이용될 수 있다.
일부 구현예에서, 신호 베어링 매체(602)는 하드 디스크 드라이브, CD(Compact Disk), DVD(Digital Versatile Disk), 디지털 테이프, 메모리 등과 같은 컴퓨터 판독 가능 매체(606)를 포함할 수 있으나, 이에 제한되지는 않는다. 일부 구현예에서, 신호 베어링 매체(602)는 메모리, 읽기/쓰기(R/W) CD, R/W DVD 등과 같은 기록 가능 매체(608)를 포함할 수 있으나, 이에 제한되지는 않는다. 일부 구현예에서, 신호 베어링 매체(602)는 디지털 및/또는 아날로그 통신 매체(예컨대, 광섬유 케이블, 도파관(waveguide), 유선 통신 링크, 무선 통신 링크 등)와 같은 통신 매체(610)를 포함할 수 있으나, 이에 제한되지는 않는다. 일부 예시에서, 신호 베어링 매체(602)는 기계로 판독 가능한 일시적이지 않은 매체를 포함할 수 있다.
도 7은 본 개시의 적어도 일부 실시예에 따라 배열되는 예시적인 컴퓨팅 장치(700)를 도시하는 블록도이다. 다양한 예시에서, 컴퓨팅 장치(700)는 여기에서 논의된 바와 같이 데이터센터 리소스를 할당하도록 구성될 수 있다. 다양한 예시에서, 컴퓨팅 장치(700)는 여기에서 논의된 서버 시스템으로 데이터센터 리소스를 할당하도록 구성될 수 있다. 하나의 예시적인 기본 구성(701)에서, 컴퓨팅 장치(700)는 하나 이상의 프로세서(710) 및 시스템 메모리(720)를 포함할 수 있다. 메모리 버스(730)는 프로세서(710)와 시스템 메모리(720) 사이의 통신을 위해 이용될 수 있다.
요구되는 구성에 따라, 프로세서(710)는 마이크로프로세서(μP), 마이크로컨트롤러(μC), 디지털 신호 프로세서(DSP) 또는 그 임의의 조합을 포함하는 임의의 유형일 수 있지만, 이에 한정되는 것은 아니다. 프로세서(710)는 레벨 1 캐시(711) 및 레벨 2 캐시(712)와 같은 하나 이상의 레벨의 캐싱, 프로세서 코어(713) 및 레지스터(714)를 포함할 수 있다. 프로세서 코어(713)는 ALU(arithmetic logic unit), FPU(floating point unit), DSP 코어(digital signal processing core), 또는 그 임의의 조합을 포함할 수 있다. 예시적인 메모리 컨트롤러(715)는 또한 프로세서(710)와 사용될 수 있거나, 또는 몇몇 구현예에서, 메모리 컨트롤러(715)는 프로세서(710)의 내부 부품일 수 있다.
요구되는 구성에 따라, 시스템 메모리(720)는 (RAM과 같은)휘발성 메모리, (ROM, 플래시 메모리 등과 같은)비휘발성 메모리, 또는 그 임의의 조합을 포함할 수 있지만, 이에 한정되지 않는 임의의 유형일 수 있다. 시스템 메모리(720)는 운영 체제(721), 하나 이상의 애플리케이션(722), 및 프로그램 데이터(724)를 포함할 수 있다. 애플리케이션(722)은, 여기에서 기술된 기능 블록, 동작 및/또는 작동을 포함하여 여기에서 기술된 논의된 기능, 동작 및/또는 작동을 수행하도록 배열될 수 있는 태스크 지문/할당 애플리케이션(723)을 포함할 수 있다. 프로그램 데이터(724)는, 태스크 지문/할당 애플리케이션(723)과 함께 이용하기 위한 태스크 지문/할당 데이터(725)를 포함할 수 있다. 일부 예시적인 실시예에서, 애플리케이션(722)은, 운영 체제(721) 상에서 프로그램 데이터(724)와 동작하도록 배열될 수 있다. 이러한 기술된 기본 구성은 파선(701) 내의 컴포넌트에 의해 도 7에 도시된다.
컴퓨팅 장치(700)는 추가적인 특징 또는 기능, 및 기본 구성(701)과 임의의 요구되는 장치와 인터페이스 간 통신을 용이하게 하기 위한 추가적인 인터페이스를 가질 수 있다. 예를 들면, 버스/인터페이스 컨트롤러(740)는 저장 인터페이스 버스(741)를 통한 기본 구성(701)과 하나 이상의 데이터 저장 장치(750) 간의 통신을 용이하게 하는데 사용될 수 있다. 데이터 저장 장치(750)는 분리형 저장 장치(751), 비분리형 저장 장치(752), 또는 그들의 조합일 수 있다. 분리형 저장 장치 및 비분리형 저장 장치의 예로는, 몇 가지 말하자면, 플렉서블 디스크 드라이브 및 하드 디스크 드라이브(HDD)와 같은 자기 디스크 장치, 컴팩트 디스크(CD) 드라이브 또는 디지털 다기능 디스크(DVD) 드라이브와 같은 광 디스크 드라이브, 고체 상태 드라이브(solid state drive; SSD), 및 테이프 드라이브가 포함된다. 예시적인 컴퓨터 저장 매체는, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성의, 분리형 및 비분리형 매체를 포함할 수 있다.
시스템 메모리(720), 분리형 저장 장치(751) 및 비분리형 저장 장치(752)는 모두 컴퓨터 저장 매체의 예이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크(DVD) 또는 다른 광학 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 또는 원하는 정보를 저장하는데 사용될 수 있고 컴퓨팅 장치(700)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이에 한정되는 것은 아니다. 그러한 임의의 컴퓨터 저장 매체는 장치(700)의 일부일 수 있다.
컴퓨팅 장치(700)는 버스/인터페이스 컨트롤러(740)를 통한 다양한 인터페이스 장치(예를 들면, 출력 인터페이스, 주변 인터페이스 및 통신 인터페이스)로부터 기본 구성(701)으로의 통신을 용이하게 하기 위한 인터페이스 버스(742)도 포함할 수 있다. 예시적인 출력 인터페이스는(760)는 그래픽 처리 유닛(761) 및 오디오 처리 유닛(762)을 포함하며, 이는 하나 이상의 A/V 포트(763)를 통해 디스플레이 또는 스피커와 같은 다양한 외부 장치로 통신하도록 구성될 수 있다. 예시적인 주변 인터페이스(770)는 직렬 인터페이스 컨트롤러(771) 또는 병렬 인터페이스 컨트롤러(772)를 포함하며, 이는 하나 이상의 I/O 포트(773)를 통해 입력 장치(예를 들면, 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등) 또는 다른 주변 장치(예를 들면, 프린터, 스캐너 등)와 같은 외부 장치와 통신하도록 구성될 수 있다. 예시적인 통신 인터페이스(780)는 네트워크 컨트롤러(781)를 포함하며, 이는 하나 이상의 통신 포트(782)를 통해 네트워크 통신 상에서의 하나 이상의 다른 컴퓨팅 장치(783)와의 통신을 용이하게 하도록 배치될 수 있다. 통신 연결은 통신 매체의 일 예시일 수 있다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파 또는 다른 전송 메커니즘 같은 변조된 데이터 신호 내의 다른 데이터에 의해 구현될 수 있고, 임의의 정보 전달 매체를 포함할 수 있다. "변조된 데이터 신호"는 신호 내에 정보를 인코딩하기 위한 방식으로 설정되거나 변경된 특성 중 하나 이상을 갖는 신호일 수 있다. 제한적인지 않은 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속과 같은 유선 매체, 및 음파, 무선 주파수(RF), 적외선(IR) 및 다른 무선 매체와 같은 무선 매체를 포함할 수 있다. 여기에서 사용되는 컴퓨터 판독가능 매체라는 용어는 저장 매체 및 통신 매체 둘 다를 포함할 수 있다.
컴퓨팅 장치(700)는, 휴대 전화, 모바일 폰, 태블릿 장치, 랩톱 컴퓨터, PDA(personal data assistant), 개인용 미디어 플레이어 장치, 무선 웹-워치(web-watch) 장치, 개인용 헤드셋 장치, 특수 용도 장치, 또는 위 기능 중 임의의 것을 포함하는 하이브리드 장치 같은 소형 폼 팩터(small-form factor)의 휴대용(또는 모바일) 전자 장치의 일부로서 구현될 수 있다. 컴퓨팅 장치(700)는 또한 랩톱 컴퓨터 및 랩톱이 아닌 컴퓨터 구성을 모두 포함하는 개인용 컴퓨터로서 구현될 수 있다. 또한, 컴퓨팅 장치(700)는 무선 기지국 또는 다른 무선 시스템 또는 장치의 일부로서 구현될 수 있다.
이상의 상세한 설명의 일부분은 컴퓨터 메모리와 같은 컴퓨팅 시스템 메모리 내에 저장된 데이터 비트 또는 이진 디지털 신호 상에서의 동작의 알고리즘 또는 기호적 표현의 관점에서 제시된다. 이러한 알고리즘적인 설명 또는 표현은 데이터 프로세싱 분야의 당업자가 그들 연구의 실체를 다른 당업자에게 전달하기 위하여 사용하는 기법의 예시이다. 여기에서, 그리고 일반적으로, 알고리즘은 요구되는 결과로 이끄는 일관된 일련의 동작이나 유사한 프로세싱이 되도록 고려된다. 이러한 맥락에서, 동작 또는 프로세싱은 물리량의 물리적 조작을 수반한다. 보통, 반드시 필요하지는 않지만, 그러한 양은 저장, 전송, 조합, 비교나 아니면 조작될 수 있는 전기 또는 자기 신호의 형태를 취할 수 있다. 주로 일반 관습의 이유로, 비트, 데이터, 값, 요소, 심볼, 문자, 용어, 숫자 또는 번호 등으로 그러한 신호를 지칭하는 것이 때때로 편리함이 입증되었다. 그러나, 이들 및 유사한 용어 모두는 적절한 물리량과 연관될 것이고, 단지 편리한 라벨(label)임이 이해되어야 한다. 달리 구체적으로 언급되지 않는다면, 이하의 논의로부터 분명하게 될 바와 같이, 본 명세서의 논의에 걸쳐 "프로세싱", "컴퓨팅", "계산", "결정" 등과 같은 용어를 사용하는 것은, 컴퓨팅 장치의 메모리, 레지스터, 또는 기타 정보 저장 장치, 전송 장치, 또는 디스플레이 장치 내의 물리적 전자적 또는 자기적 양으로 표현된 데이터를 조작하거나 변환하는 컴퓨팅 장치의 동작이나 프로세스와 연관 있음이 인정된다.
전술한 상세한 설명은 블록도, 흐름도, 및/또는 예시의 사용을 통해 장치 및/또는 프로세스의 다양한 실시예를 설명하였다. 그러한 블록도, 흐름도, 및/또는 예시가 하나 이상의 기능 및/또는 동작을 포함하는 한, 당업자라면 그러한 블록도, 흐름도, 또는 예시 내의 각각의 기능 및/또는 동작은 하드웨어, 소프트웨어, 펌웨어, 또는 실질적으로 그들 임의의 조합의 넓은 범위에 의해 개별적으로 및/또는 집합적으로 구현될 수 있다는 것이 이해될 것이다. 일 실시예에서, 여기에서 기술된 대상의 몇몇 부분은 ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array), DSP(Digital Signal Processor) 또는 다른 집적의 형태를 통해 구현될 수 있다. 그러나, 당업자라면, 여기에서 기술된 실시예의 일부 양상이, 하나 이상의 컴퓨터 상에 실행되는 하나 이상의 컴퓨터 프로그램(예를 들어, 하나 이상의 컴퓨터 시스템 상에 실행되는 하나 이상의 프로그램), 하나 이상의 프로세서 상에서 실행되는 하나 이상의 프로그램(예를 들어, 하나 이상의 마이크로프로세서 상에서 실행되는 하나 이상의 프로그램), 펌웨어 또는 실질적으로 그들의 조합으로서, 전체적으로 또는 부분적으로 균등하게 집적 회로에 구현될 수 있다는 알 수 있으며, 소프트웨어 및/또는 펌웨어를 위한 코드의 작성 및/또는 회로의 설계는 본 개시에 비추어 당업자에게 자명할 것이다. 또한, 당업자라면, 여기에서 기술된 대상의 수단(mechanism)들이 다양한 형태의 프로그램 제품으로 분포될 수 있음을 이해할 것이며, 여기에서 기술된 대상의 실시예는, 분배를 실제로 수행하는데 사용되는 신호 베어링 매체(signal bearing medium)의 특정 유형과 무관하게 적용됨을 이해할 것이다. 신호 베어링 매체의 예시는, 플렉서블 디스크, 하드 디스크 드라이브(HDD), CD(Compact Disc), DVD(Digital Versatile Disk), 디지털 테이프, 컴퓨터 메모리 등과 같은 판독가능 유형의 매체 및 디지털 및/또는 아날로그 통신 매체(예를 들어, 섬유 광학 케이블, 웨이브가이드, 유선 통신 링크, 무선 통신 링크 등)와 같은 전송 유형 매체를 포함할 수 있으나, 이에 제한되지는 않는다.
여기에서 기술된 대상은 때때로 상이한 다른 컴포넌트 내에 포함되거나 접속된 상이한 컴포넌트를 도시한다. 도시된 그러한 아키텍처는 단순히 예시적인 것이고, 사실상 동일한 기능을 달성하는 다른 많은 아키텍처가 구현될 수 있다는 것이 이해되어야 한다. 개념적으로, 동일한 기능을 달성하기 위한 컴포넌트의 임의의 배치는 원하는 기능이 달성되도록 유효하게 "연관"된다. 이에 따라, 특정 기능을 달성하기 위해 여기에서 결합된 임의의 두 개의 컴포넌트는, 아키텍처 또는 중간 컴포넌트와는 무관하게, 원하는 기능이 달성되도록 서로 "연관"된 것으로 볼 수 있다. 마찬가지로, 연관된 임의의 두 개의 컴포넌트는 또한 원하는 기능을 달성하기 위해 서로 "동작적으로 접속"되거나 또는 "동작적으로 연결"되는 것으로 간주될 수 있고, 그와 같이 연관될 수 있는 임의의 두 개의 컴포넌트는 또한 원하는 기능을 달성하기 위해 서로 "동작적으로 연결가능"한 것으로 볼 수 있다. 동작적으로 연결 가능하다는 것의 특정예는 물리적으로 양립가능(mateable)하고 및/또는 물리적으로 인터액팅하는 컴포넌트 및/또는 무선으로 인터액팅이 가능하고 및/또는 무선으로 인터액팅하는 컴포넌트 및/또는 논리적으로 인터액팅하고 및/또는 논리적으로 인터액팅이 가능한 컴포넌트를 포함하지만, 이에 한정되는 것은 아니다.
여기에서 실질적으로 임의의 복수 및/또는 단수의 용어의 사용에 대하여, 당업자는 맥락 및/또는 응용에 적절하도록, 복수를 단수로 및/또는 단수를 복수로 해석할 수 있다. 다양한 단수/복수의 치환은 명확성을 위해 여기에서 명시적으로 기재될 수 있다.
당업자라면, 일반적으로 본 개시에 사용되며 특히 첨부된 청구범위(예를 들어, 첨부된 청구범위)에 사용된 용어들이 일반적으로 "개방적(open)" 용어(예를 들어, 용어 "포함하는"은 "포함하지만 이에 제한되지 않는"으로, 용어 "갖는"는 "적어도 갖는"으로, 용어 "포함하다"는 "포함하지만 이에 한정되지 않는" 등으로 해석되어야 함)로 의도되었음을 이해할 것이다. 또한, 당업자라면, 도입된 청구항의 기재사항의 특정 수가 의도된 경우, 그러한 의도가 청구항에 명시적으로 기재될 것이며, 그러한 기재사항이 없는 경우, 그러한 의도가 없음을 또한 이해할 것이다. 예를 들어, 이해를 돕기 위해, 이하의 첨부 청구범위는 "적어도 하나" 및 "하나 이상" 등의 도입 구절의 사용을 포함하여 청구항 기재사항을 도입할 수 있다. 그러나, 그러한 구절의 사용이, 부정관사 "하나"("a" 또는 "an")에 의한 청구항 기재사항의 도입이, 그러한 하나의 기재사항을 포함하는 발명들로, 그러한 도입된 청구항 기재사항을 포함하는 특정 청구항을 제한함을 암시하는 것으로 해석되어서는 안되며, 동일한 청구항이 도입 구절인 "하나 이상" 또는 "적어도 하나" 및 "하나"("a" 또는 "an")과 같은 부정관사(예를 들어, "하나"는 "적어도 하나" 또는 "하나 이상"을 의미하는 것으로 전형적으로 해석되어야 함)를 포함하는 경우에도 마찬가지로 해석되어야 한다. 이는 청구항 기재사항을 도입하기 위해 사용된 정관사의 경우에도 적용된다. 또한, 도입된 청구항 기재사항의 특정 수가 명시적으로 기재되는 경우에도, 당업자라면 그러한 기재가 전형적으로 적어도 기재된 수(예를 들어, 다른 수식어가 없는 "두 개의 기재사항"을 단순히 기재한 것은, 전형적으로 적어도 두 개의 기재사항 또는 두 개 이상의 기재사항을 의미함)를 의미하도록 해석되어야 함을 이해할 것이다. 또한, "A, B 및 C 등 중의 적어도 하나"와 유사한 규칙이 사용된 경우에는, 일반적으로 그러한 해석은 당업자가 그 규칙을 이해할 것이라는 전제가 의도된 것이다(예를 들어, "A, B 및 C 중의 적어도 하나를 갖는 시스템"은, A만을 갖거나, B만을 갖거나, C만을 갖거나, A 및 B를 함께 갖거나, A 및 C를 함께 갖거나, B 및 C를 함께 갖거나, A, B, 및 C를 함께 갖는 시스템 등을 포함하지만 이에 제한되지 않음). "A, B 또는 C 등 중의 적어도 하나"와 유사한 규칙이 사용된 경우에는, 일반적으로 그러한 해석은 당업자가 그 규칙을 이해할 것이라는 전제가 의도된 것이다(예를 들어, "A, B 또는 C 중의 적어도 하나를 갖는 시스템"은, A만을 갖거나, B만을 갖거나, C만을 갖거나, A 및 B를 함께 갖거나, A 및 C를 함께 갖거나, B 및 C를 함께 갖거나, A, B, 및 C를 함께 갖는 시스템 등을 포함하지만 이에 제한되지 않음). 또한 당업자라면, 실질적으로 임의의 이접 접속어(disjunctive word) 및/또는 두 개 이상의 대안적인 용어들을 나타내는 구절은, 그것이 상세한 설명, 청구범위 또는 도면에 있는 지와 상관없이, 그 용어들 중의 하나, 그 용어들 중의 어느 하나, 또는 그 용어들 두 개 모두를 포함하는 가능성을 고려했음을 이해할 것이다. 예를 들어, "A 또는 B"라는 구절은 "A" 또는 "B" 또는 "A 및 B"의 가능성을 포함하는 것으로 이해될 것이다.
특정 예시적인 기법이 다양한 방법 및 시스템을 사용하여 여기에서 설명 및 도시되었으나, 청구되는 대상으로부터 벗어나지 않으면서, 다양한 다른 수정이 이루어질 수 있으며, 균등물로 대체될 수 있음이 당업자에 의해 이해되어야 한다. 또한, 여기에서 기술된 중심 개념으로부터 벗어나지 않으면서, 특정 상황을 청구된 대상의 교시에 대해 적합하게 하도록 만은 수정이 이루어질 수 있다. 따라서, 청구된 대상이 개시된 특정 예시에 제한되지는 않으나, 그러한 청구된 대상이 첨부된 청구항 및 그 균등물의 범위에 들어가는 모든 구현들을 또한 포함할 수 있도록 의도된 것이다.

Claims (28)

  1. 데이터센터에서 리소스를 할당하기 위한 방법으로서,
    상기 데이터센터에서 태스크를 수신하는 단계;
    상기 수신된 태스크에 적어도 부분적으로 기초하여, 상기 데이터센터에서, 태스크 지문(task fingerprint)을 생성하는 단계;
    상기 데이터센터에서, 상기 태스크 지문을 복수의 참조 태스크 지문과 비교하여 상기 복수의 참조 태스크 지문으로부터 가장 근접한 매치 참조 태스크 지문(the closest match reference task fingerprint)을 결정하는 단계;
    상기 데이터센터에서, 상기 가장 근접한 매치 참조 태스크 지문에 연관된 참조 태스크 행동 프로파일(reference task behavior profile)을 결정하는 단계; 및
    상기 데이터센터에서, 상기 참조 태스크 행동 프로파일에 적어도 부분적으로 기초하여 상기 수신된 태스크 수행하도록 하나 이상의 리소스를 할당하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 데이터센터에서, 상기 할당된 리소스를 이용하여 상기 태스크를 수행하는 단계;
    상기 태스크의 상기 수행에 적어도 부분적으로 기초하여 하나 이상의 수행 매트릭스(performance metrics)를 수집하는 단계; 및
    상기 데이터센터에서, 상기 하나 이상의 수행 매트릭스에 적어도 부분적으로 기초하여 상기 가장 근접한 매치 참조 태스크 지문에 연관된 상기 참조 태스크 행동 프로파일을 업데이트하는 단계
    를 더 포함하는 방법.
  3. 제2항에 있어서,
    상기 하나 이상의 수행 매트릭스는 태스크 지속기간, CPU(central processing unit) 사용, 메모리 사용, 네트워크 사용, 저장 볼륨 사용, 저장 볼륨 액세스 빈도, 메모리 사용의 변화 상태, 또는 시간에 걸친 네트워크 트래픽 변화 중 적어도 하나를 포함하는, 방법.
  4. 제2항에 있어서,
    상기 데이터센터에서, 제2 태스크를 수신하는 단계;
    상기 데이터센터에서, 상기 수신된 제2 태스크에 적어도 부분적으로 기초하여 제2 태스크 지문을 생성하는 단계;
    상기 데이터센터에서, 상기 제2 태스크 지문을 상기 복수의 참조 태스크 지문과 비교하는 단계;
    상기 가장 근접한 매치 참조 태스크 지문이 상기 제2 태스크 지문에 가장 근접한 매치라는 것을 결정하는 단계; 및
    상기 데이터센터에서, 상기 업데이트된 참조 태스크 행동 프로파일에 적어도 부분적으로 기초하여 상기 수신된 제2 태스크를 수행하도록 제2 리소스를 할당하는 단계
    를 더 포함하는 방법.
  5. 제4항에 있어서,
    상기 데이터센터에서, 상기 제2 할당된 리소스를 이용하여 상기 제2 태스크를 수행하는 단계;
    상기 태스크의 상기 수행에 적어도 부분적으로 기초하여 하나 이상의 제2 수행 매트릭스를 수집하는 단계; 및
    상기 데이터센터에서, 상기 하나 이상의 제2 수행 매트릭스에 기초하여 상기 가장 근접한 매치 참조 태스크 지문에 연관된 상기 참조 태스크 행동 프로파일을 업데이트하는 단계
    를 더 포함하는 방법.
  6. 제5항에 있어서,
    상기 참조 태스크 행동 프로파일을 업데이트하는 단계는, 할당된 리소스가 기준점 레벨에 도달할 퍼센트 가능성(percentage chance)을 포함하는 행동 매트릭스에 기초하여 확률을 제공하는 단계를 포함하는, 방법.
  7. 제1항에 있어서,
    상기 참조 태스크 행동 프로파일은 하나 이상의 충돌 태스크(conflict task)를 포함하고, 상기 수신된 태스크를 수행하도록 리소스를 할당하는 단계는 상기 충돌 태스크 중 하나 이상에 의해 이용되는 리소스와 상이한 리소스를 할당하는 단계를 포함하는, 방법.
  8. 제1항에 있어서,
    상기 태스크 지문을 생성하는 단계는 상기 수신된 태스크에 대한 해시 함수(hash function)를 수행하는 단계를 포함하는, 방법
  9. 제1항에 있어서,
    상기 태스크 지문을 생성하는 단계는 상기 수신된 태스크 상에서 트리 플로우 추출(tree flow extraction)을 수행하여 상기 트리 플로우 추출의 상징적 근사 표현(symbolic approximation representation)을 제공하는 단계를 포함하는, 방법.
  10. 제1항에 있어서,
    상기 태스크 지문을 생성하는 단계는 상기 태스크 내부의 복수의 서브태스크 중 일부를 서브 지문 마스킹(sub-fingerprint masking)하고 상기 태스크의 마스킹되지 않은 서브태스크를 식별하는 단계를 포함하는, 방법.
  11. 제1항에 있어서,
    상기 태스크 지문을 생성하는 단계는 하이퍼바이저 레벨 액세스, 보드 레벨(board level) 액세스, 프로세서 코어 레벨 액세스 또는 가상 머신 레벨 액세스 중 적어도 하나를 이용하여 상기 수신된 태스크에 액세스하는 단계를 포함하는, 방법.
  12. 제1항에 있어서,
    상기 하나 이상의 할당된 리소스는 프로세서, 메모리, 캐시 공간 또는 가상 머신 중 적어도 하나를 포함하는, 방법.
  13. 제1항에 있어서,
    상기 태스크 지문과 상기 가장 근접한 매치 참조 태스크 지문은 완벽한 매치(perfect match)인, 방법.
  14. 제1항에 있어서,
    상기 태스크는 애플리케이션 또는 프로세스 중 적어도 하나를 포함하는, 방법.
  15. 태스크 지문 및 리소스 할당 데이터베이스를 생성하기 위한 방법으로서,
    데이터센터에서 복수의 태스크를 수신하는 단계;
    상기 데이터센터에서, 각각의 수신된 태스크에 대한 태스크 지문을 생성하여 복수의 태스크 지문을 형성하는 단계;
    상기 데이터센터에서, 각각의 수신된 태스크로 리소스 세트를 할당하여 복수의 할당된 리소스 세트를 정의하는 단계;
    상기 데이터센터에서, 상기 각각의 할당된 리소스 세트를 이용하여 각각의 수신된 태스크를 수행하는 단계;
    상기 데이터센터에서, 복수의 태스크 행동을 생성하도록 상기 할당된 리소스 세트를 이용하여 각각의 수행된 태스크에 대한 태스크 행동을 수집하는 단계; 및
    상기 데이터센터의 데이터베이스에서, 각각의 태스크 지문, 할당된 리소스 세트 및 태스크 행동을 연관시켜 상기 태스크 지문 및 리소스 할당 데이터베이스를 생성하는 단계
    를 포함하는 방법
  16. 제15항에 있어서,
    상기 복수의 태스크 지문 중 적어도 제1 및 제2 태스크 지문을 비교하는 단계;
    상기 제1 및 상기 제2 태스크 지문이 실질적으로 매치되는지 결정하는 단계; 및
    상기 제1 및 상기 제2 태스크 지문이 실질적으로 매치되는 경우, 상기 제1 및 상기 제2 태스크 지문에 대한 데이터베이스 엔트리를 공통 태스크 지문 엔트리(common task fingerprint entry)로 연관시키는 단계
    를 더 포함하는 방법.
  17. 제16항에 있어서,
    매칭 알고리즘을 수행하는 경우, 상기 제1 및 상기 제2 지문에 대한 결과가 미리 결정된 기준점 내에 있으면 상기 제1 및 상기 제2 태스크 지문이 매치되는, 방법.
  18. 제15항에 있어서,
    각각의 태스크 행동은 수행 매트릭스를 포함하고, 여기에서 상기 수행 매트릭스는 태스크 지속기간, CPU(central processing unit) 사용, 메모리 사용, 네트워크 사용, 저장 볼륨 사용, 저장 볼륨 액세스 빈도, 메모리 사용의 변화 상태, 또는 시간에 걸친 네트워크 트래픽 변화 중 적어도 하나를 포함하는, 방법.
  19. 명령어가 저장되는 기계 판독가능 일시적이지 않은 매체로서,
    상기 명령어는, 실행되는 경우, 데이터센터로 하여금,
    태스크를 수신하고;
    상기 수신된 태스크에 적어도 부분적으로 기초하여 태스크 지문을 생성하고;
    상기 태스크 지문을 복수의 참조 태스크 지문과 비교하여 상기 복수의 참조 태스크 지문으로부터 가장 근접한 매치 참조 태스크 지문을 결정하고;
    상기 가장 근접한 매치 참조 태스크 지문에 연관된 참조 태스크 행동 프로파일을 결정하고; 그리고
    상기 참조 태스크 행동 프로파일에 적어도 부분적으로 기초하여 상기 수신된 태스크를 수행하도록 하나 이상의 리소스를 할당함으로써,
    리소스를 할당하게 하는, 기계 판독가능 일시적이지 않은 매체.
  20. 제19항에 있어서,
    실행되는 경우, 상기 데이터센터로 하여금,
    상기 할당된 리소스를 이용하여 상기 태스크를 수행하고;
    상기 태스크의 상기 수행의 적어도 부분적으로 기초하여 하나 이상의 수행 매트릭스를 수집하고; 그리고
    상기 하나 이상의 수행 매트릭스에 적어도 부분적으로 기초하여 상기 가장 근접한 매치 참조 태스크 지문에 연관된 상기 참조 태스크 행동 프로파일을 업데이트함으로써,
    상기 리소스를 할당하게 하는 명령어를 더 포함하는, 기계 판독가능 일시적이지 않은 매체.
  21. 제20항에 있어서,
    실행되는 경우, 상기 데이터센터로 하여금,
    제2 태스크를 수신하고;
    상기 수신된 제2 태스크에 적어도 부분적으로 기초하여 제2 태스크 지문을 생성하고;
    상기 제2 태스크 지문을 상기 복수의 참조 태스크 지문과 비교하고;
    상기 가장 근접한 매치 참조 태스크 지문이 상기 제2 태스크 지문에 가장 근접한 매치라는 것을 결정하고; 그리고
    상기 업데이트된 참조 태스크 행동 프로파일에 적어도 부분적으로 기초하여 상기 수신된 제2 태스크를 수행하도록 제2 리소스를 할당함으로써,
    상기 리소스를 할당하게 하는 명령어를 더 포함하는, 기계 판독가능 일시적이지 않은 매체.
  22. 명령어가 저장되는 기계 판독가능 일시적이지 않은 매체로서,
    상기 명령어는, 실행되는 경우, 데이터센터로 하여금,
    복수의 태스크를 수신하고;
    각각의 수신된 태스크에 대한 태스크를 생성하여 복수의 태스크 지문을 형성하고;
    각각의 수신된 태스크로 리소스 세트를 할당하여 복수의 할당된 리소스 세트를 정의하고;
    상기 각각의 할당된 리소스 세트를 이용하여 각각의 수신된 태스크를 수행하고;
    복수의 태스크 행동을 생성하도록 상기 할당된 리소스 세트를 이용하여 각각의 수행된 태스크에 대한 태스크 행동을 수집하고; 그리고
    각각의 태스크 지문, 할당된 리소스 세트 및 태스크 행동을 연관시켜 태스크 지문 및 리소스 할당 데이터베이스를 생성함으로써,
    상기 태스크 지문 및 리소스 할당 데이터베이스를 생성하게 하는, 기계 판독가능 일시적이지 않은 매체.
  23. 제22항에 있어서,
    실행되는 경우, 상기 데이터센터로 하여금,
    상기 복수의 태스크 지문 중 적어도 제1 및 제2 태스크 지문을 비교하고;
    상기 제1 및 상기 제2 태스크 지문이 실질적으로 매치되는지 결정하고; 그리고
    상기 제1 및 상기 제2 태스크 지문이 실질적으로 매치되는 경우, 상기 제1 및 상기 제2 태스크 지문에 대한 데이터베이스 엔트리를 공통 태스크 지문 엔트리 연관시킴으로써,
    상기 태스크 지문 및 리소스 할당 데이터베이스를 생성하게 하는 명령어를 더 포함하는, 기계 판독가능 일시적이지 않은 매체.
  24. 데이터센터로서,
    명령어가 저장되는 기계 판독가능 매체; 및
    상기 명령어를 실행하도록 상기 기계 판독가능 매체에 결합되는 프로세서
    를 포함하고, 상기 명령어는, 실행되는 경우, 상기 데이터센터로 하여금,
    태스크를 수신하고;
    상기 수신된 태스크에 적어도 부분적으로 기초하여 태스크 지문을 생성하고;
    상기 태스크 지문을 복수의 참조 태스크 지문과 비교하여 상기 복수의 참조 태스크 지문으로부터 가장 근접한 매치 참조 태스크 지문을 결정하고;
    상기 가장 근접한 매치 참조 태스크 지문에 연관된 참조 태스크 행동 프로파일을 결정하고; 그리고
    상기 참조 태스크 행동 프로파일에 적어도 부분적으로 기초하여 상기 수신된 태스크를 수행하도록 하나 이상의 리소스를 할당함으로써,
    리소스를 할당하게 하는, 데이터센터.
  25. 제24항에 있어서,
    상기 기계 판독가능 매체는, 실행되는 경우, 상기 데이터센터로 하여금,
    상기 할당된 리소스를 이용하여 상기 태스크를 수행하고;
    상기 태스크의 상기 수행에 적어도 부분적으로 기초하여 하나 이상의 수행 매트릭스를 수집하고; 그리고
    상기 하나 이상의 수행 매트릭스에 적어도 부분적으로 기초하여 상기 가장 근접한 매치 참조 태스크 지문에 연관된 상기 참조 태스크 행동 프로파일을 업데이트함으로써,
    상기 리소스를 할당하게 하는 명령어를 더 포함하는, 데이터센터.
  26. 제25항에 있어서,
    상기 기계 판독가능 매체는, 실행되는 경우, 상기 데이터센터로 하여금,
    제2 태스크를 수신하고;
    상기 수신된 제2 태스크에 적어도 부분적으로 기초하여 제2 태스크 지문을 생성하고;
    상기 제2 태스크 지문을 상기 복수의 참조 태스크 지문과 비교하고;
    상기 가장 근접한 매치 참조 태스크 지문이 상기 제2 태스크 지문에 가장 근접한 매치라는 것을 결정하고; 그리고
    상기 업데이트된 참조 태스크 행동 프로파일에 적어도 부분적으로 기초하여 상기 수신된 제2 태스크를 수행하도록 제2 리소스를 할당함으로써,
    상기 리소스를 할당하게 하는 명령어를 더 포함하는, 데이터센터.
  27. 데이터센터로서,
    명령어가 저장되는 기계 판독가능 매체; 및
    상기 명령어를 실행하도록 상기 기계 판독가능 매체에 결합되는 프로세서
    를 포함하고, 상기 명령어는, 실행되는 경우, 상기 데이터센터로 하여금,
    복수의 태스크를 수신하고;
    각각의 수신된 태스크에 대한 태스크 지문을 생성하여 복수의 태스크 지문을 형성하고;
    각각의 수신된 태스크로 리소스 세트를 할당하여 복수의 할당된 리소스 세트를 정의하고;
    상기 각각의 할당된 리소스 세트를 이용하여 각각의 수신된 태스크를 수행하고;
    복수의 태스크 행동을 생성하도록 상기 할당된 리소스 세트를 이용하여 각각의 수행된 태스크에 대한 태스크 행동을 수집하고; 그리고
    데이터베이스에서, 각각의 태스크 지문, 할당된 리소스 세트 및 태스크 행동을 연관시켜 태스크 지문 및 리소스 할당 데이터베이스를 생성함으로써,
    상기 태스크 지문 및 리소스 할당 데이터베이스를 생성하게 하는, 데이터센터.
  28. 제27항에 있어서,
    상기 기계 판독가능 매체는, 실행되는 경우, 상기 데이터센터로 하여금,
    상기 복수의 태스크 지문 중 적어도 제1 및 제2 태스크 지문을 비교하고;
    상기 제1 및 상기 제2 태스크 지문이 실질적으로 매치되는지 결정하고; 그리고
    상기 제1 및 상기 제2 태스크 지문이 실질적으로 매치되는 경우, 상기 제1 및 상기 제2 태스크 지문에 대한 데이터베이스 엔트리를 공통 태스크 지문 엔트리로 연관시킴으로써,
    상기 태스크 지문 및 리소스 할당 데이터베이스를 생성하게 하는 명령어를 더 포함하는, 데이터센터.
KR1020147008601A 2011-11-18 2011-11-18 데이터센터 리소스 할당 KR101630749B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/061382 WO2013074116A1 (en) 2011-11-18 2011-11-18 Datacenter resource allocation

Publications (2)

Publication Number Publication Date
KR20140057641A true KR20140057641A (ko) 2014-05-13
KR101630749B1 KR101630749B1 (ko) 2016-06-15

Family

ID=48430015

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147008601A KR101630749B1 (ko) 2011-11-18 2011-11-18 데이터센터 리소스 할당

Country Status (4)

Country Link
US (2) US8910173B2 (ko)
KR (1) KR101630749B1 (ko)
CN (1) CN103827899B (ko)
WO (1) WO2013074116A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210105119A (ko) * 2020-02-18 2021-08-26 울산과학기술원 서버의 자원 분배 관리 방법 및 장치

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101630749B1 (ko) 2011-11-18 2016-06-15 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 데이터센터 리소스 할당
US20130151688A1 (en) * 2011-12-07 2013-06-13 Alcatel-Lucent Usa Inc. Optimization mechanisms for latency reduction and elasticity improvement in geographically distributed data centers
US9053307B1 (en) 2012-07-23 2015-06-09 Amazon Technologies, Inc. Behavior based identity system
US9262470B1 (en) 2013-06-25 2016-02-16 Amazon Technologies, Inc. Application recommendations based on application and lifestyle fingerprinting
US10269029B1 (en) 2013-06-25 2019-04-23 Amazon Technologies, Inc. Application monetization based on application and lifestyle fingerprinting
US9921827B1 (en) 2013-06-25 2018-03-20 Amazon Technologies, Inc. Developing versions of applications based on application fingerprinting
WO2015150977A1 (en) * 2014-04-03 2015-10-08 Strato Scale Ltd. Virtual-machine placement based on information from multiple data centers
GB2525002B (en) * 2014-04-09 2021-06-09 Advanced Risc Mach Ltd Data processing systems
US9417916B1 (en) * 2014-11-02 2016-08-16 Netronome Systems, Inc. Intelligent packet data register file that prefetches data for future instruction execution
US10031774B2 (en) 2015-10-15 2018-07-24 Red Hat, Inc. Scheduling multi-phase computing jobs
US10635492B2 (en) * 2016-10-17 2020-04-28 International Business Machines Corporation Leveraging shared work to enhance job performance across analytics platforms
US9867006B1 (en) 2016-10-17 2018-01-09 Microsoft Technology Licensing, Inc. Geo-classification of users from application log data
CN107220115A (zh) * 2017-05-25 2017-09-29 深信服科技股份有限公司 一种基于云平台的任务瓶颈确定方法及装置
CN107220116A (zh) * 2017-05-25 2017-09-29 深信服科技股份有限公司 一种numa架构下的沙箱环境任务处理方法及系统
CN107220121B (zh) * 2017-05-25 2020-11-13 深信服科技股份有限公司 一种numa架构下沙箱环境测试方法及其系统
CN107193641A (zh) * 2017-05-25 2017-09-22 深信服科技股份有限公司 一种基于云平台的多维度任务识别方法及装置
CN107193636A (zh) * 2017-05-25 2017-09-22 深信服科技股份有限公司 一种numa架构下沙箱环境内虚拟任务模拟方法及装置
CN107220122A (zh) * 2017-05-25 2017-09-29 深信服科技股份有限公司 一种基于云平台的任务识别方法及装置
US10402429B2 (en) * 2017-05-31 2019-09-03 International Business Machines Corporation Minimizing data transport within a storlet architecture
US10055198B1 (en) * 2017-06-13 2018-08-21 Sap Se Systems and methods for probably approximate intent matching of procurement rules
US11544782B2 (en) 2018-05-06 2023-01-03 Strong Force TX Portfolio 2018, LLC System and method of a smart contract and distributed ledger platform with blockchain custody service
US11669914B2 (en) 2018-05-06 2023-06-06 Strong Force TX Portfolio 2018, LLC Adaptive intelligence and shared infrastructure lending transaction enablement platform responsive to crowd sourced information
US11550299B2 (en) 2020-02-03 2023-01-10 Strong Force TX Portfolio 2018, LLC Automated robotic process selection and configuration
CA3098670A1 (en) 2018-05-06 2019-11-14 Strong Force TX Portfolio 2018, LLC Methods and systems for improving machines and systems that automate execution of distributed ledger and other transactions in spot and forward markets for energy, compute, storage and other resources
US11182183B2 (en) * 2019-07-15 2021-11-23 Vmware, Inc. Workload placement using conflict cost
US10817328B1 (en) 2020-01-30 2020-10-27 Coupang Corp. Systems and methods for virtual server resource usage metric evaluation and performance tracking
US11982993B2 (en) 2020-02-03 2024-05-14 Strong Force TX Portfolio 2018, LLC AI solution selection for an automated robotic process
US10817329B1 (en) 2020-02-07 2020-10-27 Coupang Corp. Systems and methods for centralization and diagnostics for live virtual server performance data
CN112734974A (zh) * 2020-12-25 2021-04-30 北京首钢自动化信息技术有限公司 一种物业巡检方法、装置及系统
CN113821336B (zh) * 2021-03-08 2024-04-05 北京京东乾石科技有限公司 资源分配方法和装置、存储介质、电子设备
US11983573B2 (en) * 2021-07-15 2024-05-14 EMC IP Holding Company LLC Mapping telemetry data to states for efficient resource allocation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000047916A (ja) * 1998-07-29 2000-02-18 Nec Corp データベース管理システム
JP2002531900A (ja) * 1998-11-30 2002-09-24 シーベル システムズ,インコーポレイティド 割り当てマネージャ
US7356819B1 (en) * 1999-07-16 2008-04-08 Novell, Inc. Task distribution

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974481A (en) * 1997-09-15 1999-10-26 Digital Equipment Corporation Method for estimating the probability of collisions of fingerprints
US6763519B1 (en) * 1999-05-05 2004-07-13 Sychron Inc. Multiprogrammed multiprocessor system with lobally controlled communication and signature controlled scheduling
US6732139B1 (en) * 1999-08-16 2004-05-04 International Business Machines Corporation Method to distribute programs using remote java objects
US7093133B2 (en) * 2001-12-20 2006-08-15 Hewlett-Packard Development Company, L.P. Group signature generation system using multiple primes
US20040199621A1 (en) 2003-04-07 2004-10-07 Michael Lau Systems and methods for characterizing and fingerprinting a computer data center environment
US7984445B2 (en) * 2005-02-25 2011-07-19 International Business Machines Corporation Method and system for scheduling jobs based on predefined, re-usable profiles
US20090077235A1 (en) * 2007-09-19 2009-03-19 Sun Microsystems, Inc. Mechanism for profiling and estimating the runtime needed to execute a job
US8132185B2 (en) * 2007-09-24 2012-03-06 International Business Machines Corporation Device, system, and method of classifying a workload of a software service
US8578381B2 (en) * 2007-10-26 2013-11-05 Oracle America, Inc. Apparatus, system and method for rapid resource scheduling in a compute farm
CN101420458B (zh) * 2008-12-09 2011-09-28 清华大学 基于内容分发网络的多媒体内容监控系统、方法及装置
US8935702B2 (en) * 2009-09-04 2015-01-13 International Business Machines Corporation Resource optimization for parallel data integration
US8484354B2 (en) * 2009-11-02 2013-07-09 Beaumaris Networks, Inc. Distributed resource management
US8583599B2 (en) * 2010-11-29 2013-11-12 Ca, Inc. Reducing data duplication in cloud storage
US9063790B2 (en) * 2011-06-13 2015-06-23 Accenture Global Services Limited System and method for performing distributed parallel processing tasks in a spot market
KR101630749B1 (ko) 2011-11-18 2016-06-15 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 데이터센터 리소스 할당
US20130185729A1 (en) * 2012-01-13 2013-07-18 Rutgers, The State University Of New Jersey Accelerating resource allocation in virtualized environments using workload classes and/or workload signatures
US8732291B2 (en) * 2012-01-13 2014-05-20 Accenture Global Services Limited Performance interference model for managing consolidated workloads in QOS-aware clouds

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000047916A (ja) * 1998-07-29 2000-02-18 Nec Corp データベース管理システム
JP2002531900A (ja) * 1998-11-30 2002-09-24 シーベル システムズ,インコーポレイティド 割り当てマネージャ
US7356819B1 (en) * 1999-07-16 2008-04-08 Novell, Inc. Task distribution

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
카다로그* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210105119A (ko) * 2020-02-18 2021-08-26 울산과학기술원 서버의 자원 분배 관리 방법 및 장치

Also Published As

Publication number Publication date
US9460127B2 (en) 2016-10-04
US20130185722A1 (en) 2013-07-18
KR101630749B1 (ko) 2016-06-15
US8910173B2 (en) 2014-12-09
CN103827899B (zh) 2017-06-23
US20150082318A1 (en) 2015-03-19
WO2013074116A1 (en) 2013-05-23
CN103827899A (zh) 2014-05-28

Similar Documents

Publication Publication Date Title
KR101630749B1 (ko) 데이터센터 리소스 할당
CN110301128B (zh) 基于学习的资源管理数据中心云架构的实现方法
CN107885762B (zh) 智能大数据系统、提供智能大数据服务的方法和设备
Mars et al. Heterogeneity in “homogeneous” warehouse-scale computers: A performance opportunity
CN109075988B (zh) 任务调度和资源发放系统和方法
Yang et al. Intermediate data caching optimization for multi-stage and parallel big data frameworks
KR20180027326A (ko) 확장 가능한 멀티-스테이지 데이터 처리 시스템들에서의 효율적인 데이터 캐싱 관리
CN116560846A (zh) 基于计算系统中的利用模式的资源过度订阅
CN104252472B (zh) 用于并行化数据处理的方法和装置
CN112789607A (zh) 自动选择并行化程度以在数据库系统中高效执行查询的方法
US9275201B2 (en) Execution-based license discovery and optimization
US20140207754A1 (en) Gathering Index Statistics Using Sampling
US20160306655A1 (en) Resource management and allocation using history information stored in application's commit signature log
AU2014329631A1 (en) Dynamic shuffle reconfiguration
CN104580194A (zh) 面向视频应用的虚拟化资源管理方法及装置
CN112948066A (zh) 一种基于异构资源的Spark任务调度方法
CN112631731A (zh) 数据查询方法、装置、电子设备及存储介质
CN105874426A (zh) 一种系统调用命令的批处理方法及装置
WO2022007596A1 (zh) 图像检索系统、方法和装置
US11269625B1 (en) Method and system to identify and prioritize re-factoring to improve micro-service identification
CN113836157A (zh) 获取数据库增量数据的方法和装置
CN117349030B (zh) 基于云计算集群的医疗数字系统、方法及设备
Shakil et al. Exploring non-homogeneity and dynamicity of high scale cloud through hive and pig
US20240134705A1 (en) Adjusting workload execution based on workload similarity
US20230075114A1 (en) Resource allocation in cloud computing systems

Legal Events

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

Payment date: 20190515

Year of fee payment: 4