KR20210003093A - 단일 측정 유닛으로 이종의 컴퓨팅 자원들의 사용량을 정량화하는 방법 - Google Patents

단일 측정 유닛으로 이종의 컴퓨팅 자원들의 사용량을 정량화하는 방법 Download PDF

Info

Publication number
KR20210003093A
KR20210003093A KR1020207027522A KR20207027522A KR20210003093A KR 20210003093 A KR20210003093 A KR 20210003093A KR 1020207027522 A KR1020207027522 A KR 1020207027522A KR 20207027522 A KR20207027522 A KR 20207027522A KR 20210003093 A KR20210003093 A KR 20210003093A
Authority
KR
South Korea
Prior art keywords
usage
physical computing
resource
metric
computing
Prior art date
Application number
KR1020207027522A
Other languages
English (en)
Inventor
티모시 에이 마틴
마이런 엘 스튜어트
Original Assignee
캐롤라이나 클라우드 익스체인지 아이엔씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 캐롤라이나 클라우드 익스체인지 아이엔씨 filed Critical 캐롤라이나 클라우드 익스체인지 아이엔씨
Publication of KR20210003093A publication Critical patent/KR20210003093A/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3428Benchmarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3442Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/046Network management architectures or arrangements comprising network management agents or mobile agents therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/067Generation of reports using time frame reporting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Abstract

자원 사용량을 정량화하는 방법은, 소정 시간 주기 동안 사용되는 복수의 물리적 컴퓨팅 자원의 양을 측정하는 것을 포함할 수 있다. 상기 방법은 또한, 사용되는 각각의 물리적 컴퓨팅 자원의 측정된 양의 각각을 정규화하는 것을 포함할 수 있다. 상기 방법은 또한, 상기 시간 주기 동안 사용되는 물리적 컴퓨팅 자원을 나타내는 단일 사용량 값을 생성하기 위해, 사용되는 물리적 컴퓨팅 자원의 정규화된 측정된 양을 합산하는 것을 포함할 수 있다.

Description

단일 측정 유닛으로 이종의 컴퓨팅 자원들의 사용량을 정량화하는 방법
본 출원은, 2018년 3월 23일자로 출원된 '단일 측정 유닛으로 이종의 컴퓨팅 자원들의 사용을 정량화하는 방법'이라는 명칭의 미국 가출원 제62/647,335호 및 2018년 6월 27일자로 출원된 '단일 측정 유닛으로 이종의 컴퓨팅 자원들의 사용을 정량화하는 방법'이라는 명칭의 미국 가출원 제62/690,533호에 대한 우선권을 주장하며, 상기 2개의 출원은 그 전체가 본 명세서에 포함된다.
본 개시는 일반적으로 컴퓨팅에 관한 것으로, 특히 이종(disparate) 컴퓨터 자원들의 사용량을 측정하고 단일 측정 유닛으로서 사용량을 정량화하는 것에 관한 것이다.
클라우드 컴퓨팅은, 사용자(예를 들어, 개인 또는 조직)가 제3자에 의해 유지 및/또는 관리하는 컴퓨팅 자원들을 임대(또는, 임차)할 수 있게 한다. 이것은, 사용자가 물리적 하드웨어, 데이터 센터 부지, 전기, 데이터 센터 직원 및/또는 소프트웨어 라이선스에 상당한 투자를 하지 않고도 개별적인 컴퓨팅 니즈(needs)에 맞는 컴퓨팅 자원들을 임대할 수 있게 한다.
예시적인 클라우드 컴퓨팅 시스템은, 물리적 자원들(예를 들어, 프로세서 및 메모리) 및/또는 가상화된 자원들(예를 들어, 가상화된 프로세서 및 가상화된 메모리)을 포함할 수 있다. 클라우드 컴퓨팅 시스템에 액세스하는 사용자는, 그들의 워크로드(workloads)를 실행할 수 있는 다량의 자원들을 임대할 수 있다. 임대한 컴퓨팅 자원의 양은 이론적인 최대 워크로드에 기반하여 추정될 수 있다. 이론적인 최대 워크로드는 사용가능한 자원들의 거의 전부(예를 들어, 약 100%)를 사용하는 것으로 가정한다. 다시 말해, 사용자들은 자원 요구사항의 급증으로 인한 시스템 성능 문제를 방지하기 위해, 그들의 워크로드를 실행하기 위해 필요한 최대 양의 자원들을 임대할 것이다. 하지만, 사용량 급증은 드물게 발생하고, 평균적으로 사용중인 자원은 이론적인 최대값보다 낮을 수 있어서, 낭비(예를 들어, 사용되지 않은 컴퓨팅 자원들의 임대)를 초래한다.
클라우드 컴퓨팅 제공자들은, 사용자에 의해 사용된(또는, 소비된) 자원들의 실제 양과는 반대로, (예를 들어, 미리결정된 시간 동안) 임대된 자원의 양을 기반으로 가격책정 모델을 구현할 수 있다. 이러한 자원들은, 미리구성된 중앙 처리 유닛(CPU), 메모리(예를 들어, 랜덤 액세스 메모리), 스토리지, 그래픽 처리 유닛(GPU), (예를 들어, 미리결정된 네트워킹 속도를 제공하기 위한) 전용 네트워킹 기능, 필드 프로그래머블 게이트 어레이(FPGA) 및/또는 기타 컴퓨팅 자원을 구비한 서버로서 패키징될 수 있다. 패키징된 서버는 일반적으로 사용자가 소정 시간 주기 (예를 들어, 초(들), 분(들), 시간(들), 일(들), 주(들), 월(들), 년(들) 및/또는 기타 시간의 기간) 동안 대여할 수 있는 인스턴스라고 참조될 수 있다. 따라서 사용자는, 그들이 추정하는 사용량(예를 들어, 사용량 급증에 기반하여 추정될 수 있음)의 최대 컴퓨팅 자원을 기반으로 인스턴스를 임대할 수 있다. 인스턴스에서 자원들을 임대함으로써, 사용자는, 임대 계약 기간의 대부분 동안 컴퓨팅 자원의 단지 일부만을 사용할 것이다. 다시 말해, 이것은 사용자가 소비되지 않은 자원에 대해 비용을 지불하게 할 수 있으며, 클라우드 컴퓨팅 공급자는 사용하지 않은 자원을 임대함으로써 재정적 이익을 얻게 될 것이다.
이러한 그리고 다른 특징들 및 장점들은, 도면들과 함께 다음의 상세한 설명을 참조함으로써 더 잘 이해될 것이다:
도 1은, 본 개시의 실시예들에 따른, 컴퓨팅 네트워크의 개략적인 예를 보여준다.
도 2a는, 본 개시의 실시예들에 따른, 도 1의 컴퓨팅 네트워크에서 사용될 수 있는 컴퓨팅 시스템의 개략적인 예를 보여준다.
도 2b는, 본 개시의 실시예들에 따른, 도 2a의 컴퓨팅 시스템의 개략적인 예를 보여준다.
도 3a는, 본 개시의 실시예들에 따른, 도 2의 컴퓨팅 시스템에서 사용될 수 있는 컴퓨팅 자원의 사용량을 측정하기 위한 계측기의 개략적인 예를 보여준다.
도 3b는, 본 개시의 실시예들에 따른, 도 3a의 계측기와 함께 사용될 수 있는 메트릭/속성 수집기의 개략적인 예를 보여준다.
도 3c는, 본 개시의 실시예들에 따른, 도 3a의 계측기와 함께 사용될 수 있는 분석 플랫폼의 개략적인 예를 보여준다.
도 3d는, 본 개시의 실시예들에 따른, 자원 사용량을 도시한 플롯(또는, 그래프)을 보여준다.
도 4는, 본 개시의 실시예들에 따른, 도 3의 계측기와 함께 사용될 수 있는 변환 유닛 생성기의 개략적인 예를 보여준다.
도 5는, 본 개시의 실시예들에 따른, 단일 측정 유닛으로 이종의 컴퓨팅 자원의 사용량을 정량화하는 방법의 예시적인 흐름도를 보여준다.
도 6은, 본 개시의 실시예들에 따른, 단일 측정 유닛으로서 사용가능한 이종 컴퓨팅 자원의 총 양(예를 들어, 사용된 자원 및 비활성 자원 모두)을 정량화하는 방법의 예시적인 흐름도를 보여준다.
단일 측정 유닛으로 사용량을 계산하고 정량화하여 물리적 자원 사용량을 측정하기 위한 시스템, 방법 및 디바이스가 개괄적으로 여기에 개시된다. 예를 들어, 이종의 컴퓨팅 자원이 측정되고, 공통 측정 유닛으로 정규화(예를 들어, 변환)될 수 있으며, 각각의 정규화된 측정값은 총 사용량이 단일 값으로 표현될 수 있도록 합산될 수 있다. 이종의 컴퓨팅 자원을 단일 유닛으로 표현함으로써, 자원 사용량(또는, 소비량)을 실시간으로 모니터링할 수 있으며, 워크로드를 최적화하여 사용가능한 자원의 사용량을 개선할 수 있으며 및/또는 낭비를 줄일 수 있다.
(가상 자원이 아닌) 물리적 자원을 측정함으로써, 실제 사용량의 보다 정확한 측정이 이루어질 수 있다. 예를 들어, 벌루닝(ballooning)이라고 알려진 기술로 인해, 가상 자원을 기반으로 사용량을 측정하면 물리 자원의 실제 사용량을 과대 평가할 수 있다. 다시 말해, 가상 자원만 측정하면, 가상 자원은 워크로드가 실제 자원에서 실제로 소비하는 것보다 더 많은 자원이 워크로드에 의해 소비(또는, 사용)되고 있다고 표시할 수 있다. 경우에 따라서는, 소비중인 것으로 표시된 가상 자원의 양이 사용가능한 물리 자원을 초과할 수도 있다.
여기에서 사용되는 것과 같은 그래픽 처리 유닛(GPU)는, 일반적으로, 적어도 그래픽 프로세서 및/또는 그래픽 메모리를 포함하는 컴퓨팅 자원을 지칭할 수 있으며, 일부의 경우에는, GPU는 일반적으로 그래픽 처리 시스템(GPS)을 지칭할 수도 있다.
도 1은 컴퓨팅 네트워크(100)의 개략적인 예를 보여준다. 도시된 바와 같이, 컴퓨팅 네트워크(100)는 디바이스(102) 및 컴퓨팅 시스템(104)을 포함할 수 있으며, 각각은 네트워크(106)(예를 들어, 인터넷)에 통신가능하게 결합된다. 컴퓨팅 시스템(104)은 하나 이상의 워크로드(110)를 실행하도록 구성된 물리적 컴퓨팅 자원(108)을 포함할 수 있다. 하나 이상의 워크로드(110)는, 예를 들어, 하나 이상의 운영 체제(112), 하나 이상의 애플리케이션(114) 및/또는 하나 이상의 유휴 프로세스(113) 중 하나 이상을 포함할 수 있다. 유휴 프로세스(113)는, 컴퓨팅 시스템(104)의 동작(예를 들어, 컴퓨팅 시스템(104)의 하드웨어 동작의 결과)과 관련된 백그라운드 프로세스일 수 있으며, 애플리케이션(114) 및/또는 운영 체제(112)를 실행하기 위한 디바이스(102)로부터의 요청이 수신되지 않았더라도 물리적 컴퓨팅 자원(108)의 적어도 일부를 소비할 수 있다. 다시 말해, 컴퓨팅 시스템(104)이 유휴 상태일 때에도, 컴퓨팅 시스템(104)은 전원이 켜질 때 컴퓨팅 시스템(104)의 물리적 하드웨어의 동작으로 인해 물리적 컴퓨팅 자원(108)의 적어도 일부를 여전히 소비하고 있다.
하나 이상의 워크로드(110)는, 디바이스(102)(예를 들어, 운영 체제(들)(112) 및/또는 애플리케이션(들)(114))에 의해 생성된 요청에 응답하여 실행되도록 유발될 수 있다. 예를 들어, 디바이스(102)는, 네트워크(106)를 통해 컴퓨팅 시스템(104)에 요청을 전달함으로써, 하나 이상의 애플리케이션(114)의 실행을 요청할 수 있다. 요청이 수신되면, 컴퓨팅 시스템(104)은 물리적 컴퓨팅 자원(108)의 적어도 일부를 애플리케이션(114)의 실행에 할당할 수 있다. 애플리케이션(114)이 실행되는 것에 응답하여, 컴퓨팅 시스템(104)은 데이터를 다시 디바이스(102)로 전송할 수 있다. 예를 들어, 디바이스(102)로 다시 전송된 데이터는, 디바이스(102)의 디스플레이(116)에 그래픽 사용자 인터페이스를 생성하기 위해 사용될 수 있다. 그 다음, 디바이스(102)의 사용자는, 그래픽 사용자 인터페이스와 상호작용하고, 디바이스(102)가 컴퓨팅 시스템(104)에 애플리케이션(114)의 다른 부분이 컴퓨팅 시스템(104)에서 실행되게 하는 추가 명령어를 전송하게 할 수 있다.
도시된 바와 같이, 계측기(118)가 제공될 수 있다. 계측기(118)는 소정의 시간 주기(예를 들어, 미리결정된 또는 미리결정되지 않은 시간 주기) 동안 워크로드(110)(예를 들어, 유휴 프로세스(113), 운영 체제(들)(112) 및/또는 애플리케이션(들)(114))에 의해 사용중인 물리적 컴퓨팅 자원(108)의 사용을 측정하도록 구성된 하드웨어, 소프트웨어 및/또는 펌웨어의 임의의 조합을 포함할 수 있다. 예를 들어, 계측기(118)는 하나 이상의 메모리(예를 들어, 임의의 유형의 실제적(tangible), 비-일시적 저장 매체 및 자기 기록 매체(예를 들어, 하드 디스크 드라이브), 광 디스크, 판독-전용 메모리(ROM)와 같은 반도체 디바이스, 동적 및 정적 RAM과 같은 랜덤 액세스 메모리(RAM), 삭제가능한 프로그래머블 판독 전용 메모리(EPROM), 전기적으로 삭제가능한 프로그래머블 판독-전용 메모리(EEPROM), 플래시 메모리, 자기 또는 광학 카드, 또는 전자적 명령어들을 저장하기 위한 모든 유형의 저장 매체를 포함할 수 있음)에 저장되도록 구성되고, 수행될 하나 이상의 동작들을 유발하도록 하나 이상의 프로세서(예를 들어, INTEL, ADVANCED MICRO DEVICES, IBM, ARM, ORACLE 및/또는 기타 프로세서에서 판매용으로 제공된 프로세서)에 의해 실행되는, 소프트웨어로서 구현될 수 있다. 추가 예로서, 계측기(118)는 회로망(예를 들어, 주문형 집적 회로)으로서 구현될 수 있다.
물리적 컴퓨팅 자원(108)의 사용량은, 호스트 운영 체제(예를 들어, 어셈블리 언어로 작성된 운영 체제) 및/또는 컴퓨팅 시스템(104)에서 실행되는 하이퍼바이저(hypervisor)를 사용하여 측정될 수 있다. 예를 들어, 계측기(118)는, 컴퓨팅 시스템(104)에서 실행되는 하이퍼바이저를 통해, 호스트 운영 체제의 자원 사용량을 측정할 수 있도록 구성된 하나 이상의 플러그인을 갖는 플러그인 데이터베이스를 포함한다. 추가 예로서, 계측기(118)는, 물리적 컴퓨팅 자원(108)으로부터 (예를 들어, 호스트 운영 체제를 사용하여) 직접적으로 자원 사용량을 측정하도록 구성될 수 있다. 일부의 경우에는, 계측기(118)는 다수의 상이한 컴퓨팅 시스템(104)에 걸친 물리적 컴퓨팅 자원 사용량을 측정할 수 있다.
계측기(118)는, 물리적 컴퓨팅 자원(108)의 사용량을 측정하고, 각각의 물리적 컴퓨팅 자원(108)을 공통 측정 유닛으로 정규화하고, 결합된(예를 들어, 총(total)) 사용량이 단일 유닛으로 표현될 수 있도록, 정규화된 컴퓨팅 자원을 결합한다. 다시 말하면, 계측기(118)는, 일반적으로, 컴퓨팅 자원(108)의 사용량을 나타내는 단일 값으로서 복수의 이종 컴퓨팅 자원의 사용량을 정량화하는 것으로 설명될 수 있다. 예를 들어, 계측기(118)는, 소정 시간 주기 동안 복수의 이종 컴퓨팅 자원의 사용량을 측정하고 및 소정 주기 동안 사용량을 나타내는 단일 사용량 값을 생성하도록 구성될 수 있다.
벌루닝의 효과를 완화 및/또는 방지하기 위해, 계측기(118)는, 예를 들어, 가상 자원 사용량과는 반대인, 물리적 자원 사용량을 측정한다. 따라서, 예를 들어, 가상 머신의 물리적 자원 사용량을 보다 정확하게 측정할 수 있다. 일부의 경우에는, 계측기(118)는 또한, 사용가능한(예를 들어, 사용된 및 비활성 자원) 물리적 컴퓨팅 자원(108)의 최대 양을 측정하고, 물리적 컴퓨팅 자원(108)의 각각의 물리적 자원의 측정된 양을 공통의 측정 유닛으로 정규화하고, 그리고 나서, 정규화된 자원을 합산하여 단일 유닛으로 표시되는 사용가능한 물리적 자원의 최대 양을 얻도록 구성될 수 있다. 사용가능한 자원의 최대 양을 측정함으로써, 사용자는 워크로드(110)를 실행하기 위해 물리적 컴퓨팅 자원(108)의 양을 최적화할 수 있다. 추가적으로 또는 대안적으로, 계측기(118)는, 컴퓨팅 시스템(104)을 실행하기 위해 필요한 물리적 컴퓨팅 자원(108)의 최소 양(예를 들어, 유휴 프로세스(113)에 의해 사용되는 자원만)을 측정하고, 물리적 컴퓨팅 자원(108)의 각각의 물리적 자원의 측정된 양을 공통 측정 유닛으로 정규화하고, 그 다음, (예를 들어, 컴퓨팅 시스템(104)이 동작중이지만 하나 이상의 운영 체제(112) 및/또는 애플리케이션(114)을 실행하지 않을 때) 사용하기 위해 필요한 물리적 자원의 최소 양을 나타내는 단일 유닛을 얻기 위해, 정규화된 자원을 합산하도록 구성될 수 있다.
일부의 경우에는, 계측기(118)는, 소정 시간 주기(예를 들어, 자원 사용량에 대한 과금 주기, 계약 조건, 1시간, 1일, 1주 및/또는 다른 시간 주기) 동안 물리적 자원의 사용량을 측정하도록 및 상기 시간 주기 동안의 물리적 자원 사용량을 나타내는 단일 사용량 값을 생성하도록 구성될 수 있다. 그리고 나서, 측정된 사용량은, 소정 시간 주기 동안 구매할 자원의 적절한 양을 결정하는 데에 사용될 수 있고 및/또는 실제 사용량을 기반으로 청구서를 생성하기 위해 사용될 수 있다. 결과적으로, 자원을 소비하는 사용자는 구매할 자원의 양을 줄일 수 있고, 자원 공급자는 판매를 위해 제공할 자원의 총량을 줄이고 및/또는 사용하지 않은 자원을 또 다른 사용자에게 할당할 수 있다.
일부의 경우에는, 계측기(118)는 컴퓨팅 시스템(104)의 컴퓨팅 자원(108)에 대한 디바이스(102)의 액세스를 인에이블 및/또는 디스에이블하도록 구성될 수 있다. 다시 말해, 계측기(118)는 디바이스(102)를 컴퓨팅 시스템(104)에 선택적으로 통신적으로 결합 및/또는 분리하도록 구성될 수 있다. 예를 들어, 계측기(118)는, 소정 시간 주기의 만료(예를 들어, 계약 조건의 만료), 계약 조건의 불충족(예를 들어, 청구금 지불 실패, 컴퓨팅 자원 부정사용 등), 및/또는 소정 시간 주기 동안 측정된 자원 사용량에 대한 응답으로, 미리결정된 양(또는, 임계 값)을 초과하였거나 초과하지 않은 경우의 이후에, 컴퓨팅 자원(108)의 적어도 일부에 대한 디바이스(102)에 의한 액세스를 디스에이블할 수 있다. 추가 예로서, 계측기(118)는, 미리결정된 시간에(예를 들어, 계약 조건이 시작될 때), 컴퓨팅 자원(108)에 대한 액세스를 인에이블할 수 있다.
일부의 경우에는, 계측기(118)는, 가용성에 기반하여 컴퓨팅 자원(108)의 적어도 일부에 대한 액세스를 선택적으로 인에이블 및 디스에이블하도록 구성될 수 있다. 예를 들어, 디바이스(102)는, 또 하나의 사용자가 컴퓨팅 자원(108)을 사용하지 않을 때, 컴퓨팅 자원(108)의 적어도 일부에 액세스할 수 있다. 하지만, 또 하나의 사용자가 컴퓨팅 자원(108)에 대한 액세스를 요청하면, 다른 사용자가 컴퓨팅 자원(108)에 액세스할 수 있도록 계측기(118)가 컴퓨팅 자원(108)의 적어도 일부에 대한 디바이스(102)에 의한 액세스를 디스에이블하게 하는 리콜 요청이 전송될 수 있다. 결과적으로, 계측기(118)는 일반적으로, 예를 들어, 하나 이상의 애플리케이션(114) 또는 운영 체제(112)를 실행하기 위해 사용되지 않는 컴퓨팅 자원(108)의 양을 줄이도록 구성된 것으로서 설명될 수 있다.
도시된 바와 같이, 계측기(118)는, 디바이스(102), 컴퓨팅 시스템(104) 및/또는 네트워크(106)에 통신가능하게 결합될 수 있다. 일부의 경우에는, 계측기(118)의 적어도 일부는, 디바이스(102) 및/또는 컴퓨팅 시스템(104)에 포함될 수 있다. 추가적으로 또는 대안적으로, 계측기(118)의 적어도 일부는, 디바이스(102) 및/또는 컴퓨팅 시스템(104) 중 하나 이상에 (예를 들어, 네트워크(106)를 사용하여) 통신가능하게 결합된 제3의 디바이스에 포함될 수 있다.
디바이스(102)는, 개인용 컴퓨터, 태블릿 컴퓨터, 휴대폰, 스마트폰, 스마트 워치, 스마트 텔레비전, 피트니스 트래커, 스마트 저울(물체 무게 측정용), 스마트 온도 조절기, 스마트 보안 모니터링 시스템(예를 들어, 실내 및/또는 실외 카메라 시스템, 초인종, 경보 시스템, 잠금 시스템, 조명 시스템 및/또는 기타 스마트 보안 모니터링 시스템), 스마트 디스플레이(예를 들어, 네트워크(106)와 통신하도록 구성된 디스플레이), 스마트 의료 시스템(예를 들어, 초음파 시스템, 분자 이미징 시스템, 컴퓨터 단층촬영 스캔 시스템, X- 레이 시스템 및/또는 기타 스마트 의료 시스템), 원격 건강 모니터링 디바이스, 게임 디바이스(예를 들어, 게임 콘솔, 휴대용 게임 디바이스, 가상 현실 헤드셋 및/또는 임의의 기타 게임 디바이스), 사물 인터넷 디바이스(예를 들어, 자율 주행 차량, 커넥티드 가전 제품, 드론, 로봇 및/또는 임의의 기타 사물 인터넷 디바이스), 서버 및/또는 컴퓨팅 시스템(104)과 통신할 수 있는 임의의 다른 디바이스 중 어느 하나 이상을 포함할 수 있다.
도 2a는, 도 1의 컴퓨팅 시스템(104)의 개략적인 예를 보여준다. 도시된 바와 같이, 컴퓨팅 시스템(104)의 물리적 컴퓨팅 자원(108)은, 중앙 처리 유닛(CPU)(202), 메모리(204), 스토리지(206), 네트워크 인터페이스(208) 및 그래픽 처리 유닛(GPU)(210)을 포함할 수 있다. CPU(202), 메모리(204), 스토리지(206), 네트워크 인터페이스(208) 및 GPU(210)의 각각은, 그와 관련된 하나 이상의 메트릭/속성을 갖는다.
추가적으로 또는 대안적으로, 컴퓨팅 자원(108)은, 다른 자원(209)을 포함할 수 있다. 다른 자원(209)은 예를 들어, 필드 프로그래머블 게이트 어레이(FPGA), 텐서 처리 유닛(TPU), 지능형 처리 유닛(IPU), 신경 처리 유닛(NPU), 시각 처리 유닛(VPU), 디지털 신호 처리기(DSP), 가속 처리 유닛(APU), 주문형 집적 회로(ASIC), 시스템 온 칩(SoC), 프로그래머블 SoC, 주문형 표준 부품(ASSP), 적응형 컴퓨팅 가속 플랫폼(ACAP), 마이크로 컨트롤러 및/또는 임의의 기타 컴퓨팅 자원 중 임의의 하나 이상을 포함할 수 있다.
도 2b에 도시된 바와 같은, CPU(202)는 다수의 프로세싱 코어(212), 프로세서 클럭 속도(214) 및/또는 프로세서 로드(load)(216)에 대한 메트릭/속성과 연관될 수 있다. 프로세싱 코어(212)의 수는, CPU(202)에서 사용가능한 독립적인 프로세싱 유닛(또는, 코어)의 수를 나타낸다. 프로세서 클럭 속도(214)는, CPU(202)의 코어 각각에 대한 디폴트 클럭 속도를 나타낸다. 프로세서 로드(216)는, CPU(202)에 의해 수행되는 계산 작업의 양을 나타낸다. CPU(202)는, 예를 들어, 컴퓨터 명령어를 실행할 수 있는 단일 및/또는 다중 코어 프로세서를 포함하는, 임의의 컴퓨터 프로세서일 수 있다. CPU(202)는, 예를 들어, INTEL, ADVANCED MICRO DEVICES, IBM, ARM, ORACLE 및/또는 임의의 다른 프로세서에 의해 판매용으로 제공되는 프로세서를 포함할 수 있다.
메모리(204)는, 사용가능한 메모리의 총 양(218) 및/또는 사용된 메모리의 양(220)에 대한 메트릭/속성과 연관될 수 있다. 메모리(204)는 실제적인, 비일시적 메모리일 수 있다. 메모리(204)는 휘발성 메모리일 수 있다. 예를 들어, 메모리(204)는 랜덤 액세스 메모리(RAM)일 수 있다. RAM의 예로는, 정적 RAM(SRAM), 동적 RAM(DRAM), 고속 페이지 모드 DRAM(FPM DRAM), 확장 데이터 출력 DRAM(EDO DRAM), 동기식 동적 RAM(SDRAM), 이중 데이터 속도 SDRAM(DDR SDRAM), RAMBUS 동적 RAM(RDRAM) 및/또는 임의의 기타 형태의 RAM을 포함할 수 있다.
스토리지(206)는, 사용가능한 스토리지의 총 양(222), 사용된 스토리지의 총 양(224), 스토리지(206)에 기록된 바이트 수(226), 및/또는 스토리지(206)로부터 판독된 바이트 수(228)에 대한 메트릭/속성과 연관될 수 있다. 스토리지(206)는 비휘발성 메모리일 수 있다. 예를 들어, 스토리지(206)는, 임의의 유형의 실제적, 비-일시적 저장 매체를 포함할 수 있으며, 자기 기록 매체(예를 들어, 하드 디스크 드라이브), 광 디스크, 판독 전용 메모리(ROM)와 같은 반도체 디바이스, 동적 및 정적 RAM과 같은 랜덤 액세스 메모리(RAM), 삭제가능한 프로그래머블 판독 전용 메모리(EPROM), 전기적으로 삭제가능한 프로그래머블 판독 전용 메모리(EEPROM), 플래시 메모리, 자기 또는 광학 카드, 또는 전자 명령어를 저장하기 위한 임의 유형의 저장 매체 중 임의의 하나 이상을 포함할 수 있다.
네트워크 인터페이스(208)는, 전송된 바이트 수(230) 및/또는 수신된 바이트 수(232)에 대한 메트릭/속성과 연관될 수 있다. 네트워크 인터페이스(208)는 네트워크(106)(도 1)에 통신가능하게 결합하도록 구성될 수 있다. 예를 들어, 네트워크 인터페이스(208)는, 이더넷 네트워크, 무선 네트워크, 파이버 채널 네트워크, 파이버 분산 데이터 인터페이스(FDDI) 네트워크, 구리 분산 데이터 인터페이스(CDDI) 네트워크, 및/또는 임의의 기타 네트워크 중 하나 이상에 통신가능하게 결합하도록 구성된 네트워크 인터페이스 컨트롤러일 수 있다.
GPU(210)는, 그래픽 프로세서 디폴트 클럭 속도(234), 그래픽 프로세서 가변 클럭 속도(236), 그래픽 프로세서 로드(238), 그래픽 메모리 디폴트 클럭 속도(240), 가변 그래픽 메모리 클럭 속도(242), 그래픽 메모리 로드(244), 그래픽 메모리 버스(246), 사용가능한 그래픽 메모리의 총 양(248), 사용된 그래픽 메모리의 양(250) 및/또는 셰이더(shader)의 양(252)에 대한 메트릭/속성과 연관될 수 있다. 그래픽 프로세서 디폴트 클럭 속도(234)는 GPU(210)의 프로세서에 대한 디폴트 클럭 속도를 나타내고, 그래픽 프로세서 가변 클럭 속도(236)는 그래픽 프로세서의 가변 클럭 속도를 나타낸다. 일부의 경우에는, 그래픽 프로세서 가변 클럭 속도(236)는 그래픽 프로세서 디폴트 클럭 속도(234)의 클럭 속도를 초과할 수 있다. 다른 경우에, 그래픽 프로세서 가변 클럭 속도(236)는 그래픽 프로세서 디폴트 클럭 속도(234)를 초과하지 않을 수 있다. 비슷하게, 그래픽 메모리 디폴트 클럭 속도(240)는 그래픽 메모리의 디폴트 클럭 속도를 나타내고, 가변 그래픽 메모리 클럭 속도(242)는 그래픽 메모리가 실제로 실행될 때의 클럭 속도를 나타낸다. 일부의 경우에는, 가변 그래픽 메모리 클럭 속도(242)는 그래픽 메모리 디폴트 클럭 속도(240)보다 더 크게 측정될 수 있다. 다른 경우에, 가변 그래픽 메모리 클럭 속도(242)는 그래픽 메모리 디폴트 클럭 속도(240)보다 작게(또는, 같게) 측정될 수 있다. 그래픽 메모리 로드(244)는 GPU 메모리에서 수행되는 판독 및/또는 기록 동작의 양을 나타낸다. 그래픽 메모리 버스(246)는 GPU(210)의 버스 크기를 나타낸다.
GPU(210)는 통합 및/또는 전용 GPU를 포함할 수 있다. 예를 들어, GPU는, INTEL, NVIDIA, ADVANCED MICRO DEVICES 및/또는 임의의 다른 GPU에 의해 만들어진 임의의 GPU를 포함할 수 있다. GPU(210)가 통합 GPU를 포함할 때, 메트릭/속성은 통합 GPU의 공유 자원에, 적어도 부분적으로 기반할 수 있다.
CPU(202), 메모리(204), 스토리지(206), 네트워크 인터페이스(208) 및 GPU(210)는 단독으로 참조될 수 있지만, 컴퓨팅 시스템(104)은 다수의 물리적 CPU, 메모리, 스토리지, 네트워크 인터페이스 및 GPU를 포함할 수 있고, 그들 중 하나 이상은, 예를 들어, 컴퓨팅 시스템(104)의 성능을 개선하기 위해 협력하도록 구성될 수 있다. 유사하게, 컴퓨팅 시스템(104)이 하나 이상의 다른 자원(209)을 포함하는 경우, 다른 자원(209)의 각각은 하나 이상 있을 수 있다.
도 3a는 도 1의 계측기(118)의 개략적인 예를 보여준다. 도시된 바와 같이, 계측기(118)는 물리적 컴퓨팅 자원(108)(도 2), 계산기(305) 및 분석 플랫폼(312)에 통신가능하게 결합된 메트릭/속성 수집기(302)를 포함할 수 있다. 메트릭/속성 수집기(302), 계산기 305 및/또는 분석 플랫폼(312)의 각각은, 상이한 컴퓨팅 시스템(또는, 환경)에 걸쳐 분산될 수 있다. 일부의 경우에는, 메트릭/속성 수집기(302), 계산기(305), 및/또는 분석 플랫폼(312) 중 하나 이상이 동일한 컴퓨팅 시스템에 위치할 수 있다. 예를 들어, 메트릭/속성 수집기(302), 계산기(305) 및/또는 분석 플랫폼(312) 중 하나 이상은 디바이스(102)에 위치할 수 있다. 추가 예로서, 메트릭/속성 수집기(302)는 계산기(305) 및/또는 분석 플랫폼(312) 중 하나 이상은 네트워크(106) 및/또는 컴퓨팅 시스템(104)에 통신가능하게 결합된 별도의 디바이스에 위치할 수 있다. 또 다른 예로서, 메트릭/속성 수집기(302), 계산기(305) 및/또는 분석 플랫폼(312) 중 하나 이상은 컴퓨팅 시스템(104)에 위치할 수 있다.
메트릭/속성 수집기(302)는 CPU(202), 메모리(204), 스토리지(206), 네트워크 인터페이스(208), GPU(210) 및/또는 하나 이상의 다른 자원(209) 중 하나 이상에, 하나 이상의 메트릭/속성을 요청한다. 예를 들어, 메트릭/속성 수집기(302)는, CPU(202), 메모리(204), 스토리지(206), 네트워크 인터페이스(208), GPU(210), 및/또는 하나 이상의 다른 자원(209) 중 하나 이상에서 실행되는 하이퍼바이저에게 (예를 들어, 플러그인을 사용하여) 하나 이상의 메트릭/속성을 요청할 수 있다. 추가 예로서, 메트릭/속성 수집기(302)는, CPU(202), 메모리(204), 스토리지(206), 네트워크 인터페이스(208), GPU(210) 및/또는 하나 이상의 다른 자원(209) 중 하나 이상에서 실행되는 호스트 운영 체제(예를 들어, 어셈블리 언어로 작성된 운영 체제)에, 하나 이상의 메트릭/속성을 요청할 수 있다.
메트릭/속성 수집기(302)가 CPU(202)에 하나 이상의 메트릭/속성을 요청할 때, 요청된 메트릭/속성은 CPU 사이클 사용률 계산기(304)에 입력될 수 있다. CPU 사이클 사용률 계산기(304)는, CPU(202)에 요청된 메트릭/속성에 적어도 부분적으로 기반하여, 사용되는 CPU 사이클의 양에 대응하는 메트릭/속성을 생성할 수 있다. 예를 들어, CPU 사이클 사용률 계산기(304)는, 프로세싱 코어(212)의 수, 프로세서 클럭 속도(214) 및 프로세서 로드(216)에 적어도 부분적으로 기반하여, CPU 사이클 사용률을 생성할 수 있다. 이러한 경우에, CPU 사이클 사용률 계산기(304)는, 다음 방정식에 따라, 사용되는 CPU 사이클을 생성할 수 있다:
(프로세서 클럭 속도)(처리 코어 수)/100 * (프로세서 로드) ...(1)
메트릭/속성 수집기(302)가 GPU(210)에 하나 이상의 메트릭/속성을 요청할 때, 요청된 메트릭/속성은 GPU 프로세서 사이클 사용률 계산기(306) 및/또는 GPU 메모리 사이클 사용률 계산기(308) 중 하나 이상에 입력될 수 있다. GPU 프로세서 사이클 사용률 계산기(306) 및 GPU 메모리 사이클 사용률 계산기(308)는, GPU(210)에 요청된 메트릭에 적어도 부분적으로 기반하여, GPU 프로세서 사이클 사용률 및 GPU 메모리 사이클 사용률의 각각에 대응하는 메트릭/속성을 생성할 수 있다.
예를 들어, GPU 프로세서 사이클 사용률 계산기(306)는, 그래픽 프로세서 가변 클럭 속도(236) 및 그래픽 프로세서 로드(238)에 적어도 부분적으로 기반하여, GPU 프로세서 사이클 사용률을 생성할 수 있다. 이러한 경우에, GPU 프로세서 사이클 사용률 계산기(306)는, 다음 방정식에 따라, 사용되는 GPU 프로세서 사이클을 생성할 수 있다:
(그래픽 프로세서 가변 클럭 속도)/100 * (그래픽 프로세서 로드) ...(2)
추가 예로서, GPU 메모리 사이클 사용률 계산기(308)는 가변 그래픽 메모리 클럭 속도(242) 및 그래픽 메모리 로드(244)에 적어도 부분적으로 기반하여, GPU 사이클 사용률을 생성할 수 있다. 이러한 경우에, GPU 메모리 사이클 사용률 계산기(308)는, 다음 방정식에 따라, 소비되는 GPU 메모리의 클럭 사이클을 생성할 수 있다:
(가변 그래픽 메모리 클럭 속도)/100 * (그래픽 메모리 로드) ...(3)
메트릭/속성 수집기(302)가 스토리지(206)에 하나 이상의 메트릭/속성을 요청할 때, 메트릭/속성은 디스크 IO 계산기(310)에 입력될 수 있다. 디스크 IO 계산기(310)는, 소정 시간 주기(예를 들어, 1초) 동안 스토리지(206)에 판독 및 기록된 비트의 총 수에 대응하는 메트릭/속성을 생성할 수 있다. 따라서, 일부의 경우에는, 디스크 IO 계산기(310)는, 디스크 IO에 대응하는 메트릭/속성을 생성하기 위해, 상기 시간 주기 동안 기록된 바이트 수(226)와 판독된 바이트 수(228)를 더할 수 있다. 상기 시간 주기가 1초보다 큰 경우, 기록된 바이트 수(226)와 판독된 바이트 수(228)는 초의 총 수로 나누어질 수 있다. 상기 시간 주기가 1초 미만인 경우, 기록된 바이트 수(226)와 판독된 바이트 수(228)는 초의 분수(fraction)로 나누어질 수 있다.
메트릭/속성 수집기(302)가 네트워크 인터페이스(208)에 하나 이상의 메트릭/속성을 요청할 때, 메트릭/속성은 네트워크 IO 계산기(311)에 입력될 수 있다. 네트워크 IO 계산기(311)는, 소정의 시간 주기(예를 들어, 1초) 동안 네트워크 인터페이스(208)에 의해 전송 또는 수신된 비트의 총 수에 대응하는 메트릭/속성을 생성할 수 있다. 따라서, 일부의 경우에는, 네트워크 IO 계산기(311)는, 네트워크 IO에 대응하는 메트릭/속성을 생성하기 위해, 소정 시간 주기 동안 전송된 바이트 수(230)와 수신된 바이트 수(232)를 더할 수 있다. 상기 시간 주기가 1초보다 큰 경우, 전송된 바이트 수(230)와 수신된 바이트 수(232)는 초의 총 수로 나누어질 수 있다. 상기 시간 주기가 1초 미만인 경우, 전송된 바이트 수(230)와 수신된 바이트 수(232)는 초의 분수(fraction)로 나누어질 수 있다.
도시된 바와 같이, 분석 플랫폼(312)은, 예를 들어, 하나 이상의 계산기(305)로부터 출력된 하나 이상의 메트릭/속성을 포함하는 물리적 컴퓨팅 자원(108)과 연관된 하나 이상의 메트릭/속성을 수신할 수 있다. 일부의 경우에는, 분석 플랫폼(312)은, 하나 이상의 다른 자원(209) 각각에 대응하는, 하나 이상의 다른 자원 계산기(331)를 포함할 수 있다. 하나 이상의 계산기(305)로부터 출력되는 하나 이상의 메트릭/속성은, 예를 들어, CPU 사이클 사용률(예를 들어, CPU 사이클 사용률 계산기(304)로부터의 출력), GPU 프로세서 사이클 사용률(예를 들어, GPU 프로세서 사이클 사용률 계산기(306)에 의한 출력), GPU 메모리 사이클 사용률(예를 들어, GPU 메모리 사이클 사용 계산기(308)에 의한 출력), 디스크 IO(예를 들어, 디스크 IO 계산기(310)에 의한 출력), 및/또는 네트워크 IO(예를 들어, 네트워크 IO 계산기(311)에 의한 출력) 중 하나 이상을 포함할 수 있다. 분석 플랫폼(312)은, 하나 이상의 변환 유닛을 사용하여, 수신된 메트릭/속성을 변환할 수 있다. 일부의 경우에, 각각의 메트릭/속성은 대응하는 변환 유닛을 가진다. 예를 들어, 분석 플랫폼(312)은, CPU 변환 유닛(314), 메모리 변환 유닛(316), 스토리지 변환 유닛(318), 네트워크 변환 유닛(320), GPU 프로세서 변환 유닛(322), GPU 메모리 변환 유닛(324), GPU 메모리 속도 변환 유닛(326), 디스크 IO 변환 유닛(328) 및/또는 컴퓨팅 자원에 대응하는 임의의 다른 변환 유닛(예를 들어, FPGA 자원, ASIC 자원, SoC 자원, DSP 자원, 마이크로 컨트롤러 자원, ACAP 자원 등과 같은 다른 자원(209) 중 하나 이상에 대한 변환 유닛)을 사용할 수 있다.
분석 플랫폼(312)은, 각각의 물리적 자원에 대한 각각의 정규화된 사용량을 얻기 위해, 각각의 물리적 자원(예를 들어, CPU(202), 메모리(204), 스토리지(206), 네트워크 인터페이스(208), GPU(210))의 사용량을 물리 자원에 대응하는 각각의 변환 유닛(예를 들어, CPU 변환 유닛(314), 메모리 변환 유닛(316), 스토리지 변환 유닛(318), 네트워크 변환 유닛(320), GPU 프로세서 변환 유닛(322), GPU 메모리 변환 유닛(324), GPU 메모리 속도 변환 유닛(326), 디스크 IO 변환 유닛(328))으로 나눔으로써, 이종의 컴퓨팅 자원을 정규화된 유닛으로 변환할 수 있다. 일부의 경우에는, 분석 플랫폼(312)은, 하나 이상의 다른 자원(209)을 표준화된 유닛으로 변환하도록 구성될 수 있다. 예를 들어, 분석 플랫폼(312)은 다른 자원 변환 유닛(329)을 포함할 수 있다.
그런 다음, 정규화된 사용량을 합산하여 총 사용량 값을 얻을 수 있다. 추가적으로 또는 대안적으로, 본 명세서의 개시를 고려하여 쉽게 이해될 수 있는 바와 같이, 일부의 경우에는, 정규화된 사용량은, 특정 자원에 대한 정규화된 사용량 값을 얻기 위해, 컴퓨팅 자원 유형(예를 들어, CPU(202), 메모리(204), 스토리지(206), 네트워크 인터페이스(208), GPU(210) 및/또는 하나 이상의 다른 자원(209))에 따라 합산될 수 있다. 예를 들어, GPU(210)의 물리적 자원(예를 들어, GPU 프로세서 및/또는 GPU 메모리)의 정규화된 사용량을 합산하여 총 GPU 사용량을 생성할 수 있다. 특정 물리적 자원의 정규화된 사용량에 대한 다른 예로는, 총 FPGA 사용량, 총 ASIC 사용량, 총 DSP 사용량, 총 SoC 사용량, 총 마이크로 컨트롤러 사용량, 총 ACAP 사용량, 총 TPU 사용량 및/또는 각각의 자원에 대응하는 임의의 기타 총 사용량을 포함할 수 있다.
도 3b는, 메트릭/속성 수집기(302)의 예일 수 있는, 다수의(예를 들어, 복수의) 상이한 사용자의 자원 사용량을 모니터링하고, 각 사용자의 사용량을 각각의 사용자와 연관시키도록 구성된, 메트릭/속성 수집기(303)를 도시한다. 다시 말해, 메트릭/속성 수집기(303)는 자원 사용량에 대응하는 메트릭을 수신하도록 구성된다. 메트릭/속성 수집기(303)는 하드웨어, 소프트웨어 및/또는 펌웨어의 임의의 조합을 포함할 수 있다.
메트릭/속성 수집기(303)는 컴퓨팅 시스템(104), 디바이스(102) 및/또는 네트워크(106)에 통신적으로 결합된 임의의 다른 디바이스 중 임의의 하나 이상에 포함되도록 구성될 수 있다. 예를 들어, 디바이스(102)는 메트릭/속성 수집기(303)를 포함한다. 디바이스(102)가 메트릭/속성 수집기(303)를 포함할 때, 메트릭/속성 수집기(303)의 사용자는, 메트릭/속성 수집기(303)가 디바이스(102)에서 실행되지 않는 때에 비교하여, 사용자의 네트워크 보안에 대한 최소의 수정으로도 계측기(118)를 사용할 수 있게 된다.
도시된 바와 같이, 메트릭/속성 수집기(303)는 통신 링크(330)를 통해 컴퓨팅 시스템(104)에 통신적으로 결합된다. 통신 링크(330)는, 메트릭/속성 수집기(303)에 데이터(예를 들어, 컴퓨팅 자원(108)과 연관된 메트릭/속성)를 전송할 수 있다. 통신 링크(330)를 통해 전송된 데이터는, 데이터에 대한 무단 액세스를 방지하도록 암호화될 수 있다. 도시된 바와 같이, 메트릭/속성 수집기(303)는 컴퓨팅 시스템(104)으로부터 멀리 떨어져 있을 수 있다(예를 들어, 다른 서버에서, 다른 네트워크에서 및/또는 다른 디바이스에서 동작함). 하지만, 일부의 경우에는, 메트릭/속성 수집기(303)는 컴퓨팅 시스템(104)에 로컬일(local to) 수도 있다(예를 들어, 동일한 서버에서, 동일한 네트워크에서 및/또는 동일한 디바이스에서 동작함).
메트릭/속성 수집기(303)는 또한, 통신 링크(362)를 통해 분석 플랫폼(312)과 통신하도록 구성될 수 있다. 통신 링크(362)를 통해 전송된 데이터는, 데이터에 대한 무단 액세스를 방지하도록 암호화될 수 있다. 일부의 경우에는, 메트릭/속성 수집기(303)는 분석 플랫폼(312)을 포함할 수 있다. 이와 같이, 메트릭/속성 수집기(303)는 통신 링크(362)를 통해 데이터를 전송하지 않을 수도 있다.
분석 플랫폼(312)은 단일의 정규화된 유닛으로 표현되는 총 자원 사용량 값을 생성할 수 있다. 도시된 바와 같이, 분석 플랫폼(312)은 메트릭/속성 수집기(303)로부터 멀리 떨어져 있을 수 있다(예를 들어, 다른 서버에서, 다른 네트워크에서 및/또는 다른 디바이스에서 동작함). 하지만, 일부의 경우에는, 분석 플랫폼(312)은 메트릭/속성 수집기(303)에 위치할 수도 있다(예를 들어, 동일한 서버, 동일한 네트워크 및/또는 동일한 디바이스에서 동작함).
도시된 바와 같이, 메트릭/속성 수집기(303)는, 적어도 하나의 수집기 코어(332), 적어도 하나의 수집기 메트릭 수신기(334), 적어도 하나의 수집기 동기화기(336), 적어도 하나의 플러그인 데이터베이스(338), 적어도 하나의 수집기 자동화기(340), 적어도 하나의 머신 관리자(342), 적어도 하나의 수집기 데이터베이스 관리자(344), 적어도 하나의 계정 관리자(346) 및 적어도 하나의 머신 수집 관리자(348)를 포함할 수 있다. 수집기 코어(332)는, 수집기 메트릭 수신기(334), 수집기 동기화기(336), 플러그인 데이터베이스(338), 수집기 자동화기(340), 머신 관리자(342), 수집기 데이터베이스 관리자(344), 계정 관리자(346) 및 머신 수집 관리자(348)의 각각과 통신하고 및/또는 관리한다.
수집기 메트릭 수신기(334)는 하나 이상의 사용자 및/또는 워크로드의 컴퓨팅 자원(108)의 사용량을 나타내는 메트릭/속성을 수신하도록 구성된다. 일부의 경우에는, 수집기 메트릭 수신기(334)는 하나 이상의 계산기(305)를 포함할 수 있다.
자원 사용량의 적어도 일부는, 하나 이상의 사용자와 연관될 수 있다. 예를 들어, 자원 사용량의 적어도 일부는 계정 관리자(346)를 사용하여 하나 이상의 계정(350)에 연관될 수 있다. 계정(350)은 하나 이상의 자원 소비 사용자(352)와 연관될 수 있다. 결과적으로, 복수의 계정(350)의 자원 사용량 및/또는 자원 소비 사용자(352)는 동시에 모니터링될 수 있다. 예를 들어, 기업 엔티티는 직원(예를 들어, 자원 소비 사용자(352))이 연관된 계정(350)을 가질 수 있다. 결과적으로, 직원들이 컴퓨팅 자원(108)에 액세스함에 따라, 사용량은 기업 엔티티에 대응하는 계정(350)과 연관된다. 사용량을 계정(350)과 연관시킴으로써, 단일 메트릭/속성 수집기(303)가 다수의 계정(350)을 모니터링할 수 있는데, 이는 메트릭/속성 수집기(303)를 각각의 계정(350) 및/또는 자원 소비 사용자(352)에 연관시키는 것과 비교할 때, 소비되는 자원을 감소시킬 수 있다.
계정(350)은, 자원 소비 사용자(352)에게 액세스할 수 있고 컴퓨팅 자원(108)을 사용하여 동작하는 하나 이상의 머신(354)(예를 들어, 가상 또는 물리적)에 연관될 수 있다. 머신(354)은 예를 들어, 하나 이상의 운영체제(들) 및/또는 애플리케이션(들)(114)을 포함할 수 있다. 예를 들어, 머신(354)은, LINUX 기반 운영 체제, WINDOWS 기반 운영 체제, MAC 기반 운영 체제 및/또는 임의의 기타 운영 체제를, 가상화된 또는 물리적 환경에서 실행하도록 구성될 수 있다. 일부의 경우에는, 머신(354)은, 게스트 운영 체제의 실행없이, 하나 이상의 워크로드(110)(예를 들어, 애플리케이션(들)(114))를 실행하도록 구성될 수 있다. 예를 들어, 머신(354)은, 임의 형태의 가상화 또는 실행 컨테이너 없이 물리적 머신에서 하나 이상의 애플리케이션(114)을 직접 실행하도록 구성될 수 있고, 또는, 하나 이상의 애플리케이션(114)은 컨테이너 내에서 실행되도록 구성될 수도 있다. 따라서, 컨테이너는 일반적으로, 하나 이상의 커널에서 실행되도록 구성된 격리된, 머신(354)의 환경으로 설명될 수 있다. 컨테이너는 물리적 또는 가상 머신에서 실행될 수 있다.
머신 수집 관리자(348)는 복수의 머신(354)이 적어도 하나의 머신 수집(356)과 연관되게 한다. 머신 수집 관리자(348)는 또한, 복수의 컨테이너 또는 고유하게 식별된(예를 들어, 태깅된(tagged)) 워크로드가, 적어도 하나의 수집에 연관되게 한다. 일부의 경우에는, 다수의 머신 수집(356)이 각각의 계정(350)과 연관될 수 있다. 예를 들어, 각각의 계정(350)의 소유자(또는, 승인된 사용자)는, 하나 이상의 머신(354)을 각각의 머신 수집(356)에 추가할 수 있다. 각각의 머신 수집(356)은, 예를 들어, 상이한 운영 체제(112) 및/또는 애플리케이션(114)을 실행하도록 각각 구성된, 복수의 머신(354)을 포함할 수 있다(예를 들어, 애플리케이션(114)은 컨테이너를 사용하여 실행될 수 있다).
플러그인 데이터베이스(338)는, 메트릭/속성 수집기(303)에 의해 액세스되도록 구성될 수 있으며, 예를 들어 자원 사용량이 측정될 수 있도록, 메트릭/속성 수집기(303)가 하나 이상의 컴퓨팅 시스템(104)과 통신할 수 있게 하는, 하나 이상의 플러그인(358)을 포함할 수 있다(예를 들어, 플러그인(358)은 드라이버, 리스너, 게시자 등일 수 있음). 각각의 컴퓨팅 시스템(104)은 서로 다른 운영 체제(112) 및/또는 애플리케이션(114)을 실행하도록 각각 구성된, 하나 이상의 머신(354)을 포함하도록 구성될 수 있다. 다시 말해, 플러그인(358)은, 메트릭/속성 수집기(303)가, 복수의 상이한 컴퓨팅 환경에 걸쳐 동시에 자원 사용량을 모니터링하게 할 수 있다. 예를 들어, 플러그인(358)은, LINUX 플러그인, WINDOWS 플러그인, MAC 플러그인, SOLARIS 플러그인, VMWARE 플러그인, HYPER-V 플러그인, CITRIX XEN 플러그인, OPENSTACK 플러그인, OPENSHIFT 플러그인, KUBERNETES 플러그인, DOCKER 플러그인, PIVOTAL 플러그인, AMAZON 플러그인, MICROSOFT 플러그인, GOOGLE 플러그인, 베어 메탈(bare metal) 플러그인(예를 들어, 가상화되지 않은 머신과 직접 통신하도록 구성된 플러그인) 및/또는 복수의 운영 체제/환경에 걸쳐 자원 사용량을 모니터링할 수 있게 하는 임의의 기타 플러그인을 포함할 수 있다. 플러그인(358)은 또한, 하나 이상의 가상화된 및/또는 물리적 환경의 모니터링을 동시에 수행할 수 있게 한다. 플러그인(358)은 또한, 과금 정보, 소프트웨어 프로그램 사용률, 임대된 소프트웨어 라이센스 및/또는 임의의 다른 추가 사용자 계정 정보를 포함하는 다른 사용자 계정 정보의 모니터링을 가능하게 할 수 있다.
플러그인(358)은, 활성화되거나(예를 들어, 메트릭/속성 수집기(303)가 각각의 플러그인(358)을 사용하여 각각의 컴퓨팅 시스템(104)과 통신할 수 있음) 또는 비활성화되도록(예를 들어, 메트릭/속성 수집기(303)가 각각의 플러그인(358)을 사용하여 각각의 컴퓨팅 시스템(104)과 통신할 수 없음) 구성될 수 있다.
머신 관리자(342)는, 머신(354)을 각각의 머신 수집(356)에 할당 및/또는 연관시킬 수 있다. 머신 매니저(342)는, 머신 수집(들)(356)의 머신(354)을 분석하여, 예를 들어, 머신(354)의 사양 및/또는 운영 체제를 결정할 수 있다. 사양은, 예를 들어, 컴퓨팅 자원(108)(예를 들어, 사용가능한 메모리, 스토리지 등)와 관련된 정보를 포함할 수 있다.
머신 관리자(342)는 또한, 메트릭/속성 수집기(303)에 의해 모니터링될 새로운 머신을 검색할 수 있다. 머신 관리자(342)는, 특정 계정(350) 및/또는 자원 소비 사용자(352)와 연관된 새로운 IP 주소를 검색함으로써, 새로운 머신을 감지할 수 있다.
수집기 데이터베이스 관리자(344)는, 메트릭/속성 수집기(303)에 의해 수신 및/또는 생성된 데이터를 관리한다. 예를 들어, 수집기 데이터베이스 관리자(344)는, 머신(들)(354), 머신 수집(들)(356), 계정(들)(350) 및 그들과 연관된 자원 사용량(예를 들어, 메트릭/속성)에 관련된 하나 이상의 레코드(예를 들어, 데이터)를 수신하고 및/또는 저장하게끔 할 수 있다. 수집기 데이터베이스 관리자(344)는 또한, 데이터를 삭제할 수 있다. 예를 들어, 수집기 데이터베이스 관리자(344)는, 각각의 머신(354), 각각의 머신 수집(356) 및/또는 각각의 계정(350)과 관련된 레코드를 삭제할 수 있다. 일부의 경우에는, 수집기 데이터베이스 관리자(344)는, 각각의 머신(354), 각각의 머신 수집(356) 및/또는 각각의 계정(350)과 연관된 레코드를 절단(truncate)할 수 있다. 삭제 및/또는 절단은, 예를 들어, 소정 시간 주기가 경과한 후에 및/또는 각각의 계정(350)의 비활성화/종료 후에, 발생할 수 있다.
수집기 데이터베이스 관리자(344)는 통신 링크(366)를 통해 수집기 데이터베이스(364)와 통신할 수 있고 하나 이상의 기록들이 수집기 데이터베이스(364)에 저장되게 할 수 있다. 도시된 바와 같이, 수집기 데이터베이스(364)는 메트릭/속성 수집기(303)로부터 떨어져 있을 수 있다 (예를 들어, 다른 서버 및/또는 다른 네트워크상에서 동작함). 하지만, 일부의 경우에는, 수집기 데이터베이스(364)는 메트릭/속성 수집기(303)에 대하여 로컬일 수 있다 (예를 들어, 동일한 서버 상에서, 동일한 네트워크 상에서 및/또는 동일한 디바이스 상에서 동작함). 통신 링크(366)를 통해 전송되는 데이터는, 전송 중에 데이터에 대한 무단 액세스를 방지하기 위해, 암호화될 수 있다. 일부의 경우에는, 수집기 데이터베이스(364)에 저장된 기록들은, 기록들에 대한 무단 액세스를 방지하기 위해, 암호화될 수 있다. 예를 들어, 수집기 데이터베이스(364)에 저장된 기록들은 투명 데이터 암호화(TDE)를 사용하여 암호화될 수 있다.
수집기 동기화기(336)는, 예를 들어, 수집기 데이터베이스 관리자(344)와 통신할 수 있으며 수집기 데이터베이스 관리자(344)가 수신한 데이터를 복사 및/또는 백업할 수 있다. 예를 들어, 수집기 동기화기(336)는 수집기 데이터베이스 (364)에 저장된 및/또는 저장될 하나 이상의 기록들을 수집기 백업(368)에 복사할 수 있다. 일부의 경우에는, 수집기 백업(368)에 저장되는 기록들은 무단 액세스를 방지하기 위해 암호화될 수 있다. 하나 이상의 기록에 변경이 있을 때는, 수집기 동기화기(336)는 수집기 백업(368)에 이 변경만을 복사 및/또는 백업할 수 있다. 결과적으로, 수집기 동기화기(336)는 전체 기록을 수집기 백업(368)에 복사하지 않을 수도 있다. 도시된 바와 같이, 수집기 동기화기(336)는 통신 링크(370)를 통해 수집기 백업(368)과 통신할 수 있다. 통신 링크(370)를 통해 전송되는 데이터는 전송 동안의 데이터에 대한 무단 액세스를 방지하기 위해 암호화될 수 있다. 도시된 바와 같이, 수집기 백업(368)은 메트릭/속성 수집기(303)로부터 원격일 수 있다 (예를 들어, 다른 서버에서, 다른 네트워크에서 및/또는 다른 디바이스에서 동작함). 하지만, 일부의 경우에는, 수집기 백업(368)은 메트릭/속성 수집기(303)에 로컬화(local to)될 수 있다 (예를 들어, 동일한 서버, 동일한 네트워크 및/또는 동일한 디바이스에서 동작함).
경우에 따라, 백업 수집기(397)가 하나 이상 제공될 수 있다. 백업 수집기(397)는 메트릭/속성 수집기(303)와 실질적으로 동일하게 동작할 수 있으며 메트릭/속성 수집기(303)와 병렬로(또는, 동시에) 실행되도록 구성될 수 있다. 일부의 경우에는, 백업 수집기(397)는 메트릭/속성 수집기(303)로부터 원격으로 구성된다 (예를 들어, 다른 서버, 다른 네트워크 및/또는 다른 디바이스 상에서 동작함). 그 결과, 메트릭/속성 수집기(303)의 장애가 발생한 경우, 계측기(118)는 계속해서 자원 사용량을 모니터링할 수 있다. 즉, 백업 수집기(397)는 일반적으로 리던던시(redundancy)를 제공하는 것으로 설명될 수 있다. 일부의 경우에는, 예를 들어 n+2 리던던시가 달성될 수 있도록 2개 이상의 백업 수집기(397)가 있을 수 있다. 따라서, 백업 수집기(397)는 메트릭/속성 수집기(303)와 관련하여 여기에서 설명되는 구성들(features) 중 임의의 하나 이상을 포함할 수 있다. 백업 수집기(397)는 통신 링크(399)를 통해 컴퓨팅 시스템(104)과 통신할 수 있다. 통신 링크(399)를 통해 전송되는 데이터는 전송 중에 데이터에 대한 무단 액세스를 방지하기 위해 암호화될 수 있다.
백업 수집기(397)는 또한, 독립적인 기록들을 생성하도록 구성될 수 있다. 상기 독립적인 기록들은, 예를 들어, 감사 프로세스(auditing process) 동안에 및/또는 데이터 복구 프로세스(data recovery process)에서 (예를 들어, 메트릭/속성 수집기(303)가 실패를 경험하는 경우) 사용될 수 있다. 일부의 경우에는, 수집기 백업(368)은 백업 수집기(397)를 포함할 수 있다.
도시된 바와 같이, 메트릭/속성 수집기(303)는 또한, 수집기 자동화기(340)를 포함할 수 있다. 수집기 자동화기(340)는 메트릭/속성 수집기(303)의 하나 이상의 구성을 자동화할 수 있다. 예를 들어, 수집기 자동화기(340)는 메트릭/속성 수집기(303)가 미리결정된 동작(예를 들어, 메트릭/속성의 수신 시작 또는 종료, 데이터베이스 정리의 시작, 컴퓨팅 자원(108)에 대한 액세스의 활성화 또는 비활성화, 하나 이상의 플러그인(358)의 활성화 또는 비활성화 및/또는 기타 조작)을 수행하게 하는 트리거링 이벤트를 수신하도록 구성될 수 있다. 트리거링 이벤트는 예를 들어, 새로운 머신(들)의 발견, 계약 기간 만료, 자원의 미리결정된 양의 사용, 각각의 머신 수집(356)에 새로운 머신의 추가 등을 포함할 수 있다. 경우에 따라 트리거 이벤트는 소정 시간 주기의 만료일 수 있다. 예를 들어, 매 1, 2, 3, 4 또는 5초(또는, 임의의 다른 적절한 시간 간격)마다, 메트릭/속성 수집기(303)는 새로운 머신에 대응하는 새로운 인터넷 프로토콜(IP) 주소(및/또는 임의의 다른 식별자들)를 검색할 수 있다. 이러한 경우에, 메트릭/속성 수집기(303)는 일반적으로 자체 업데이트되는 것으로 설명될 수 있다.
또한, 도시된 바와 같이, 관리자 사용자 인터페이스(372)는 수집기 코어(332)에 통신가능하게 결합될 수 있다. 관리자 사용자 인터페이스(372)는, 메트릭/속성 수집기(303)를 제어 및/또는 수정하기 위해 및/또는 메트릭/속성 수집기(303)에 의해 생성 및/또는 수신된 데이터를 검토하기 위해, 메트릭/속성 수집기(303)의 오퍼레이터에게 인터페이스를 제공할 수 있다. 예를 들어, 관리자 사용자 인터페이스(372)는 매 계정(350) 및/또는 자원 소비 사용자(352) 기반(resource consuming user (352) basis)에 대한 사용 요약을 표시하거나 및/또는 생성하도록 구성될 수 있다. 또한, 예를 들어, 하나 이상의 머신(354)을 수동으로 추가하고, 하나 이상의 기록을 조정 및/또는 삭제하고, 새로운 계정들(350)을 추가 또는 제거하고, 플러그인들(358)을 추가 또는 제거하고, 수집기 자동화기(340)에 대한 트리거를 조정/생성하고, 예를 들어, 계약 조건 및/또는 임의의 다른 관리 작업에 따라 미리결정된 시간들에서의 자원 사용량 모니터링을 계속 및/또는 중단하기 위해, 관리자 사용자 인터페이스(372)가 사용될 수 있다.
도시된 바와 같이, 관리자 사용자 인터페이스(372)는 통신 링크(374)를 통해 수집기 코어(332)와 통신할 수 있다. 통신 링크(374)를 통해 전송되는 데이터는 전송 중에 데이터에 대한 무단 액세스를 방지하기 위해 암호화될 수 있다. 도시된 바와 같이, 관리자 사용자 인터페이스(372)는 메트릭/속성 수집기(303)로부터 원격일 수 있다 (예를 들어, 다른 서버에서, 다른 네트워크에서 및/또는 다른 디바이스에서 동작함). 하지만, 일부의 경우에는, 관리자 사용자 인터페이스(372)는 메트릭/속성 수집기(303)에 로컬일 수 있다 (예를 들어, 동일한 서버에서, 동일한 네트워크에서 및/또는 동일한 디바이스에서 동작함).
일부의 경우에는, 예를 들어, 관리 사용자 인터페이스(372)가 생성되어 웹 브라우저에 표시될 수 있다. 추가적인 예로서, 일부의 경우에, 관리 사용자 인터페이스(372)는 네트워크 연결(예를 들어, 인터넷)을 통해 메트릭/속성 수집기(303)와 통신하는 컴퓨터에서 실행되는 애플리케이션일 수 있다. 또 다른 예로서, 일부의 경우에, 관리 사용자 인터페이스(372)는 로컬에서 (예를 들어, 메트릭/속성 수집기(303)와 동일한 디바이스에서) 실행되는 애플리케이션일 수 있다.
도 3c는, 도 3a의 분석 플랫폼(312)의 예시일 수 있는 분석 플랫폼(360)의 예를 보여준다. 분석 플랫폼(360)은 일반적으로 소정 시간 주기 동안 수신된 복수의 메트릭/속성을 정규화된 유닛으로 정규화(예를 들어, 변환)하고, 정규화된 메트릭/속성을 합산하여, 상기 소정 시간 주기 동안의 단일의 정규화된 유닛으로 표시되는 총 자원 사용량 값을 생성하도록 구성되는 것으로 설명될 수 있다. 다시 말해, 분석 플랫폼(360)은 소정 시간 주기 동안의 총 자원 사용량을 나타내는 단일 사용량 값을 생성하도록 구성될 수 있다. 분석 플랫폼(360)은 하드웨어, 소프트웨어 및/또는 펌웨어의 임의의 조합을 포함할 수 있다. 일부의 경우에는, 분석 플랫폼(360)은 메트릭/속성 수집기(302)와 동일한 서버 및/또는 동일한 네트워크 상에서 실행될 수 있다. 다른 경우에는, 분석 플랫폼(360)은 메트릭/속성 수집기(302)와 다른 서버 및/또는 다른 네트워크에서 (예를 들어, 사용자의 네트워크 및/또는 서버에서) 실행될 수 있다.
분석 플랫폼(360)은 하나 이상의 메트릭/속성 수집기(302) 및/또는 하나 이상의 백업 수집기(397)로부터 컴퓨팅 자원(108)의 사용량을 나타내는 하나 이상의 메트릭/속성을 수신하도록 구성될 수 있다. 일부의 경우에는, 분석 플랫폼(360)은 컴퓨팅 시스템(104)으로부터 하나 이상의 메트릭/속성을 수신할 수 있다. 이러한 경우에는, 계측기(118)는 메트릭/속성 수집기(302)를 포함하지 않을 수 있고, 분석 플랫폼(360)이 플러그인 데이터베이스(338)를 포함할 수 있다. 플랫폼(360)은 예를 들어 JavaScript Object Notation(JSON) 파일, CSV(Comma Separated Values) 파일 및/또는 기타 파일 유형의 형태로 메트릭/속성을 수신할 수 있다.
분석 플랫폼(360)은 컴퓨팅 시스템(104), 디바이스(102) 및/또는 네트워크(106)에 통신적으로 연결된 임의의 다른 디바이스 중 어느 하나 이상에 포함되도록 구성될 수 있다. 예를 들어, 디바이스(102)는 분석 플랫폼(360)을 포함할 수 있다. 디바이스(102)가 분석 플랫폼(360)을 포함할 때, 분석 플랫폼(360)의 사용자는 분석 플랫폼(360)이 디바이스(102) 상에서 실행되지 않을 때와 비교하여, 사용자의 네트워크 보안에 대한 더 적은 수정으로 계측기(118)를 사용할 수 있다. 일부의 경우에는, 디바이스(102)가 분석 플랫폼(360)을 포함할 때, 분석 플랫폼(360)은 예를 들어, 로컬 네트워크에서 하나 이상의 사용자의 자원 사용량을 분석하도록 구성될 수 있으며, 여기서, 각 사용자는 예를 들어, 각각의 디바이스를 갖는다. 추가적으로 또는 대안적으로, 디바이스(102)가 분석 플랫폼(360) 및 메트릭/속성 수집기(302) 모두를 포함하는 경우, 컴퓨팅 자원(108)의 사용량을 나타내는 메트릭/속성만이 공용 네트워크(예를 들어, 인터넷)를 통해 전송될 필요가 있을 수 있다.
분석 플랫폼(360)은 적어도 하나의 분석 코어(376), 적어도 하나의 분석 메트릭 수신기(378), 적어도 하나의 분석 동기화기(380), 적어도 하나의 분석 데이터베이스 관리자(382), 적어도 하나의 분석 자동화기(384), 적어도 하나의 사용량 분석기(386), 적어도 하나의 통보 생성기(388), 적어도 하나의 가입 관리자(390) 및 적어도 하나의 교환/계약 관리자(393)를 포함할 수 있다. 분석 코어(376)는 일반적으로 분석 메트릭 수신기(378), 분석 동기화기(380), 분석 데이터베이스 관리자(382), 분석 자동화기(384), 사용량 분석기(386), 통보 생성기(388) 및 가입 관리자(390)의 각각과 통신 및/또는 그 각각을 관리하는 것으로 설명될 수 있다.
도시된 바와 같이, 분석 코어(376)는 분석 메트릭 수신기(378)에 통신적으로 결합된다. 분석 메트릭 수신기(378)는 메트릭/속성 수집기(302)로부터 컴퓨팅 자원(108)의 사용량을 나타내는 메트릭/속성을 수신한다. 분석 메트릭 수신기(378)는 하나 이상의 계산기(305)를 포함할 수 있다. 일부의 경우에는, 분석 메트릭 수신기(378)는 단일의 정규화된 유닛으로 표현되는 총 자원 사용량 값을 생성하도록 구성될 수 있다. 이러한 경우에, 분석 코어(376)는 단일의 정규화된 유닛으로 표현된 총 자원 사용량 값을 수신하도록 구성될 수 있다. 다른 경우에는, 분석 코어(376)는 단일의 정규화된 유닛으로 표현되는 총 자원 사용량 값을 생성하도록 구성될 수 있다.
분석 코어(376) 및/또는 분석 메트릭 수신기(378)는 사용량 분석기(386)와 통신할 수 있다. 사용량 분석기(386)는 각각의 계정(350) 및/또는 자원 소비 사용자(352)와 관련된 사용량을 모니터링하여 정상 사용량, 피크 사용량 및/또는 트로프 사용량(trough usage)을 산출(develop)(또는, 결정)한다. 다시 말해서, 정상 사용량, 피크 사용량 및/또는 트로프 사용량은 컴퓨팅 자원(108)의 각각에 대응하는 수신된 메트릭/속성에 적어도 부분적으로 기반할 수 있다. 일부의 경우에는, 예를 들어, 피크 사용량은 소정 시간 주기(예를 들어, 1시간, 1일, 1주, 1개월 및/또는 임의의 다른 적절한 기간)에 대한 최대 사용량을 나타낼 수 있으며, 트로프 사용량은 소정 시간 주기 (예를 들어, 1시간, 1일, 1주, 1개월 및/또는 임의의 다른 적절한 기간)에 대한 최소 사용량을 나타낼 수 있으며, 정상 사용량은 소정 시간 주기 (예를 들어, 1시간, 1일, 1주, 1개월 및/또는 임의의 다른 적절한 기간)에 대한 평균 사용량을 나타낼 수 있다. 경우에 따라, 피크 사용량은 소정 시간 주기에 대한 최대 사용량에 근접할 수 있으며(예를 들어, 실제 최대 사용량의 5%, 10% 또는 15% 이내의 사용량 값), 그리고 트로프 사용량은 소정 시간 주기에 대한 최소 사용량과 비슷할 수 있다(예를 들어, 실제 최소 사용량의 5%, 10%, 또는 15% 이내의 사용량 값).
정상 사용량, 피크 사용량 및/또는 트로프 사용량은 개별 컴퓨팅 자원, 복수의 컴퓨팅 자원 및/또는 컴퓨팅 자원을 구성하는 하나 이상의 하위 자원(예를 들어, 그래픽 프로세서 및 GPU(210)의 그래픽 메모리 중 하나 이상)에 해당할 수 있다. 예를 들어, 복수의 컴퓨팅 자원의 각각(예를 들어, CPU(202), 메모리(204), 스토리지(206), 네트워크 인터페이스(208), GPU(210) 및/또는 하나 이상의 다른 자원(209)의 각각)에 대해 정상 사용량, 피크 사용량 및/또는 트로프 사용량이 생성될 수 있다. 이러한 경우, 각 자원에 대한 정상 사용량, 피크 사용량 및/또는 트로프 사용량은 정규화된 유닛 및/또는 비정규화된 유닛(예를 들어, 개별 자원에 해당하는 유닛들)으로 표시될 수 있다. 추가 예로서, 복수의 컴퓨팅 자원(예를 들어, CPU(202), 메모리(204), 스토리지(206), 네트워크 인터페이스(208), GPU(210) 및/또는 다른 자원(209) 중 하나 이상의 둘 이상)에 대응하는 정상 사용량, 피크 사용량 및/또는 트로프 사용량이 생성될 수 있다. 이러한 경우에, 일반 사용량, 피크 사용량 및/또는 트로프 사용량은 단일의 정규화된 유닛으로 표시될 수 있다.
일부의 경우에는, 사용량 분석기(386)는 전체 피크 사용량 평균을 생성하도록 구성될 수 있다. 전체 피크 사용량 평균은 일반적으로 2개 이상의 각각의 미리결정된 기간에 대응하는 2개 이상의 피크 사용량 값의 평균으로 설명될 수 있다. 예를 들어, 피크 사용량은 각 요일에 대해 결정되고 평균을 내어 일주일 동안의 전체 피크 사용량 평균을 결정할 수 있다. 추가적으로 또는 대안적으로, 사용량 분석기(386)는 전체 트로프 사용량 평균을 생성하도록 구성될 수 있다. 전체 트로프 사용량 평균은 일반적으로 2이상의 각각의 미리결정된 기간에 대응하는 2이상의 트로프 사용량 값의 평균으로 설명될 수 있다. 예를 들어, 트로프 사용량은 각 요일에 대해 결정되고 평균을 내어 일주일 동안의 전체 트로프 사용량 평균을 결정할 수 있다.
전체 피크 사용량 평균 및/또는 전체 트로프 사용량 평균은 개별 컴퓨팅 자원 및/또는 복수의 컴퓨팅 자원에 대응할 수 있다. 예를 들어, 전체 피크 사용량 평균 및/또는 전체 트로프 사용량 평균은 복수의 컴퓨팅 자원의 각각(예를 들어, CPU(202), 메모리(204), 스토리지(206), 네트워크 인터페이스(208), GPU(210) 및/또는 하나 이상의 다른 자원(209)의 각각)에 대하여 생성될 수 있다. 이러한 경우, 각 자원에 대한 전체 피크 사용량 평균 및/또는 전체 트로프 사용량 평균은 정규화된 유닛 및/또는 비정규화된 유닛(예를 들어, 개별 자원에 해당하는 유닛)으로 표시될 수 있다. 추가의 예로서, 복수의 컴퓨팅 자원(예를 들어, CPU(202), 메모리(204), 스토리지(206), 네트워크 인터페이스(208), GPU(210) 및/또는 하나 이상의 다른 자원(209) 중 둘 이상)에 대응하는 전체 피크 사용량 평균 및/또는 전체 트로프 사용량 평균이 생성될 수 있다. 이러한 경우, 전체 피크 사용량 평균 및/또는 전체 트로프 사용량 평균은 단일의 정규화된 유닛으로 표시될 수 있다.
일반적인 평균 사용량은, 일반적으로 반복되는 시간 간격(repeating time intervals) 내에서 소정 시간 주기 동안 실제 자원 사용량을 여러 번 측정하고 그 측정값을 평균하여 계산되는 평균 자원 사용량으로 설명될 수 있다. 예를 들어, 실제 자원 사용량은 5일 동안 매일 오전 11시에 측정될 수 있으며 이러한 측정값을 기반으로 오전 11시에 대한 평균 사용량을 계산할 수 있다. 피크 평균 사용량은, 일반적으로 반복되는 시간 간격 내에서 소정 시간 주기 동안 실제 자원 사용량을 여러 번 측정하여, 최고 사용량을 갖는 측정값의 일부(자원 사용량의 최고 5%, 10%, 15%, 20%, 25%, 35%, 40%, 50% 또는 60%)를 선택하고, 선택된 부분의 평균을 계산함으로써 계산되는 평균 자원 사용량으로 설명될 수 있다. 예를 들어, 실제 자원 사용량은 5일 동안 매일 오전 11시에 측정될 수 있고, 가장 높은 3개의 측정 값을 기반으로 오전 11시의 피크 평균 사용량을 계산할 수 있다. 트로프 사용량은 일반적으로 반복되는 시간 간격 내에서 소정 시간 주기 동안 실제 자원 사용량을 여러 번 측정하고 최저 사용량을 갖는 측정값의 일부(예를 들어, 자원 사용량의 최저 5%, 10%, 15%, 20%, 25%, 35%, 40%, 50% 또는 60%)를 선택하고, 선택된 부분의 평균을 계산함으로써 계산되는 평균 자원 사용량으로 설명될 수 있다. 예를 들어, 실제 자원 사용량은 5일 동안 매일 오전 11시에 측정될 수 있으며 오전 11시의 트로프 사용량은 3개의 가장 낮은 측정값을 기반으로 계산될 수 있다.
정상 평균 사용량, 피크 평균 사용량 및/또는 트로프 평균 사용량은 개별 컴퓨팅 자원 및/또는 복수의 컴퓨팅 자원에 대응할 수 있다. 예를 들어, 복수의 컴퓨팅 자원의 각각(예를 들어, CPU(202), 메모리(204), 스토리지(206), 네트워크 인터페이스(208), GPU(210) 및/또는 하나 이상의 다른 자원(209) 중 각각)에 대해 정상 평균 사용량, 피크 평균 사용량 및/또는 트로프 평균 사용량이 생성될 수 있다. 이러한 경우, 각 자원에 대한 일반 평균 사용량, 피크 평균 사용량 및/또는 트로프 평균 사용량은 정규화된 유닛 및/또는 비정규화된 유닛(예를 들어, 개별 자원에 대응하는 유닛)으로 표시될 수 있다. 추가의 예로서, 복수의 컴퓨팅 자원(예를 들어, CPU(202), 메모리(204), 스토리지(206), 네트워크 인터페이스(208), GPU(210) 및/또는 하나 이상의 다른 자원(209) 중 둘 이상)에 대응하는 정상 평균 사용량, 피크 평균 사용량 및/또는 트로프 평균 사용량이 생성될 수 있다. 이러한 경우에는, 정상 평균 사용량, 피크 평균 사용량 및/또는 트로프 평균 사용량은 단일의 정규화된 유닛으로 표시될 수 있다.
사용량 분석기(386)는 정상 평균 사용량, 피크 평균 사용량 및 트로프 평균 사용량에 기반하여 정상 평균 사용량 패턴(392), 피크 평균 사용량 패턴(394) 및 트로프 평균 사용량 패턴(395)(명확성을 위해, 도 3d에서 그래프로 도시됨)을 각각 생성할 수 있다. 정상 평균 사용량 패턴(392)은 서로 다른 미리결정된 시간(또는, 미리결정된 기간)에 대응하는 복수의 정상 평균 사용량 값을 포함하는 데이터 세트일 수 있다. 피크 평균 사용량 패턴(394)은 서로 다른 미리결정된 시간(또는, 미리결정된 기간)에 대응하는 복수의 피크 평균 사용량 값을 포함하는 데이터 세트일 수 있다. 트로프 평균 사용량 패턴(395)은 상이한 미리결정된 시간(또는, 미리결정된 기간)에 대응하는 복수의 트로프 평균 사용량 값을 포함하는 데이터 세트일 수 있다.
정상 평균 사용량 패턴(392)에 대응하는 데이터 세트를 피크 평균 사용량 패턴(394)에 대응하는 데이터 세트와 비교하여 하나 이상의 미리결정된 시간(또는, 미리결정된 기간) 동안의 임계 사용량 값 또는 범위를 결정할 수 있다. 예를 들어, 소정 시간에 대한 임계 사용량 값은 각각의 소정 시간에서의 정상 평균 사용량 값과 피크 평균 사용량 값의 평균을 구하여 얻을 수 있다. 추가적인 예로서, 임계 사용량 범위는 각각의 미리결정된 시간에 정상 평균 사용량 값에서 피크 평균 사용량 값까지 확장되는 범위로 설명될 수 있다.
추가적으로 또는 대안적으로, 트로프 평균 사용량 패턴(395)에 대응하는 데이터 세트는 하나 이상의 미리결정된 시간(또는, 미리결정된 기간) 동안의 임계 사용량 값 또는 범위를 결정하기 위해 피크 평균 사용량 패턴(394)에 대응하는 데이터 세트와 비교될 수 있다. 예를 들어, 소정 시간에 대한 임계 사용량 값은 각각의 소정 시간에서의 트로프 사용량 평균값과 피크 평균 사용량 값의 평균을 취함으로써 얻어질 수 있다. 추가 예로서, 임계 사용량 범위는 각각의 미리결정된 시간에 트로프 평균 사용량 값으로부터 피크 평균 사용량 값까지 확장되는 범위로서 설명될 수 있다.
추가적으로 또는 대안적으로, 정상 평균 사용량 패턴(392)에 대응하는 데이터 세트는 하나 이상의 미리결정된 시간(또는, 미리결정된 기간)의 임계 사용량 값 또는 범위를 결정하기 위해 트로프 평균 사용량 패턴(395)에 대응하는 데이터 세트와 비교될 수 있다. 예를 들어, 소정 시간에 대한 임계 사용량 값은 각각의 소정 시간에서의 정상 평균 사용량 값과 트로프 사용량 평균 사용량 값의 평균을 취함으로써 얻어질 수 있다. 추가 예로서, 임계 사용량 범위는 각각의 미리결정된 시간에서의 트로프 평균 사용량 값에서 정상 평균 사용량 값으로 확장되는 범위로 설명될 수 있다.
추가적으로 또는 대안적으로, 임계 사용량 값은 트로프 평균 사용량 값, 피크 평균 사용량 값, 트로프 사용량 값(즉, 미리결정된 시간 동안의 최소 사용량) 또는 전체 트로프 사용량 평균값 및/또는 피크 사용량 값(즉, 미리결정된 시간 동안의 최대 사용량) 또는 전체 피크 사용량 평균 값일 수 있다.
통보 생성기(388)는, 예를 들어, 임계 사용량 값을 만족하거나, 초과하거나 및/또는 초과하지 않는 소정 시간(또는, 소정 시간 간격)에서의 하나 이상의 자원 사용량 및/또는 임계 사용량 범위를 벗어나는 자원 사용량에 응답하여 통보가 생성되도록 구성될 수 있다. 다시 말하면, 자원 사용량의 임계값 또는 임계 사용량 범위에 대한 비교에 적어도 부분적으로 기반하여 통보가 생성될 수 있다. 예를 들어, 사용량 임계 값을 초과하는 사용량을 탐지하는 것은 사용권한이 없는 제3자가 자원을 사용하는 것을 나타낼 수 있으며, 트로프 사용량 값을 초과하지 않는 사용량을 탐지하는 것은 하드웨어 장애(예를 들어, 컴퓨팅 자원(108)의 적어도 일부가 오동작하는 것일 수 있음)를 나타낼 수 있다.
일부의 경우에는, 사용량 분석기(386)는 이상값(outliers)(예를 들어, 임계 사용량 범위 밖에 있는 자원 사용량)을 식별하도록 구성될 수 있다. 예를 들어, 사용량 분석기(386)는 높고 낮은 사용량의 기간을 식별하기 위해 머신 학습을 사용할 수 있다. 높은 사용량 및/또는 낮은 사용량의 기간에서, 사용량 분석기(386)는, 사용량이 적어도 소정의 시간 주기(예를 들어, 10분, 30분, 60분, 2시간 및/또는 다른 시간 범위) 동안, 피크 평균 사용량 값을 초과하지 않거나 및/또는 트로프 평균 사용량 값을 초과하지 않는 경우에, 사용량을 이상값으로 식별할 수 있다. 결과적으로, 통보 생성기(388)는 이상값의 검출에 응답하여 통보를 생성하지 않도록 구성될 수도 있다. 또한, 이상값이 식별되면, 사용량 분석기(386)는, 예를 들어, 이상값이 여러 번 감지되지 않는다면 정상 평균 사용량 패턴(392), 피크 평균 사용량 패턴(394) 및/또는 트로프 평균 사용량 패턴(395)의 계산에서 이상값을 제외할 수 있다. 따라서, 정상 평균 사용량 패턴(392), 피크 평균 사용량 패턴(394) 및/또는 트로프 평균 사용량 패턴(395)은 각각 일반적으로 머신 학습을 사용하여 생성된 것으로 설명될 수 있다.
일부의 경우에는, 사용량 분석기(386)는 다른 사용자가 유사한 사용량 패턴을 경험하고 있는지를 결정하기 위해 계측기(118)의 다른 사용자들의 사용을 분석할 수 있다. 예를 들어, 다수의 사용자가 트로프 평균 자원 값을 초과하지 않는 자원 사용량을 경험하는 경우, 이는 하드웨어 장애(예를 들어, 컴퓨팅 자원(108)의 적어도 일부가 오동작할 수 있음)를 나타낼 수 있다. 이 경우 통보 생성기(388)가 통보를 생성할 수 있다.
생성된 통보는, 예를 들어, 전화 통화, SMS 문자 메시지, 이메일, 팩스, 촉각(예를 들어, 스마트 시계, 피트니스 추적기, 원격 건강 모니터링 디바이스 및/또는 기타 웨어러블 디바이스를 통해 제공될 수 있음)을 통해 하나 이상의 계정(350)의 소유자/사용자에게 전송되는 경고, 분석 플랫폼(360) 및/또는 메트릭/속성 수집기(302)를 관리하기 위한 애플리케이션 또는 소프트웨어 내에서 생성된 경고(예를 들어, 애플리케이션 내부 메시지(in-application message)) 및/또는 기타 유형의 경고의 형태일 수 있다.
사용량 분석기(386)는, 예를 들어, 머신 러닝을 사용하여 소정 시간 주기 동안 주기적으로(on a periodic basis) 발생하는 자원 사용량이 많은 기간과 자원 사용량이 적은 기간을 결정할 수 있다. 자원 사용량이 많은 기간과 자원 사용량이 적은 기간이 식별되면, 예를 들어, 경고가 발생되는 임계 사용량을 조정할 수 있다. 예를 들어, 알려진 높은 자원 사용량 기간 동안에서 경고를 생성하기 위한 임계 사용량은 알려진 낮은 자원 사용량 기간 동안에서 보다 높게 조정될 수 있다.
사용량 분석기(386)는 또한, 하나 이상의 사용자 및/또는 계정에 대한 소비된 자원의 유닛 당 비용을 나타내는 벤치 마크(예를 들어, 평균 비용 지수)를 생성하도록 구성될 수 있다. 사용량 분석기(386)는 하나 이상의 계정(350), 자원 소비 사용자(352) 및/또는 머신 수집(356)과 연관된 단일의 정규화된 유닛으로 표현된 총 자원 사용량 값을 수신할 수 있다. 일부의 경우에는, 사용량 분석기(386)는 전체 자원 사용량 값을 수신할 수 있는데, 이 전제 자원 사용량 값은 워크로드 유형(예를 들어, SPARK 클러스터 워크로드, ELASTICSEARCH 워크로드, 데이터 웨어하우징 워크로드, 재해(disaster) 복구 워크로드, 개발자(developer) 워크로드, 품질 보증 워크로드, 프로덕션 워크로드 등), 서비스 제공 업체(예를 들어, AMAZON, MICROSOFT, GOOGLE 및/또는 기타 서비스 제공 업체), 하드웨어 제공 업체(예를 들어, DELL, SUPERMICRO, HP 및/또는 기타 하드웨어 제공 업체), 하드웨어 구성(configuration), 하이퍼바이저(예를 들어, VMWARE, CITRIX, OPENSTRACK, 및/또는 기타 하이퍼바이저) 및/또는 그룹(예를 들어, 엔지니어링, 영업 또는 마케팅 부서와 같은 조직 내의 비즈니스 유닛)에 해당한다.
사용량 분석기(386)는 또한, 소비되는 자원과 관련된 비용 데이터를 수신할 수 있다. 비용 데이터는 컴퓨팅 시스템(104)(예를 들어, 서비스 제공자), 사용자 입력 및/또는 임의의 다른 소스로부터 수신될 수 있다. 비용 데이터는 각각의 계정(350), 자원 소비 사용자(352), 머신 수집(356), 워크로드 유형 및/또는 그룹과 연관된 총 자원 사용량의 비용을 나타낼 수 있다. 소비되는 자원과 관련된 비용 데이터에는 복수의 코-로케이션(colocation) 비용, 하드웨어 비용, 네트워킹 비용, 클라우드 호스팅 비용, 인건비, 소프트웨어 라이선스 비용, 규정 준수(compliance) 비용, 관리 서비스(managed services) 비용, 컨설턴트 비용, 지원 비용, 개발자/운영 교육 비용, 사이버 보안 비용, 마이그레이션 기회(migration opportunity) 비용 및/또는 소비되는 자원에 대한 기타 관련된 비용 중 하나 이상을 포함할 수 있다. 사용량 분석기(386)는 총 자원 사용량의 비용을 총 자원 사용량 값으로 나누어 소비 유닛 당 비용 값(cost per unit consumed value)을 얻을 수 있다. 사용량 분석기(386)는 벤치 마크(예를 들어, 평균 비용 지수)를 생성하기 위해 소비 유닛 당 비용을 사용할 수 있다.
그런 다음, 소비 유닛 당 비용 값은 예를 들어 시장 벤치 마크(예를 들어, 하나 이상의 계측기(118)의 모든 사용자에 대한 유닛 비용 당 평균(an average per unit cost), 그룹 또는 산업 벤치 마크(예를 들어, 미리결정된 산업 또는 그룹 내 모든 사용자에 대한 유닛 비용 당 평균), 워크로드 벤치 마크(예를 들어, 미리결정된 워크로드를 실행하는 모든 사용자에 대한 유닛 비용 당 평균), 서비스 제공 업체 벤치 마크(예를 들어, AMAZON, MICROSOFT, GOOGLE 및/또는 다른 서비스 제공 업체) 및/또는 이와 유사한 것과 비교될 수 있다. 그룹 또는 산업 벤치 마크는 예를 들어 회사 규모(예를 들어, 시가 총액, 연간 수익 등), 특정 회사 내의 또는 복수 기업에 걸쳐 있는 사업부 또는 부서(예를 들어, 영업부, 엔지니어링부 등) 및/또는 기타 그룹(groupings)에 기초할 수 있다.
일부의 경우에는, 사용량 분석기(386)는 또한, 시장 벤치 마크, 그룹 또는 산업 벤치 마크, 서비스 제공자 벤치 마크 및/또는 워크로드 벤치 마크를 생성하도록 구성될 수 있다. 예를 들어, 사용량 분석기(386)는 하나 이상의 서로 다른 사용자에 대응하는 하나 이상의 계정(350)의 자원 사용량 및 자원 비용에 관한 데이터에 액세스하도록 구성될 수 있다.
일부의 경우에는, 사용량 분석기(386)는 분석 플랫폼(360)으로부터 분리될 수 있다. 예를 들어, 사용량 분석기(386)는 다중 분석 플랫폼(360) 및/또는 메트릭/속성 수집기(302)와 통신하도록 구성될 수 있다. 일부의 경우에, 분석 플랫폼(360)에서 멀리 떨어져 있고 서로 다른 복수의 사용자들에 걸쳐 있는 특정 그룹 또는 산업, 특정 계정, 특정 워크로드 등에 대한 평균 사용량 및 평균 비용을 결정하도록 구성된 시장 사용량 분석기가 있을 수 있다. 이러한 경우, 특정 분석 플랫폼(360)에 대한 평균 사용량 및 평균 비용을 결정하도록 구성된 로컬 사용량 분석기가 있을 수도 있다.
일부의 경우에, 사용량 분석기(386)는 컴퓨팅 자원(108)에서 실행되는 워크로드(110)가 컴퓨팅 자원(108)을 효율적으로 활용하고 있는지 여부를 결정하기 위해 소비되는 컴퓨팅 자원(108)을 분석하도록 구성될 수도 있다. 예를 들어, 사용량 분석기(386)는 컴퓨팅 자원(108)의 사양(예를 들어, 프로세서 속도 및/또는 크기, 메모리 속도 및/또는 크기, GPU 속도 및/또는 크기, 저장 속도 및/또는 크기 등)을 분석하고, 사용량 분석기(386)가 최적화된 컴퓨팅 자원 구성(예를 들어, 최적의 추정된 구성)을 생성할 수 있도록 워크로드(110)의 요구사항과 이들을 비교한다. 이 경우, 사용량 분석기(386)는 생성된 통보가 사용자에게 전송되도록 구성될 수 있으며, 여기서 통보는 최적화된 컴퓨팅 자원 구성의 설명을 포함할 수 있다. 일부의 경우에는, 사용량 분석기(386)는 워크로드(110)를 최적화된 컴퓨팅 자원 구성으로 자동 전환하도록 구성될 수 있다. 추가 예로서, 컴퓨팅 자원(108)은 전용 그래픽 처리 유닛을 포함할 수 있지만, 컴퓨팅 자원(108) 상에서 실행되는 애플리케이션(114) 및/또는 운영 체제(112)는 효율적으로 동작하기 위한 전용 그래픽 처리 유닛을 필요로 하지 않을 수 있다. 이 경우, 사용량 분석기(386)는 생성된 통보가 사용자에게 전송되도록 구성될 수 있다. 일부의 경우에는, 사용량 분석기(386)는 전용 그래픽 처리 유닛을 포함하지 않는 또 하나의 컴퓨팅 시스템(104)으로 워크로드(110)를 자동으로 이동시키도록 구성될 수 있다. 그 결과, 소비된 컴퓨팅 자원의 유닛 당 비용이 감소될 수 있다.
일부의 경우에는, 사용량 분석기(386)는 실행될 워크로드(110)에 기반하여 컴퓨팅 자원 구성의 추천사항을 생성하도록 추가로 구성될 수 있다. 컴퓨팅 자원 구성의 추천사항은 컴퓨팅 자원 소비 값의 유닛 당 비용(cost per unit of computing resources consumed value) 및/또는 각각의 워크로드(110)에 대한 추정된 성능 등급과 연관될 수 있다. 결과적으로, 사용자는 복수의 자원 공급 업체 및/또는 특정의 자원 공급 업체에서 사용할 수 있는 복수의 컴퓨터 자원 옵션들 사이에서 자원 비용 및/또는 성능을 비교할 수 있다.
일부의 경우에는, 사용량 분석기(386)는 사용자가 미리정해진 양의 자원을 사전 구매할 때 사용자의 자원 사용량을 분석하도록 구성될 수 있다. 이러한 경우에, 사용량 분석기(386)는 사전 구매된 상기 자원의 양을, 사용가능한 최대 자원의 양을 나타내는 정규화된 값으로 변환하고, 사전 구매된 자원의 정규화된 값을 피크 사용량 값과 비교할 수 있다. 다시 말해서, 사용량 분석기(386)는 사용자가 미리결정된 양의 자원을 사전 구매할 때, 자원 공급이 사용자의 피크 자원 수요를 충족하기에 충분한지를 결정하도록 구성될 수 있다. 따라서, 이러한 비교에 기반하여, 사용량 분석기(386)는 사전 구매할 자원의 양에 관한 추천사항을 제공하도록 구성될 수 있다.
가입 관리자(390)는 계측기(118)의 사용자와 관련된 가입 정보(subscription information)를 관리하고 유지한다. 예를 들어, 가입 정보는, 각각의 계정(350)에 할당될 수 있는 자원 소비 사용자(352)의 수를 결정할 수 있고, 각각의 사용자(예를 들어, 기업 엔티티)에 할당될 수 있는 계정의 수를 결정할 수 있고, 각각의 사용자가 액세스할 수 있는 머신(354)의 수를 결정하고, 각각의 머신 수집(356)에 할당될 수 있는 머신(354)의 수를 결정하고, 로그인 정보가 할당된 각각의 사용자가 가질 수 있는 머신 수집(356)의 수를 결정하고, 로그인 정보의 유효성(예를 들어, 로그인 정보가 만료되었는지 여부) 및/또는 가입 관리와 관련된 기타 작업을 결정할 수 있다.
교환/계약 관리자(393)는 두 당사자(예를 들어, 구매자와 판매자) 간의 계약을 조정하도록 구성된다. 교환/계약 관리자(393)는 계약 조건에 따라 계측기(118)를 비활성화하도록 구성될 수 있다. 계측기(118)가 비활성화되었을 때, 컴퓨팅 자원(108)에 대한 사용자의 액세스가 비활성화될 수 있다. 교환/계약 관리자(393)는 또한, 자원 사용량을 감사(audit)하도록 구성될 수 있다. 자원 사용량 감사에는 사용된 것으로 표시된 자원이 실제로 사용되었는지 및/또는 사용량이 계약에 따라 사용되었는지 확인하는 것이 포함될 수 있다. 감사 프로세스는 메트릭/속성 수집기(302)에 의해 수집된 데이터를 제2 수집기(예를 들어, 백업 수집기)에 의해 생성된 데이터와 비교하는 것을 포함할 수 있다.
분석 자동화기(384)는 분석 플랫폼(360)의 하나 이상의 구성을 자동화할 수 있다. 예를 들어, 분석 자동화기(384)는 분석 플랫폼(360)이 미리결정된 동작을 수행하게 하는 트리거링 이벤트를 수신하도록 구성될 수 있다. 미리결정된 동작은 예를 들어 컴퓨팅 자원(108)에 대한 액세스를 활성화 또는 비활성화하는 것, 메트릭/속성 수집기(302)(예를 들어, 메트릭 수신기(334))의 적어도 일부를 활성화 또는 비활성화하는 것, 또는, 하나 이상의 플러그인(358)(예를 들어, 컴퓨팅 시스템(104)과의 통신을 가능하게 하도록 구성된 하나 이상의 플러그인(358))을 활성화 또는 비활성화하는 것, 데이터베이스의 정리를 시작하고, 및/또는 임의의 다른 동작을 수행하는 것 중 하나 이상을 포함할 수 있다. 트리거링 이벤트는 예를 들어, 새로운 계약을 수신하는 것, 새로운 가입, 운영자 사용자 인터페이스(372)로부터의 사용자 입력, 미리결정된 시간(예를 들어, 새로운 계약/가입 시작 및/또는 임의의 다른 미리결정된 시간), 리콜 요청 등을 포함할 수 있다. 일부의 경우에는 트리거링 이벤트는 소정 시간 주기의 만료(예를 들어, 계약 기간의 경과)일 수 있다. 예를 들어, 분석 플랫폼(360)은 계약 기간의 경과에 응답하여 미리결정된 동작을 수행할 수 있다.
도시된 바와 같이, 분석 데이터베이스 관리자(382)는 분석 코어(376) 및 분석 동기화기(380)와 통신한다. 분석 데이터베이스 관리자(382)는 분석 플랫폼(360)에 의해 수신 및/또는 생성된 데이터를 관리한다. 예를 들어, 분석 데이터베이스 관리자는 가입, 계약, 메트릭/속성, 사용량 패턴(예를 들어, 정상 평균 사용량 패턴(392), 피크 평균 사용량 패턴(394) 또는 트로프 평균 사용량 패턴(395)), 통보 임계 값, 트리거링 이벤트 및/또는 분석 플랫폼(360)에 의해 수신되거나 생성된 임의의 다른 데이터와 관련된 하나 이상의 기록(예를 들어, 데이터)을 관리 및/또는 저장하도록 한다. 분석 데이터베이스 관리자(382)는 또한 데이터를 삭제 및/또는 절단할 수 있다. 예를 들어, 분석 데이터베이스 관리자(382)는 가입, 계약, 메트릭/속성, 사용량 패턴(예를 들어, 정상 평균 사용량 패턴(392), 피크 평균 사용량 패턴(394) 또는 트로프 평균 사용량 패턴(395)), 통보 임계 값, 및/또는 분석 플랫폼(360)에 의해 수신된 기타 데이터와 관련된 기록을 삭제 및/또는 절단할 수 있다. 삭제 및/또는 절단은, 예를 들어, 소정 시간 주기가 경과한 후 및/또는, 예를 들어, 가입 또는 계약의 비활성화/종료 후에 일어날 수 있다.
분석 데이터베이스 관리자(382)는 통신 링크(398)를 통해 분석 데이터베이스(396)와 통신하고 하나 이상의 기록이 분석 데이터베이스(396)에 저장되도록 할 수 있다. 도시된 바와 같이, 분석 데이터베이스(396)는 분석 플랫폼(360)으로부터 멀리 떨어져 있을 수 있다 (예를 들어, 다른 서버, 다른 네트워크 및/또는 다른 디바이스에서 동작함). 하지만, 일부의 경우에는, 분석 데이터베이스(396)는 분석 플랫폼(360)에 로컬일 수 있다 (예를 들어, 동일한 서버, 동일한 네트워크 및/또는 동일한 디바이스 상에서 동작함). 통신 링크(398)를 통해 전송된 데이터는 전송 중의 무단 액세스를 방지하기 위해 암호화될 수 있다. 일부의 경우에는 분석 데이터베이스(396)에 저장된 기록은 암호화되어 기록에 대한 무단 액세스를 방지할 수 있다. 예를 들어, 분석 데이터베이스(396)에 저장된 기록은 TDE(Transparent Data Encryption)를 사용하여 암호화될 수 있다.
분석 동기화기(380)는 분석 메트릭 수신기(378) 및/또는 분석 데이터베이스 관리자(382)와 통신할 수 있고 분석 플랫폼(360)에 의해 수신된 데이터(예를 들어, 분석 데이터베이스 관리자(382)에 의해 수신된 상기 데이터)를 복사 및/또는 백업할 수 있다. 예를 들어, 분석 동기화기(380)는 분석 데이터베이스(396)에 저장된 및/또는 저장될 하나 이상의 기록을 분석 백업(381)에 복사 및/또는 백업할 수 있다. 일부의 경우에는, 분석 백업(381)에 저장된 기록은 무단 액세스를 방지하기 위해 암호화될 수 있다. 하나 이상의 기록이 변경되면, 분석 동기화기(380)는 분석 백업(381)에 대한 변경만을 백업할 수 있다. 도시된 바와 같이, 분석 동기화기(380)는 통신 링크(383)를 통해 분석 백업(381)과 통신할 수 있다. 통신 링크(383)를 통해 전송되는 데이터는 전송 중에 데이터에 대한 무단 액세스를 방지할 수 있도록 암호화될 수 있다. 도시된 바와 같이, 분석 백업(381)은 분석 플랫폼(360)으로부터 멀리 떨어져 있을 수 있다 (예를 들어, 다른 서버, 다른 네트워크 및/또는 다른 디바이스 상에서 동작함). 하지만, 일부의 경우에, 분석 백업(381)은 분석 플랫폼(360)에 로컬일 수 있다 (예를 들어, 동일한 서버, 동일한 네트워크 및/또는 동일한 디바이스 상에서 동작함).
경우에 따라, 분석 플랫폼(360)과 실질적으로 동일하게 동작하는 백업 분석 플랫폼(355)이 제공될 수 있다. 결과적으로, 독립적인 기록이 유지될 수 있다. 예를 들어, 감사 프로세스 및/또는 데이터 복구 프로세스에서 (예를 들어, 분석 플랫폼(360)이 실패를 경험하는 경우에) 독립적인 기록이 사용될 수 있다. 백업 분석 플랫폼(355)은 통신 링크(353)를 사용하여 메트릭/속성 수집기(302)에 통신 가능하게 결합될 수 있다.
일부의 경우에는, 분석 백업(381)은 또한, 분석 플랫폼(360)과 실질적으로 동일하게 동작하는 백업 분석 플랫폼을 포함할 수 있다. 즉, 분석 백업(381)은 독립형 분석 플랫폼을 포함할 수 있다. 결과적으로 독립적인 기록이 유지될 수 있다. 예를 들어, 감사 프로세스 및/또는 데이터 복구 프로세스에서 (예를 들어, 분석 플랫폼(360)이 실패를 경험하는 경우에) 독립적인 기록이 사용될 수 있다.
도시된 바와 같이, 사용량 예측기(385)는 통신 링크(387)를 통해 분석 코어(376)에 통신적으로 결합될 수 있다. 사용량 예측기(385)는 (예를 들어, 하나 이상의 계정(350)을 소유하거나 제어하는) 각각의 사용자에 대한 미래의 사용량, 각각의 계정(350) 및/또는 각각의 자원 소비 사용자(352)를 추정할 수 있다. 사용량 예측기(385)는, 예를 들어, 정상 평균 사용량 패턴(392), 피크 평균 사용량 패턴(394) 및/또는 트로프 평균 사용량 패턴(395)을 사용하여 미래의 사용량을 예측할 수 있다. 추가적으로 또는 대안적으로, 사용량 예측기(385)는 미래의 사용량을 예측하기 위해 머신 러닝을 활용하여 과거 자원 사용량을 분석할 수 있다. 예를 들어, 사용량 예측기(385)는 패턴 및/또는 급증(surges)(예를 들어, 자원 사용량의 증가)에 대한 사용량을 분석할 수 있다. 미래의 사용량이 예측되면, 사용량 예측기(385)는 예측된 사용량에 대응하는 예측된 경제 비용도 추정할 수 있다.
도시된 바와 같이, 분석 사용자 인터페이스(389)는 통신 링크(391)를 통해 분석 코어(376)와 통신할 수 있다. 분석 사용자 인터페이스(389)는 분석 플랫폼(360) 및/또는 메트릭/속성 수집기(302)와 관련된 정보를 나타내는 디스플레이를 생성하도록 구성될 수 있다. 예를 들어, 분석 사용자 인터페이스(389)는 사용량 예측, 정상 평균 사용량 패턴(392)(예를 들어, 그래프 또는 플롯), 피크 평균 사용량 패턴(394)(예를 들어, 그래프 또는 플롯), 트로프 평균 사용량 패턴(395)(예를 들어, 그래프 또는 플롯), 현재 계약 조건, 현재 가입, 활성 및/또는 비활성 통보/경고 및/또는 분석 플랫폼(360)에 관한 기타 데이터를 표시하도록 구성될 수 있다. 일부의 경우에는, 분석 사용자 인터페이스(389)는 사용자가 분석 플랫폼(360)의 다양한 구성을 수정할 수 있도록 구성될 수 있다. 예를 들어, 분석 사용자 인터페이스(389)는 사용자가 하나 이상의 가입을 변경 및/또는 취소하고, 하나 이상의 계약을 변경 및/또는 취소하고, 통보 임계 값 및/또는 분석 자동화기(384) 트리거를 변경, 추가 및/또는 제거하고, 및/또는 분석 플랫폼(360)의 임의의 다른 구성을 변경할 수 있도록 구성될 수 있다.
도시된 바와 같이, 분석 사용자 인터페이스(389)는 분석 플랫폼(360)으로부터 멀리 떨어져 있을 수 있다 (예를 들어, 다른 서버에서, 다른 네트워크에서 및/또는 다른 디바이스에서 동작함). 하지만, 일부의 경우에는, 분석 사용자 인터페이스(389)는 분석 플랫폼(360)에 로컬일 수 있다 (예를 들어, 동일한 서버에서, 동일한 네트워크에서 및/또는 동일한 디바이스에서 동작함). 통신 링크(391)를 통해 전송되는 데이터는, 데이터에 대한 무단 액세스를 방지하기 위해 암호화될 수 있다.
예를 들어, 경우에 따라 분석 사용자 인터페이스(389)가 생성되어 웹 브라우저에 표시될 수 있다. 추가 예로서, 일부의 경우에는 분석 사용자 인터페이스(389)는 네트워크 연결(예를 들어, 인터넷)을 통해 분석 플랫폼(360)과 통신하는 컴퓨터 상에서 실행되는 애플리케이션일 수 있다. 또 다른 예로서, 일부의 경우에는, 분석 사용자 인터페이스(389)는 로컬에서 (예를 들어, 분석 플랫폼(360)과 동일한 하드웨어 상에서) 실행되는 애플리케이션일 수 있다.
통신 링크(330, 353, 362, 366, 370, 374, 383, 387, 391, 398 및/또는 399)는 통신을 설정할 때, SSL(Secure Sockets Layer) 보안 프로토콜을 사용할 수 있다. 본 명세서에서 설명된 바와 같이, 통신 링크(330, 353, 362, 366, 370, 374, 383, 387, 391, 398 및/또는 399)는 각각 암호화된 데이터를 운반할 수 있다. 따라서, 하나 이상의 통신 링크(330, 353, 362, 366, 370, 374, 383, 387, 391, 398 및/또는 399)는 일반적으로 보안 통신 링크(예를 들어, 통신 링크(330, 353, 362, 366, 370, 374, 383, 387, 391, 398 및/또는 399)는 SSL 보안 프로토콜 중 적어도 하나를 사용하거나 및/또는 전송되는 데이터는 암호화됨)인 것으로 설명될 수 있다.
메트릭/속성 수집기(302) 및 분석 플랫폼(360)은 소프트웨어, 펌웨어, 하드웨어 및/또는 이들의 조합으로 구현될 수 있다. 예를 들어, 메트릭/속성 수집기(302) 및 분석 플랫폼(360)은 하나 이상의 메모리(예를 들어, 임의의 타입의 유형의 비일시적 저장 매체)에 저장되도록 구성된 소프트웨어로 구현될 수 있으며, 하나 이상의 작업을 수행하기 위한 하나 이상의 프로세서(예를 들어, INTEL, ADVANCED MICRO DEVICES, IBM, ARM, ORACLE에 의해 판매되는 프로세서 및/또는 기타 프로세서)에 의해 실행된다. 여기서, 상기 메모리는 자기 기록 매체(예를 들어, 하드 디스크 드라이브), 광학 디스크, ROM(판독 전용 메모리), 동적 및 정적 RAM과 같은 RAM(랜덤 액세스 메모리), EPROM(삭제가능 프로그래머블 판독 전용 메모리), EEPROM(전기적 삭제가능 프로그래머블 판독 전용 메모리), 플래시 메모리와 같은 반도체 디바이스, 자기 또는 광학 카드 또는 전자 명령어를 저장하기 위한 모든 유형의 저장 매체 중 하나 이상을 포함할 수 있다. 추가 예로서, 메트릭/속성 수집기(302) 및 분석 플랫폼(360)은 회로(예를 들어, 주문형 집적 회로)로서 구현될 수 있다. 메트릭/속성 수집기(302) 및 분석 플랫폼(360)은 동일하거나 상이한 머신, 서버 및/또는 네트워크 상에서 구현될 수 있다.
도 4는, 도 3a와 관련하여 설명된 바와 같이, 변환 유닛을 생성하도록 구성된 변환 유닛 생성기(400)의 개략적인 예를 보여준다. 변환 유닛 생성기(400)는, 컴퓨팅 시스템(104), 디바이스(102) 및 네트워크(106)와 분리될 수 있다. 예를 들어, 변환 유닛 생성기(400)는, 변환 유닛이 생성되어 분석 플랫폼(312)에 고정된 값으로 입력될 수 있도록, 제3자 시스템의 일부일 수 있다. 도시된 바와 같이, 변환 유닛 생성기(400)는 적어도 제1 자원 변환 유닛 생성기(402) 및 제2 자원 변환 유닛 생성기(404)를 포함할 수 있다. 제1 자원 변환 유닛 생성기(402)는 예를 들어, CPU 변환 유닛(314), 메모리 변환 유닛(316), 저장 변환 유닛(318), 네트워크 변환 유닛(320) 및/또는 디스크 IO 변환 유닛(328) 중 하나 이상을 생성할 수 있다. 제2 자원 변환 유닛 생성기(404)는, 예를 들어, GPU 프로세서 변환 유닛(322), GPU 메모리 변환 유닛(324) 및/또는 GPU 메모리 속도 변환 유닛(326) 중 하나 이상을 생성할 수 있다.
도시된 바와 같이, 제1 자원 변환 유닛 생성기(402)는 CPU 변환 유닛 생성기(406), 메모리 변환 유닛 생성기(408), 저장 변환 유닛 생성기(410), 네트워크 변환 유닛 생성기(412) 및 디스크 IO 변환 유닛 생성기(414)를 포함한다.
CPU 변환 유닛 생성기(406)는, CPU 할당(416) 및 CPU 연산 유닛(418)에 적어도 부분적으로 기반하여 CPU 변환 유닛(314)을 생성할 수 있다. 예를 들어, CPU 변환 유닛(314)은, CPU 할당(416)을 CPU 컴퓨팅 부분(CPU compute portion)(418)으로 나눔으로써 생성될 수 있다.
CPU 할당(416)은 사용자가 액세스할 수 있는 CPU(202)의 클럭 속도에 해당한다. 예를 들어, 물리적 프로세서의 일부만이 하나 이상의 사용자의 작업 로드(들)에 할당될 수 있다. 즉, 할당된 사용가능한 클럭 속도는 물리적 프로세서의 디폴트 클럭 속도보다 낮을 수 있다. CPU 컴퓨팅 부분(418)은 일반적으로 하나 이상의 워크로드(110)에 의해 사용되는 CPU 자원을 나타내는 가중치(weight)에 대응할 수 있다. 일부의 경우에는, CPU 컴퓨팅 부분(418)은 여러 사용자의 워크로드의 분석에 기반하여 실험적으로 도출된 값일 수 있다. 이와 같이, 일부의 경우에는, CPU 컴퓨팅 부분(418)은 일반적으로 워크로드의 변화를 설명하기 위해 미리결정된 시간에 조정가능한 동적 가중치인 것으로 설명될 수 있다.
메모리 변환 유닛 생성기(408)는, 메모리 할당(420) 및 메모리 컴퓨팅부분(422)에 적어도 부분적으로 기반하여 메모리 변환 유닛(316)을 생성할 수 있다. 예를 들어, 메모리 변환 유닛(316)은 메모리 할당(420)을 메모리 컴퓨팅 부분(422)으로 나눔으로써 생성될 수 있다.
메모리 할당(420)은 사용자가 액세스할 수 있는 메모리(204)의 양에 해당한다. 예를 들어, 물리적 메모리의 일부만 하나 이상의 사용자의 워크로드(들)에 할당될 수 있다. 즉, 할당된 메모리는 사용가능한 총 실제 메모리보다 작을 수 있다. 메모리 컴퓨팅 부분(422)은 일반적으로 하나 이상의 워크로드(110)에 의해 사용되는 메모리 자원을 나타내는 가중치에 해당할 수 있다. 일부의 경우에는, 메모리 컴퓨팅 부분(422)은 여러 사용자의 워크 로드의 분석에 기반하여 실험적으로 도출된 값일 수 있다. 이와 같이, 일부의 경우에는, 메모리 컴퓨팅 부분(422)은 일반적으로 워크로드의 변화를 설명하기 위해 미리결정된 시간에 조정가능한 동적 가중치인 것으로 설명될 수 있다.
스토리지 변환 유닛 생성기(410)는 스토리지 할당(424) 및 저장 컴퓨팅 부분(426)에 적어도 부분적으로 기반하여 스토리지 변환 유닛(318)을 생성할 수 있다. 예를 들어, 스토리지 변환 유닛(318)은 스토리지 할당(424)을 저장 컴퓨팅 부분(426)에 의해 나눔으로써 생성될 수 있다.
스토리지 할당(424)은 사용자가 액세스할 수 있는 스토리지(206)의 양에 대응한다. 예를 들어, 물리적 스토리지의 일부만이 하나 이상의 사용자의 워크로드(들)에 할당될 수 있다. 즉, 할당된 스토리지는 사용가능한 총 물리적 스토리지보다 작을 수 있다. 스토리지 컴퓨팅 부분(426)은 일반적으로 하나 이상의 워크로드(110)에 의해 사용되는 스토리지 자원을 나타내는 가중치에 대응할 수 있다. 일부의 경우에는, 스토리지 컴퓨팅 부분(426)은 여러 사용자의 워크로드의 분석에 기반한 실험에 의해 도출된 값일 수 있다. 이와 같이, 일부의 경우에는, 스토리지 컴퓨팅 부분(426)은 일반적으로 워크로드의 변화를 설명하기 위해 미리결정된 시간에 조정가능한 동적 가중치인 것으로 설명될 수 있다.
네트워크 변환 유닛 생성기(412)는 네트워크 할당(428) 및 네트워크 컴퓨팅 부분(430)에 적어도 부분적으로 기반한 네트워크 변환 유닛(320)을 생성할 수 있다. 예를 들어, 네트워크 변환 유닛(320)은 네트워크 할당(428)을 네트워크 컴퓨팅 부분(430)으로 나눔으로써 생성될 수 있다.
네트워크 할당(428)은 사용자가 액세스할 수 있는 네트워크 대역폭에 대응한다. 예를 들어, 전체 물리적 네트워크 대역폭의 일부만이 하나 이상의 사용자의 워크로드(들)에 할당될 수 있다. 즉, 할당된 네트워크 대역폭은 사용가능한 총 물리적 네트워크 대역폭보다 작을 수 있다. 네트워크 컴퓨팅 부분(430)은 일반적으로 하나 이상의 워크로드(110)에 의해 사용되는 네트워크 자원(예를 들어, 대역폭)을 나타내는 가중치에 대응할 수 있다. 일부의 경우에는, 네트워크 컴퓨팅 부분(430)은 여러 사용자의 워크로드의 분석에 기반한 실험에 의해 도출된 값일 수 있다. 이와 같이, 일부의 경우에는, 네트워크 컴퓨팅 부분(430)은 일반적으로 워크로드의 변화를 설명하기 위해 미리결정된 시간에 조정가능한 동적 가중치인 것으로 설명될 수 있다.
디스크 IO 변환 유닛 생성기(414)는 디스크 IO 할당(432) 및 디스크 IO 컴퓨팅 부분(434)에 적어도 부분적으로 기반한 디스크 IO 변환 유닛(328)을 생성할 수 있다. 예를 들어, 디스크 IO 변환 유닛(328)은 디스크 IO 할당(432)을 디스크 IO 컴퓨팅 부분(434)으로 나눔으로써 생성된다.
디스크 IO 할당(432)은 사용자가 액세스할 수 있는 디스크 대역폭(예를 들어, 스토리지(206)에 대한 판독 및 기록)에 대응한다. 예를 들어, 전체 물리적 디스크 대역폭의 일부만이 하나 이상의 사용자의 워크로드에 할당될 수 있다. 즉, 할당된 디스크 대역폭은 사용가능한 총 물리적 디스크 대역폭보다 작을 수 있다. 디스크 IO 컴퓨팅 부분(434)은 일반적으로 하나 이상의 워크로드(110)에 의해 사용되는 디스크 IO 자원(예를 들어, 디스크 대역폭)을 나타내는 가중치에 대응할 수 있다. 일부의 경우에는, 디스크 컴퓨팅 부분(434)은 여러 사용자의 워크로드의 분석에 기반한 실험적으로 도출된 값일 수 있다. 이와 같이, 일부의 경우에는, 디스크 컴퓨팅 부분(434)은 일반적으로 워크로드의 변화를 설명하기 위해 미리결정된 시간에 조정가능한 동적 가중치인 것으로 설명될 수 있다.
CPU 컴퓨팅 부분(418), 메모리 컴퓨팅 부분(422), 스토리지 컴퓨팅 부분(426), 네트워크 컴퓨팅 부분(430) 및 디스크 IO 컴퓨팅 부분(434)의 합은 100이될 수 있다. 즉, 각 컴퓨팅 부분은 컴퓨팅 부분을 100으로 나눔으로써 제1 자원 변환 유닛 생성기(402)에 의해 평가된 총 컴퓨팅 자원의 백분율로 표현될 수 있다.
도시된 바와 같이, 제2 자원 변환 유닛 생성기(404)는 GPU 프로세서 변환 유닛 생성기(436), GPU 메모리 변환 유닛 생성기(438) 및 GPU 메모리 속도 변환 유닛 생성기(440)를 포함한다.
GPU 프로세서 변환 유닛 생성기(436)는 GPU 프로세서 할당(442) 및 GPU 프로세서 컴퓨팅 부분(444)에 적어도 부분적으로 기반하여 GPU 프로세서 변환 유닛(322)을 생성할 수 있다. 예를 들어, GPU 프로세서 변환 유닛(322)은 GPU 프로세서 할당(442)을 GPU 프로세서 컴퓨팅 부분(444)으로 나눔으로써 생성된다.
GPU 프로세서 할당(442)은 사용자가 접근할 수 있는 GPU(210)의 클럭 속도에 해당한다. 예를 들어, 물리적 GPU 프로세서의 일부만이 하나 이상의 사용자의 워크로드(들)에 할당될 수 있다. 즉, 할당된 GPU 프로세서의 사용가능한 클럭 속도는 물리적 GPU 프로세서의 디폴트 클럭 속도보다 낮을 수 있다. GPU 프로세서 컴퓨팅 부분(444)은 일반적으로 하나 이상의 워크로드(110)에 의해 사용되는 GPU 프로세서 자원을 나타내는 가중치에 대응할 수 있다. 일부의 경우에는, GPU 컴퓨팅 부분(444)은 여러 사용자의 워크 로드의 분석에 기반한 실험적으로 도출된 값일 수 있다. 이와 같이, 일부의 경우에는, GPU 컴퓨팅 부분(444)은 일반적으로 워크로드의 변화를 설명하기 위해 미리결정된 시간에 조정가능한 동적 가중치인 것으로 설명될 수 있다.
GPU 메모리 변환 유닛 생성기(438)는 GPU 메모리 할당(446) 및 GPU 메모리 컴퓨팅 부분(448)에 적어도 부분적으로 기반한 GPU 메모리 변환 유닛(324)을 생성할 수 있다. 예를 들어, GPU 메모리 변환 유닛(324)은 GPU 메모리 할당(446)을 GPU 메모리 컴퓨팅 부분(448)으로 나눔으로써 생성된다.
GPU 메모리 할당(446)은 사용자가 접근할 수 있는 GPU(210)의 메모리 양에 해당한다. 예를 들어, GPU(210)의 물리적 메모리의 일부만이 하나 이상의 사용자의 워크로드(들)에 할당될 수 있다. 즉, 할당된 GPU(210)의 메모리는 사용가능한 GPU(210)의 전체 물리적 메모리보다 작을 수 있다. GPU 메모리 컴퓨팅 부분(448)은 일반적으로 하나 이상의 워크로드(110)에 의해 사용되는 메모리 자원을 나타내는 가중치에 대응할 수 있다. 일부의 경우에는, GPU 메모리 컴퓨팅 부분(448)은 여러 사용자의 워크로드의 분석에 기반하여 실험적으로 도출된 값일 수 있다. 이와 같이, 일부의 경우에는, GPU 메모리 컴퓨팅 부분(448)은 일반적으로 워크로드의 변화를 설명하기 위해 미리결정된 시간에 조정가능한 동적 가중치인 것으로 설명될 수 있다.
GPU 메모리 속도 변환 유닛 생성기(440)는 GPU 메모리 속도 할당(450) 및 GPU 메모리 속도 컴퓨팅 부분(452)에 적어도 부분적으로 기반한 GPU 메모리 속도 변환 유닛(326)을 생성할 수 있다. 예를 들어, GPU 메모리 속도 변환 유닛(326)은 GPU 메모리 속도 할당(450)을 GPU 메모리 속도 컴퓨팅 부분(452)으로 나누어 생성될 수 있다.
GPU 메모리 속도 할당(450)은 사용자가 접근가능한 GPU 메모리의 클럭 속도에 해당한다. 예를 들어, 물리적 GPU 메모리의 클럭 속도의 일부만이 하나 이상의 사용자의 워크로드(들)에 할당될 수 있다. 즉, 할당된 GPU 메모리의 사용가능한 클럭 속도는 물리적 GPU 메모리의 디폴트 클럭 속도보다 낮을 수 있다. GPU 메모리 속도 컴퓨팅 부분(452)은 일반적으로 하나 이상의 워크로드(110)에 의해 사용되는 GPU 메모리 속도 자원을 나타내는 가중치에 대응할 수 있다. 일부의 경우에는, GPU 메모리 컴퓨팅 부분(452)은 여러 사용자의 워크로드의 분석에 기반한 실험적으로 도출된 값일 수 있다. 이와 같이, 일부의 경우에는, GPU 메모리 속도 컴퓨팅 부분(452)은 일반적으로 워크로드의 변화를 설명하기 위해 미리결정된 시간에 조정가능한 동적 가중치로 설명될 수 있다.
GPU 프로세서 컴퓨팅 부분(444), GPU 메모리 컴퓨팅 부분(448) 및 GPU 메모리 속도 컴퓨팅 부분(452)의 합은 100이 될 수 있다. 즉, 각 컴퓨팅 부분은 컴퓨팅 부분을 100으로 나누어 제2 자원 변환 유닛 생성기(404)에 의해 평가된 총 컴퓨팅 자원의 백분율로 표시될 수 있다.
앞서 설명된 바와 같이, 물리적 컴퓨팅 자원(108)은 추가적으로 또는 대안적으로 다른 자원(209)을 포함할 수 있다. 설명한 바와 같이, 다른 자원(209)은 필드 프로그래머블 게이트 어레이(FPGA), 텐서 프로세싱 유닛(TPU), 지능 처리 유닛(IPU), 신경 처리 유닛(NPU), 비전 처리 유닛(VPU), 디지털 신호 처리기(DSP), 가속 처리 유닛(APU), 주문형 집적 회로(ASIC), 시스템 온 칩(SoC), 프로그래머블 SoC, 주문형 표준 부품(ASSP), 적응형 컴퓨팅 가속 플랫폼(ACAP), 마이크로 컨트롤러 및/또는 기타 컴퓨팅 자원 중 임의의 하나 이상을 포함할 수 있다. 이러한 경우에, 자원 변환 유닛은 각각 다른 컴퓨팅 자원(209) 중 각각에 대응하는 독립적인 자원 변환 유닛 생성기를 사용하여 결정될 수 있다. 예를 들어, 변환 유닛 생성기(400)는 다른 자원 변환 유닛 생성기(454)를 포함할 수 있다. 다른 자원 변환 유닛 생성기(454)는 각각의 하나 이상의 다른 자원(209)에 대응하는 하나 이상의 변환 유닛을 생성하도록 구성될 수 있다.
도 5는, 예를 들어, 도 1의 시스템에서 사용될 수 있는 단일 측정 유닛으로서 이종의 컴퓨팅 자원의 사용을 정량화하기 위한 방법(500)의 예시적인 흐름도를 보여준다. 방법(500)은 하나 이상의 프로세서(예를 들어, CPU(202))에 의해 실행되도록 구성된 하나 이상의 비-일시적 컴퓨터 판독가능 매체(예를 들어, 저장 디바이스(206))에서 하나 이상의 명령어로서 구현될 수 있다.
도시된 바와 같이, 방법(500)은 단계(502)를 포함할 수 있다. 단계(502)는 워크로드(예를 들어, 워크로드(110))가 컴퓨팅 시스템(예를 들어, 컴퓨팅 시스템(104))에서 실행되게 하는 것을 포함할 수 있다. 일부의 경우에는, 워크로드는, 예를 들어, 디바이스(102)로부터의 요청의 수신에 응답하여 실행되도록 구성될 수 있다. 추가적으로 또는 대안적으로, 워크로드는 컴퓨팅 시스템의 동작에 의해 생기는 하나 이상의 유휴(idle) 프로세스를 포함할 수 있다.
방법(500)은 또한, 단계(504)를 포함할 수 있다. 단계(504)는 소정 시간 주기 (예를 들어, 1초, 10초, 1분, 1시간, 1일, 1주, 1개월, 1년 및/또는 기타 적절한 기간) 동안 워크로드의 실행에 의해 사용된(예를 들어, 소비된) 물리적 자원의 양을 측정하는 것을 포함할 수 있다. 가상 자원 사용량을 측정하는 하이퍼바이저가 사용할 수 있는 벌루닝 기술(ballooning technique)에 의해 사용되는 부정확한 판독 값을 방지하거나 완화하기 위해, 자원의 물리적(예를 들어, 가상 자원에 반대되는) 양을 측정할 수 있다. 또한, 물리적 자원을 직접 측정함으로써 가상 머신을 실행하지 않는 하드웨어를 포함하여 복수의 형태의 하드웨어 상에서 상기 방법을 구현할 수 있다. 따라서 패키지 소프트웨어(예를 들어, 컨테이너)를 사용하는 시스템에서도 상기 방법을 구현할 수 있다.
방법(500)은 단계(506)를 포함할 수 있다. 단계(506)는 사용된 물리적 자원의 측정을 정규화하는 것을 포함할 수 있다. 측정을 정규화하는 것은 이종 자원(예를 들어, CPU 자원, 메모리 자원, 스토리지 자원, 네트워크 인터페이스 자원, GPU 자원 및/또는 임의의 다른 컴퓨팅 자원)의 각각을 공통 유닛(예를 들어, 도 3 및 도 4와 관련하여 기술한 내용을 참조)으로 변환하는 것을 포함할 수 있다.
방법(500)은 단계(508)를 포함할 수 있다. 단계(508)는 정규화된 측정치를 합산하는 것을 포함할 수 있다. 방법(500)은 또한, 단계(510)를 포함할 수 있다. 단계(510)는 합산된 정규화된 사용된 자원을 나타내는 단일 값을 생성하는 것을 포함할 수 있다. 예를 들어, 생성된 단일 값은 합산된 결과일 수 있다. 다른 경우에는, 생성된 값은 시간 창(time window) 동안 합산된 정규화된 자원의 평균(예를 들어, 개별적으로 합산된 정규화된 값이 요일에 관련된 주간 평균)을 나타낼 수 있다.
도 6은, 예를 들어, 도 1의 시스템에서 사용될 수 있는 단일 측정 유닛으로서 이종의 컴퓨팅 자원들의 최대 또는 최소 값을 정량화하기 위한 방법(600)의 예시적인 흐름도를 보여준다. 상기 방법은 하나 이상의 프로세서(예를 들어, CPU(202))에 의해 실행되도록 구성된 하나 이상의 비일시적 컴퓨터 판독가능 매체(예를 들어, 저장 디바이스(206))에서 하나 이상의 명령어로서 구현될 수 있다.
상기 방법은 단계(602)를 포함할 수 있다. 단계(602)는 소정 시간 주기 동안 이용가능한 최대 물리적 자원의 양을 측정하고/하거나 유휴 프로세스(예를 들어, 유휴 프로세스(113))를 실행하기 위한, 소정 시간 주기 동안 이용가능한 최소 물리적 자원의 양을 측정하는 것을 포함할 수 있다.
상기 방법은 단계(604)를 포함할 수 있다. 단계(604)는 이용가능한 이종의 물리적 자원(예를 들어, 사용된 자원 및 비활성 자원 모두)의 측정을 정규화하는 것을 포함할 수 있다. 측정을 정규화하는 것은, 이종 자원(예를 들어, CPU 자원, 메모리 자원, 스토리지 자원, 네트워크 인터페이스 자원, GPU 자원 및/또는 임의의 다른 컴퓨팅 자원) 각각을 공통 유닛(예를 들어, 도 3a-c 및 도 4와 관련하여 설명한 내용을 참조)으로 변환하는 것을 포함할 수 있다.
상기 방법은 또한, 단계(606)를 포함할 수 있다. 단계(606)는 이용가능한 물리적 자원의 정규화된 측정 값을 합산하는 것을 포함할 수 있다. 상기 방법은 단계(608)를 포함할 수 있다. 단계(608)는 이용가능한 합산된 정규화된 자원을 나타내는 단일 값을 생성하는 것을 포함할 수 있다. 예를 들어, 생성된 단일 값은 합산된 결과일 수 있다. 추가 예로서, 생성된 단일 값은 합산된 결과에 기반하여 조정된 값일 수 있다.
일부의 경우에는, 소정 시간 주기 동안 사용가능한 물리적 컴퓨팅 자원의 최대 및/또는 최소 양은 개별 물리적 컴퓨팅 자원에 대응하는 사양에 적어도 부분적으로 기반하여 계산될 수 있다. 이로써 사용자는 물리적 컴퓨팅 자원에 대한 액세스없이 사용가능한 물리적 컴퓨팅 자원의 최대 및/또는 최소 양을 추정할 수 있다. 일부의 경우에는, 계산된 값은 방법(600)에서 측정된 값과 비교될 수 있다. 예를 들어, 계산된 값은 개별 컴퓨팅 자원 및/또는 이러한 계산 방법에 대응하는 사양을 조정하기 위해 측정된 값과 비교될 수 있어서, 사용가능한 물리적 컴퓨팅 자원의 최대 및/또는 최소 양의 추정이 개선될 수 있다.
본 개시의 일 양상에 따르면, 하나의 컴퓨팅 네트워크가 제공된다. 컴퓨팅 네트워크는 적어도 하나의 워크로드를 실행하도록 구성된 물리적 컴퓨팅 자원을 포함할 수 있다. 컴퓨팅 네트워크는 또한 소정 시간 주기 동안 사용중인 물리적 컴퓨팅 자원의 양을 측정하도록 구성된 계측기를 포함할 수 있다. 계측기는 소정 시간 주기 동안 사용된 물리적 자원의 양을 나타내는 단일 사용량 값을 생성할 수 있다.
본 개시의 다른 양상에 따르면, 하나 이상의 프로세서에 의해 실행될 때 하나 이상의 프로세서가 하나 이상의 동작을 수행하게 하는 명령어가 저장된 적어도 하나의 컴퓨터 판독가능 저장 매체가 제공된다. 하나 이상의 동작은 소정 시간 주기 동안 사용중인 하나 이상의 물리적 컴퓨팅 자원의 양을 측정하는 것을 포함할 수 있다. 하나 이상의 동작은 또한 사용중인 각각의 물리적 컴퓨팅 자원의 각각의 측정된 양을 정규화하는 것을 포함할 수 있다. 하나 이상의 동작은 사용중인 물리적 컴퓨팅 자원의 정규화된 측정된 양을 합산하는 것을 더 포함할 수 있다. 하나 이상의 동작은 또한, 합산된 정규화된 물리적 컴퓨팅 자원에 기반하여, 그 시간 주기 동안 사용중인 물리적 컴퓨팅 자원을 나타내는 단일 사용량 값을 생성하는 것을 포함할 수 있다.
본 개시의 또 다른 양상에 따르면, 하나의 방법이 제공된다. 상기 방법은 소정 시간 주기 동안 사용중인 하나 이상의 물리적 컴퓨팅 자원의 양을 측정하는 단계를 포함할 수 있다. 상기 방법은 또한, 사용중인 각각의 물리적 컴퓨팅 자원의 각각의 측정된 양을 정규화하는 단계를 포함할 수 있다. 상기 방법은 사용중인 물리적 컴퓨팅 자원의 정규화된 측정된 양을 합산하는 단계를 더 포함할 수 있다. 상기 방법은 또한, 합산된 정규화된 물리적 컴퓨팅 자원에 기반하여 그 시간 주기 동안 사용중인 물리적 컴퓨팅 자원을 나타내는 단일 사용량 값을 생성하는 단계를 포함할 수 있다.
본 개시의 또 다른 양상에 따르면, 하나의 컴퓨팅 네트워크가 제공된다. 컴퓨팅 네트워크는 디바이스에 통신 가능하게 결합되도록 구성된 컴퓨팅 시스템을 포함할 수 있다. 상기 컴퓨팅 시스템은 적어도 하나의 워크로드를 실행하도록 구성될 수 있다. 상기 컴퓨팅 시스템은 적어도 하나의 워크로드를 실행하도록 구성된 물리적 컴퓨팅 자원을 포함할 수 있다. 상기 컴퓨팅 시스템은 또한, 소정 시간 주기 동안 사용중인 물리적 컴퓨팅 자원의 양을 측정하도록 구성된 계측기를 포함할 수 있다. 계측기는 그 시간 주기 동안 사용된 물리적 자원의 양을 나타내는 단일 사용량 값을 생성할 수 있다.
본 개시의 또 다른 양상에 따르면, 이종의 컴퓨터 자원을 측정하기 위한 하나의 시스템이 제공된다. 계측기는 적어도 하나의 수집기를 포함할 수 있다. 수집기는 소정 시간 주기 동안 적어도 하나의 컴퓨팅 시스템으로부터 하나 이상의 메트릭을 수신하도록 구성된 적어도 하나의 메트릭 수신기를 포함할 수 있으며, 여기서 메트릭은 물리적 자원 사용량에 대응한다. 계측기는 또한 수신된 메트릭 각각을 정규화하고, 그 시간 주기 동안 물리적 자원 사용량을 나타내는 단일 사용량 값을 생성하기 위해, 정규화된 메트릭을 합산하도록 구성된 적어도 하나의 분석 플랫폼을 포함할 수 있다.
본 개시의 또 다른 양상에 따르면, 하나의 컴퓨팅 네트워크가 제공된다. 상기 컴퓨팅 네트워크는 하나 이상의 워크로드를 실행하도록 구성된 복수의 물리적 컴퓨팅 자원 및 컴퓨팅 시스템에 통신 가능하게 연결된 계측기를 갖는 컴퓨팅 시스템을 포함할 수 있다. 계측기는 소정 시간 주기 동안 사용중인 물리적 컴퓨팅 자원의 양을 측정하도록 구성될 수 있다. 계측기는 컴퓨팅 시스템으로부터 하나 이상의 메트릭을 수신하도록 구성된 적어도 하나의 메트릭 수신기를 포함하는 적어도 하나의 수집기를 포함할 수 있으며, 메트릭은 사용된 물리적 자원의 양에 대응한다. 계측기는 또한, 수신된 메트릭 각각을 정규화하고 소정 시간 주기 동안 물리적 자원 사용량을 나타내는 단일 사용량 값을 생성하기 위해 정규화된 메트릭을 합산하도록 구성된, 수집기와 통신하는 적어도 하나의 분석 플랫폼을 포함할 수 있다.
본 개시의 또 다른 양상에 따르면, 하나의 컴퓨팅 네트워크가 제공된다. 상기 컴퓨팅 네트워크는 디바이스에 통신 가능하게 결합되도록 구성된 컴퓨팅 시스템을 포함할 수 있다. 상기 컴퓨팅 시스템은 적어도 하나의 워크로드를 실행하도록 구성될 수 있다. 상기 컴퓨팅 시스템은 적어도 하나의 워크로드를 실행하도록 구성된 물리적 컴퓨팅 자원을 포함할 수 있다. 상기 컴퓨팅 시스템은 계측기와 통신하도록 구성될 수 있다. 계측기는 사용중인 물리적 컴퓨팅 자원의 양을 측정하도록 구성될 수 있으며, 계측기는 사용된 물리적 자원의 양을 나타내는 단일 사용량 값을 생성하도록 추가로 구성된다.
본 개시의 또 다른 양상에 따르면, 하나의 컴퓨팅 네트워크가 제공된다. 상기 컴퓨팅 네트워크는 하나 이상의 워크로드를 실행하도록 구성된 복수의 물리적 컴퓨팅 자원을 갖는 컴퓨팅 시스템을 포함할 수 있다. 상기 컴퓨팅 네트워크는 또한 컴퓨팅 시스템으로부터 하나 이상의 메트릭을 수신하도록 구성된 적어도 하나의 메트릭 수신기를 갖는 적어도 하나의 메트릭 수집기를 포함할 수 있으며, 여기서 하나 이상의 메트릭은 물리적 컴퓨팅 자원의 사용에 대응한다. 상기 컴퓨팅 네트워크는 컴퓨팅 시스템으로부터 하나 이상의 메트릭을 수신하도록 구성된 백업 수신기를 갖는 적어도 하나의 백업 수집기를 더 포함할 수 있다. 상기 컴퓨팅 네트워크는 또한, 메트릭 수집기 또는 백업 수집기 중 적어도 하나와 통신하는 적어도 하나의 분석 플랫폼을 포함할 수 있으며, 여기서 분석 플랫폼은 수신된 메트릭 각각을 정규화하고 단일 사용량 값을 생성하기 위해 정규화된 메트릭을 합산하도록 구성될 수 있다.
본 개시의 또 다른 양상에 따르면, 이종의 컴퓨터 자원을 측정하기 위한 하나의 시스템이 제공된다. 상기 시스템은 적어도 하나의 메트릭 수신기 및 계정 관리자를 포함하는 적어도 하나의 수집기를 포함할 수 있다. 메트릭 수신기는 적어도 하나의 컴퓨팅 시스템으로부터 하나 이상의 메트릭을 수신하도록 구성될 수 있으며, 여기서 메트릭은 물리적 자원 사용량에 대응한다. 계정 관리자는 복수의 계정을 관리하도록 구성될 수 있다. 복수의 계정 각각은 적어도 하나의 자원 소비 사용자와 연관될 수 있으며, 여기서 각 자원 소비 사용자의 물리적 자원 사용량은 각각의 계정과 연관된다. 시스템은 또한 물리적 자원 사용량의 유닛당 비용을 나타내는 하나 이상의 계정에 대한 벤치 마크를 생성하도록 구성된 사용량 분석기를 포함할 수 있다.
본 개시의 또 다른 양상에 따르면, 하나의 컴퓨팅 네트워크가 제공된다. 상기 컴퓨팅 네트워크는 디바이스에 통신 가능하게 결합되도록 구성된 컴퓨팅 시스템을 포함할 수 있다. 상기 컴퓨팅 시스템은 또한 적어도 하나의 워크로드를 실행하도록 구성될 수 있다. 상기 컴퓨팅 시스템은 적어도 하나의 워크로드를 실행하도록 구성된 물리적 컴퓨팅 자원을 포함할 수 있다. 상기 컴퓨팅 네트워크는 또한 소정 시간 주기 동안 사용중인 물리적 컴퓨팅 자원의 양을 측정하고 그 시간 주기 동안 사용된 물리적 자원의 양을 나타내는 단일 사용량 값을 생성하도록 구성된 계측기를 포함할 수 있다. 계측기는 또한 컴퓨팅 시스템의 적어도 일부에 대한 디바이스에 의한 액세스를 선택적으로 비활성화하도록 구성될 수 있다.
본 개시 내용의 또 다른 양상에 따르면 하나의 방법이 제공된다. 상기 방법은 소정 시간 주기 동안 사용중인 복수의 물리적 컴퓨팅 자원의 양을 측정하는 것을 포함할 수 있다. 상기 방법은 또한, 사용중인 각각의 물리적 컴퓨팅 자원의 각각의 측정된 양을 정규화하는 단계를 포함할 수 있다. 상기 방법은 또한, 소정 시간 주기 동안 사용중인 물리적 컴퓨팅 자원을 나타내는 단일 사용량 값을 생성하기 위해 사용중인 물리적 컴퓨팅 자원의 정규화된 측정된 양을 합산하는 단계를 포함할 수 있다.
일부의 경우에는, 복수의 물리적 컴퓨팅 자원은 복수의 이종의 물리적 컴퓨팅 자원을 포함할 수 있다. 일부의 경우에는, 상기 복수의 물리적 컴퓨팅 자원은 그래픽 처리 시스템, 필드 프로그래머블 게이트 어레이, 주문형 집적 회로, 시스템 온 칩, 디지털 신호 처리기, 마이크로 컨트롤러 또는 적응형 컴퓨팅 가속 플랫폼 중 하나 이상을 포함할 수 있다. 일부의 경우에는, 복수의 물리적 컴퓨팅 자원은 그래픽 처리 시스템을 포함할 수 있고, 그래픽 처리 시스템은 그래픽 프로세서 및 그래픽 메모리를 포함할 수 있다. 일부의 경우에는, 상기 방법은 소정의 시간 주기 동안 사용가능한 복수의 물리적 컴퓨팅 자원의 최대 양을 측정하는 단계, 각각의 사용가능한 물리적 컴퓨팅 자원의 각각의 측정된 최대 양을 정규화하는 단계, 및 소정 시간 주기 동안 사용가능한 물리적 컴퓨팅 자원의 최대 양을 나타내는 단일 사용가능한 자원 값을 생성하기 위해 사용가능한 물리적 컴퓨팅 자원의 정규화된 측정된 최대 양을 합산하는 단계를 더 포함할 수 있다.
본 개시의 또 다른 양상에 따르면, 하나의 컴퓨팅 네트워크가 제공된다. 상기 컴퓨팅 네트워크는 하나 이상의 워크로드를 실행하도록 구성된 복수의 물리적 컴퓨팅 자원을 갖는 하나 이상의 컴퓨팅 시스템을 포함할 수 있다. 상기 컴퓨팅 네트워크는 또한, 하나 이상의 메트릭 수집기를 포함할 수 있으며, 각각의 메트릭 수집기는 하나 이상의 컴퓨팅 시스템으로부터 복수의 메트릭을 수신하도록 구성된 적어도 하나의 메트릭 수신기를 갖는다. 복수의 메트릭은 물리적 컴퓨팅 자원의 사용에 대응할 수 있다. 상기 컴퓨팅 네트워크는 또한, 각각의 수신된 메트릭을 정규화하도록 구성된 하나 이상의 분석 플랫폼을 포함할 수 있다.
일부의 경우에는, 하나 이상의 분석 플랫폼은 단일 사용량 값을 생성하기 위해 정규화된 메트릭을 합산하도록 추가로 구성될 수 있다. 일부의 경우에는, 물리적 컴퓨팅 자원 사용량의 적어도 일부가 하나 이상의 계정과 연관될 수 있다. 일부의 경우에는, 하나 이상의 계정이 복수의 계정을 포함할 수 있으며, 적어도 하나의 계정은 물리적 컴퓨팅 자원 사용량의 일부와 연관될 수 있으며, 적어도 하나의 다른 계정은 물리적 컴퓨팅 자원의 다른 부분과 연관될 수 있다. 일부의 경우에는, 메트릭 수집기 중 적어도 하나는 하나 이상의 플러그인을 갖는 플러그인 데이터베이스를 더 포함할 수 있으며, 여기서 하나 이상의 플러그인은 메트릭 수집기 중 적어도 하나가 하나 이상의 컴퓨팅 시스템과 통신할 수 있도록 구성될 수 있다. 일부의 경우에는, 분석 플랫폼은 임계 값에 대한 물리적 컴퓨팅 자원 사용량의 비교에 적어도 부분적으로 기반하여 알림을 생성하도록 구성될 수 있다. 일부의 경우에는, 하나 이상의 분석 플랫폼은 복수의 분석 플랫폼을 포함할 수 있으며 분석 플랫폼 중 적어도 하나는 백업 분석 플랫폼이 될 수 있다. 일부의 경우에는, 하나 이상의 분석 플랫폼은 소정의 시간에 적어도 하나의 메트릭 수집기를 활성화 또는 비활성화하도록 구성될 수 있다. 일부의 경우에는, 메트릭 수집기 중 적어도 하나는 하나 이상의 분석 플랫폼 중 적어도 하나를 포함할 수 있다. 일부의 경우에는, 하나 이상의 메트릭 수집기는 복수의 메트릭 수집기를 포함할 수 있고, 복수의 메트릭 수집기 중 적어도 하나는 백업 메트릭 수집기일 수 있다. 일부의 경우에는, 분석 플랫폼은 피크 사용량(예를 들어, 최대 사용량), 트로프(trough) 사용량(예를 들어, 최소 사용량) 또는 그 시간 주기 동안 각 물리적 컴퓨팅 자원에 해당하는 평균 사용량 중 하나 이상을, 수신된 메트릭에 적어도 부분적으로 기반하여 결정하도록 추가로 구성될 수 있다.
본 개시의 또 다른 양상에 따르면, 하나 이상의 프로세서에 의해 실행될 때 하나 이상의 동작이 수행되게 하는 하나 이상의 명령어가 저장된 하나 이상의 컴퓨터 판독가능 저장 매체가 제공된다. 상기 동작은 소정 시간 주기 동안 사용중인 복수의 물리적 컴퓨팅 자원의 양을 측정하는 것을 포함할 수 있다. 상기 동작은 또한, 사용중인 각각의 물리적 컴퓨팅 자원의 각각의 측정된 양을 정규화하는 것을 포함할 수 있다. 상기 동작은 또한, 소정 시간 주기 동안 사용중인 물리적 컴퓨팅 자원을 나타내는 단일 사용량 값을 생성하기 위해, 사용중인 물리적 컴퓨팅 자원의 정규화된 측정된 양을 합산하는 것을 포함할 수 있다.
일부의 경우에는, 복수의 물리적 컴퓨팅 자원은 복수의 이종의 물리적 컴퓨팅 자원을 포함할 수 있다. 일부의 경우에는, 복수의 물리적 컴퓨팅 자원은 그래픽 처리 시스템, 필드 프로그래머블 게이트 어레이, 주문형 집적 회로, 시스템 온 칩, 디지털 신호 처리기, 마이크로 컨트롤러 또는 적응형 컴퓨팅 가속 플랫폼 중 하나 이상을 포함할 수 있다. 일부의 경우에는, 복수의 물리적 컴퓨팅 자원은 그래픽 처리 시스템을 포함할 수 있고 그래픽 처리 시스템은 그래픽 프로세서 및 그래픽 메모리를 포함할 수 있다. 일부의 경우에는, 상기 동작은, 그 시간 주기 동안 사용가능한 복수의 물리적 컴퓨팅 자원의 최대 양을 측정하는 것, 각각의 사용가능한 물리적 컴퓨팅 자원의 각각의 측정된 최대 양을 정규화하는 것, 및, 그 시간 주기 동안 사용가능한 물리적 컴퓨팅 자원의 최대 양을 나타내는 단일의 사용가능한 자원 값을 생성하기 위해, 사용가능한 물리적 컴퓨팅 자원의 표준화된 측정된 최대 양을 합산하는 것을 더 포함할 수 있다. 일부의 경우에는, 상기 동작은 또한 플러그인 데이터베이스에 액세스하는 것을 포함할 수 있으며, 여기서 플러그인 데이터베이스는 복수의 물리적 컴퓨팅 자원의 측정을 가능하게하도록 구성된 하나 이상의 플러그인을 포함할 수 있다. 일부의 경우에는, 상기 동작은 피크 사용량(예를 들어, 최대 사용량), 트로프 사용량(예를 들어, 최소 사용량), 또는 그 시간 주기 동안 각 물리적 컴퓨팅 자원에 해당하는 평균 사용량 중 하나 이상을 결정하는 단게를 더 포함할 수 있다.
본 개시 내용의 또 다른 양상에서 하나의 방법이 제공된다. 상기 방법은 소정 시간 주기 동안 사용중인 그래픽 처리 시스템 자원의 양을 측정하는 단계를 포함할 수 있으며, 그래픽 처리 시스템 자원은 그래픽 프로세서 및 그래픽 메모리를 포함할 수 있다. 상기 방법은 또한, 그래픽 프로세서 및 그래픽 메모리에 대응하는 측정된 양을 정규화하는 단계를 포함할 수 있다. 상기 방법은 또한, 소정 시간 주기 동안 사용중인 그래픽 처리 시스템 자원을 나타내는 단일의 사용량 값을 생성하기 위해, 정규화된 측정 양을 합산하는 단계를 포함할 수 있다.
본 개시 내용의 여러 실시예가 여기에 설명되고 예시되었지만, 당업자는 기능을 수행하고/하거나 결과 및/또는 본 명세서에 기술된 하나 이상의 이득을 획득하기 위한 다양한 다른 수단 및/또는 구조를 쉽게 구상할 것이며, 그러한 변형 및/또는 수정의 각각은 본 개시의 범위 내에 있는 것으로 간주된다. 보다 일반적으로, 당업자는 본 명세서에 설명된 모든 파라미터, 치수, 재료 및 구성이 예시로서 의도된 것이고, 실제의 파라미터, 치수, 재료 및/또는 구성이 특정 응용 또는 본 개시 내용의 교시가 사용된 응용들에 의존한다는 것을 쉽게 인식할 것이다.
당업자는 본원에 기술된 개시 내용의 특정 실시 양상의 많은 균등물을 인식하거나 또는 단지 통상의 실험을 사용하여 확인할 수 있을 것이다. 따라서, 전술한 실시예는 단지 예로서 제시된 것이며, 첨부된 청구범위 및 그것의 균등물의 범위 내에서, 본 개시 내용은 구체적으로 설명되고 청구된 것과 다르게 실시될 수도 있음을 이해해야 한다. 본 개시 내용은 본원에 기재된 각각의 개별적인 특징, 시스템, 물품, 재료, 키트 및/또는 방법에 관한 것이다. 또한, 2개 이상의 이러한 특징, 시스템, 물품, 재료, 키트 및/또는 방법의 임의의 조합은, 만약 그러한 특징, 시스템, 물품, 재료, 키트 및/또는 방법이 서로 일치하는 경우에는 본 개시의 범위 내에 포함된다.
본 명세서 및 청구범위에서 사용된 "소정의" 및 "하나의"는 반대로 명확하게 표시되지 않는 한, "적어도 하나"를 의미하는 것으로 이해되어야 한다.
본 명세서에서 사용중인 용어 "결합" 및 "결합된"은 명확하게 반대로 표시되지 않는 한, 직접 및 간접 커플링을 모두 포함한다.
본 명세서 및 청구범위에서 사용된 "및/또는"이라는 문구는 이렇게 결합된 요소, 즉 일부의 경우에는 결합적으로 존재하고 다른 경우에는 분리적으로 존재하는 요소의 "하나 또는 둘 모두"를 의미하는 것으로 이해되어야 한다. 달리 명확하게 표시되지 않는 한, 구체적으로 식별된 요소와 관련되거나 관련되지 않더라도, "및/또는" 절에 의해 구체적으로 식별된 요소 이외의 다른 요소가 선택적으로 존재할 수 있다.

Claims (23)

  1. 소정의 시간 주기 동안 사용중인 복수의 물리적 컴퓨팅 자원의 양을 측정하는 것;
    사용중인 각각의 물리적 컴퓨팅 자원의 각각의 측정된 양을 정규화하는 것; 및
    상기 시간 주기 동안 사용중인 상기 물리적 컴퓨팅 자원을 나타내는 단일 사용량 값을 생성하기 위해, 사용중인 상기 물리적 컴퓨팅 자원의 정규화된 측정된 양을 합산하는 것을 포함하는, 방법.
  2. 제1항에 있어서,
    상기 복수의 물리적 컴퓨팅 자원은, 복수의 이종의 물리적 컴퓨팅 자원을 포함하는, 방법.
  3. 제1항에 있어서,
    상기 복수의 물리적 컴퓨팅 자원은, 그래픽 처리 시스템, 필드 프로그래머블 게이트 어레이, 주문형 집적 회로, 시스템 온 칩, 디지털 신호 처리기, 마이크로 컨트롤러, 또는 적응형 컴퓨팅 가속 플랫폼 중의 하나 이상을 포함하는, 방법.
  4. 제3항에 있어서,
    상기 복수의 물리적 컴퓨팅 자원은 그래픽 처리 시스템을 포함하고,
    상기 그래픽 처리 시스템은 그래픽 프로세서 및 그래픽 메모리를 포함하는, 방법.
  5. 제1항에 있어서,
    상기 시간 주기 동안 사용가능한 복수의 물리적 컴퓨팅 자원의 최대 양을 측정하는 것;
    각각의 사용가능한 물리적 컴퓨팅 자원의 각각의 측정된 최대 양을 정규화하는 것; 및
    상기 시간 주기 동안 사용가능한 물리적 컴퓨팅 자원의 상기 최대 양을 나타내는 단일의 사용가능한 자원 값을 생성하기 위해, 상기 사용가능한 물리적 컴퓨팅 자원의 정규화된 측정된 최대 양을 합산하는 것을 더 포함하는, 방법.
  6. 하나 이상의 워크로드를 실행하도록 구성된 복수의 물리적 컴퓨팅 자원을 갖는 하나 이상의 컴퓨팅 시스템;
    하나 이상의 메트릭 수집기 - 각각의 상기 메트릭 수집기는 상기 하나 이상의 컴퓨팅 시스템으로부터 복수의 메트릭을 수신하도록 구성된 적어도 하나의 메트릭 수신기를 가지며, 상기 복수의 메트릭은 상기 물리적 컴퓨팅 자원의 사용량에 대응함 -; 및
    각각의 상기 수신된 메트릭을 정규화하도록 구성된 하나 이상의 분석 플랫폼을 포함하는, 컴퓨팅 네트워크.
  7. 제6항에 있어서,
    상기 하나 이상의 분석 플랫폼은, 단일 사용량 값을 생성하기 위해, 상기 정규화된 메트릭을 합산하도록 추가로 구성되는, 컴퓨팅 네트워크.
  8. 제6항에 있어서,
    상기 물리적 컴퓨팅 자원 사용량의 적어도 일부는, 하나 이상의 계정과 연관되는, 컴퓨팅 네트워크.
  9. 제8항에 있어서,
    상기 하나 이상의 계정은 복수의 계정을 포함하고,
    적어도 하나의 계정은, 상기 물리적 컴퓨팅 자원 사용량의 일부와 연관되고,
    적어도 하나의 다른 계정은 상기 물리적 컴퓨팅 자원 사용량의 다른 부분과 연관되는, 컴퓨팅 네트워크.
  10. 제6항에 있어서,
    상기 메트릭 수집기 중 적어도 하나는, 하나 이상의 플러그인을 갖는 플러그인 데이터베이스를 더 포함하고,
    상기 하나 이상의 플러그인은, 상기 메트릭 수집기 중 적어도 하나가 하나 이상의 컴퓨팅 시스템과 통신할 수 있도록 구성되는, 컴퓨팅 네트워크.
  11. 제6항에 있어서,
    상기 분석 플랫폼은,
    상기 물리적 컴퓨팅 자원 사용량과 임계값과의 비교에 적어도 부분적으로 기반하여 통보를 생성하도록 구성되는, 컴퓨팅 네트워크.
  12. 제6항에 있어서,
    상기 하나 이상의 분석 플랫폼,은 복수의 분석 플랫폼을 포함하고,
    상기 분석 플랫폼 중 적어도 하나는, 백업 분석 플랫폼인, 컴퓨팅 네트워크.
  13. 제6항에 있어서,
    상기 하나 이상의 분석 플랫폼은, 미리결정된 시간에, 상기 메트릭 수집기 중 적어도 하나를 활성화 또는 비활성화 하도록 구성되는, 컴퓨팅 네트워크.
  14. 제6항에 있어서,
    상기 메트릭 수집기 중 적어도 하나는, 상기 하나 이상의 분석 플랫폼 중 적어도 하나를 포함하는, 컴퓨팅 네트워크.
  15. 제6항에 있어서,
    상기 하나 이상의 메트릭 수집기는, 복수의 메트릭 수집기를 포함하고,
    상기 복수의 메트릭 수집기 중 적어도 하나는, 백업 메트릭 수집기인, 컴퓨팅 네트워크.
  16. 제6항에 있어서,
    상기 분석 플랫폼은, 상기 시간 주기 동안, 상기 수신된 메트릭에 적어도 부분적으로 기반하여, 각각의 물리적 컴퓨팅 자원에 대응하는 피크 사용량, 최저 사용량 또는 평균 사용량 중 하나 이상을 결정하도록 추가로 구성되는, 컴퓨팅 네트워크.
  17. 하나 이상의 프로세서에 의해 실행될 때 하나 이상의 동작이 수행되게 하는, 하나 이상의 명령어가 저장된 적어도 하나의 컴퓨터 판독가능 저장 매체로서,
    상기 동작은:
    소정의 시간 주기 동안 사용중인 복수의 물리적 컴퓨팅 자원의 양을 측정하는 것;
    사용중인 각각의 물리적 컴퓨팅 자원의 각각의 측정된 양을 정규화하는 것; 및
    상기 시간 주기 동안 사용중인 상기 물리적 컴퓨팅 자원을 나타내는 단일 사용량 값을 생성하기 위해, 사용중인 상기 물리적 컴퓨팅 자원의 상기 정규화된 측정된 양을 합산하는 것을 포함하는, 컴퓨터 판독가능 저장 매체.
  18. 제17항에 있어서,
    상기 복수의 물리적 컴퓨팅 자원은, 복수의 이종의 물리적 컴퓨팅 자원을 포함하는, 컴퓨터 판독가능 저장 매체.
  19. 제17항에 있어서,
    상기 복수의 물리적 컴퓨팅 자원은, 그래픽 처리 시스템, 필드 프로그래머블 게이트 어레이, 주문형 집적 회로, 시스템 온 칩, 디지털 신호 처리기, 마이크로 컨트롤러, 또는 적응형 컴퓨팅 가속 플랫폼 중 하나 이상을 포함하는, 컴퓨터 판독가능 저장 매체.
  20. 제19항에 있어서,
    상기 복수의 물리적 컴퓨팅 자원은, 그래픽 처리 시스템을 포함하고,
    상기 그래픽 처리 시스템은, 그래픽 프로세서 및 그래픽 메모리를 포함하는, 컴퓨터 판독가능 저장 매체.
  21. 제17항에 있어서,
    상기 동작은:
    상기 시간 주기 동안 사용가능한 복수의 물리적 컴퓨팅 자원의 최대 양을 측정하는 것;
    각각의 사용가능한 물리적 컴퓨팅 자원의 각각의 측정된 최대 양을 정규화하는 것; 및
    상기 시간 주기 동안 사용가능한 복수의 물리적 컴퓨팅 자원의 상기 최대 양을 나타내는 단일 사용가능한 자원 값을 생성하기 위해, 사용가능한 물리적 컴퓨팅 자원의 상기 정규화된 측정된 최대 양을 합산하는 것을 더 포함하는, 컴퓨터 판독가능 저장 매체.
  22. 제17항에 있어서,
    상기 동작은, 플러그인 데이터베이스에 액세스하는 것을 더 포함하고,
    상기 플러그인 데이터베이스는, 하나 이상의 컴퓨팅 시스템의 상기 복수의 물리적 컴퓨팅 자원을 측정할 수 있도록 구성된 하나 이상의 플러그인을 포함하는, 컴퓨터 판독가능 저장 매체.
  23. 제17항에 있어서,
    상기 동작은, 상기 시간 주기 동안 각각의 물리적 컴퓨팅 자원에 대응하는 피크 사용량, 최저 사용량, 또는 평균 사용량 중 하나 이상을 결정하는 것을 더 포함하는, 컴퓨터 판독가능 저장 매체.
KR1020207027522A 2018-03-23 2019-03-22 단일 측정 유닛으로 이종의 컴퓨팅 자원들의 사용량을 정량화하는 방법 KR20210003093A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862647335P 2018-03-23 2018-03-23
US62/647,335 2018-03-23
US201862690533P 2018-06-27 2018-06-27
US62/690,533 2018-06-27
PCT/US2019/023712 WO2019183566A1 (en) 2018-03-23 2019-03-22 Quantifying usage of disparate computing resources as a single unit of measure

Publications (1)

Publication Number Publication Date
KR20210003093A true KR20210003093A (ko) 2021-01-11

Family

ID=67983574

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207027522A KR20210003093A (ko) 2018-03-23 2019-03-22 단일 측정 유닛으로 이종의 컴퓨팅 자원들의 사용량을 정량화하는 방법

Country Status (10)

Country Link
US (2) US10719364B2 (ko)
EP (2) EP4137947A1 (ko)
JP (2) JP7395558B2 (ko)
KR (1) KR20210003093A (ko)
CN (1) CN112088365A (ko)
AU (1) AU2019239098C1 (ko)
BR (1) BR112020018990A8 (ko)
CA (1) CA3094365A1 (ko)
SG (1) SG11202009256SA (ko)
WO (1) WO2019183566A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10861027B1 (en) * 2014-10-08 2020-12-08 Allstate Insurance Company Commercial insurance growth data for agents
US11232139B2 (en) 2018-06-29 2022-01-25 Lucid Software, Inc. Custom interactions with visualizations
EP3915024A4 (en) 2019-02-22 2022-10-26 Lucid Software, Inc. REVERSIBLE DATA TRANSFORMATIONS
US11100173B2 (en) 2019-06-18 2021-08-24 Lucid Software, Inc. Autolayout of visualizations based on graph data
US11868935B2 (en) * 2019-10-14 2024-01-09 YotaScale, Inc. System and method for allocating computer-based resources based on incomplete policy data
US20210125128A1 (en) * 2019-10-23 2021-04-29 Carolina Cloud Exchange Inc. Quantifying usage of disparate computing resources as a single unit of measure
US11803940B2 (en) 2019-10-23 2023-10-31 Schlumberger Technology Corporation Artificial intelligence technique to fill missing well data
US11775353B2 (en) * 2019-10-23 2023-10-03 Schlumberger Technology Corporation Mapping workloads to cloud infrastructure
US11263105B2 (en) * 2019-11-26 2022-03-01 Lucid Software, Inc. Visualization tool for components within a cloud infrastructure
US11169671B2 (en) 2019-11-26 2021-11-09 Lucid Software, Inc. Alteration of a source data visualization based on user input
WO2022018466A1 (en) * 2020-07-22 2022-01-27 Citrix Systems, Inc. Determining server utilization using upper bound values
CN112162820A (zh) * 2020-09-23 2021-01-01 广州六环信息科技有限公司 计时器的计时方法和装置
JP2022187285A (ja) * 2021-06-07 2022-12-19 富士通株式会社 管理装置,ストレージシステム及び情報処理方法
WO2023154100A1 (en) * 2022-02-14 2023-08-17 Microsoft Technology Licensing, Llc. Computing resource prediction for optimizing resource utilization and computing workload density
CN116436919B (zh) * 2023-06-13 2023-10-10 深圳市明源云科技有限公司 云资源消耗优化方法、装置、电子设备及可读存储介质

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE40866E1 (en) * 2000-09-27 2009-08-04 Huron Ip Llc System, method, and architecture for dynamic server power management and dynamic workload management for multiserver environment
US7444307B2 (en) 2003-06-26 2008-10-28 E. I. Du Pont De Nemours And Company Process for calculating the economic value created by a business activity
US7020758B2 (en) * 2002-09-18 2006-03-28 Ortera Inc. Context sensitive storage management
JP4207938B2 (ja) * 2005-02-01 2009-01-14 セイコーエプソン株式会社 ソフトウェア認証システム、ソフトウェア認証プログラム、およびソフトウェア認証方法
US20060277384A1 (en) * 2005-06-01 2006-12-07 Hitachi, Ltd. Method and apparatus for auditing remote copy systems
US8001601B2 (en) * 2006-06-02 2011-08-16 At&T Intellectual Property Ii, L.P. Method and apparatus for large-scale automated distributed denial of service attack detection
AU2008290256A1 (en) 2007-08-21 2009-02-26 Aqua Index Ltd. Water as commodity for financial investment
WO2009052657A1 (en) 2007-10-26 2009-04-30 Honeywell International Inc. System and method for visualizing trend data
US8316101B2 (en) * 2008-03-15 2012-11-20 Microsoft Corporation Resource management system for hosting of user solutions
CA2741465C (en) 2008-10-22 2013-10-15 6Fusion International Limited Method and system for determining computer resource usage in utility computing
WO2011093011A1 (ja) * 2010-01-29 2011-08-04 日本電気株式会社 情報処理装置及び情報処理方法
JP2011186546A (ja) 2010-03-04 2011-09-22 Nec System Technologies Ltd 負荷分散システム
US9208050B2 (en) * 2010-07-21 2015-12-08 Hewlett-Packard Development Company, L.P. Methods and apparatus to manage system performance information
WO2012025938A1 (en) * 2010-08-26 2012-03-01 Tata Consultancy Services Limited Generation of energy consumption profiles
US20120110460A1 (en) 2010-10-27 2012-05-03 Russell David Wilson Methods and Systems for Monitoring Network Performance
US20130031028A1 (en) 2011-07-25 2013-01-31 Bank Of America Exchange System Supporting Cloud Computing
US9196013B2 (en) * 2011-10-31 2015-11-24 Apple Inc. GPU workload prediction and management
US10909624B2 (en) 2012-05-02 2021-02-02 Aqua-Index Ltd. Fresh water price index based on water quality
US9389981B2 (en) 2012-09-12 2016-07-12 Microsoft Technology Licensing, Llc Hierarchical live graphs for performance data display
US20170249445A1 (en) * 2014-09-12 2017-08-31 Blacktree Fitness Technologies Inc. Portable devices and methods for measuring nutritional intake
EP4006727A1 (en) * 2015-05-29 2022-06-01 INTEL Corporation Container access to graphics processing unit resources
US10782990B1 (en) * 2015-11-24 2020-09-22 Amazon Technologies, Inc. Container telemetry
US10587875B2 (en) * 2017-03-01 2020-03-10 Intel Corporation Coding tools for subjective quality improvements in video codecs
US10635501B2 (en) * 2017-11-21 2020-04-28 International Business Machines Corporation Adaptive scaling of workloads in a distributed computing environment

Also Published As

Publication number Publication date
AU2019239098C1 (en) 2024-02-15
SG11202009256SA (en) 2020-10-29
CA3094365A1 (en) 2019-09-26
EP3769220A4 (en) 2022-04-13
US20200356413A1 (en) 2020-11-12
EP4137947A1 (en) 2023-02-22
WO2019183566A1 (en) 2019-09-26
US11934880B2 (en) 2024-03-19
CN112088365A (zh) 2020-12-15
JP2024023448A (ja) 2024-02-21
JP7395558B2 (ja) 2023-12-11
BR112020018990A2 (pt) 2021-03-09
BR112020018990A8 (pt) 2023-02-28
US20190294473A1 (en) 2019-09-26
AU2019239098B2 (en) 2023-11-16
JP2021519478A (ja) 2021-08-10
AU2019239098A1 (en) 2020-10-08
US10719364B2 (en) 2020-07-21
EP3769220A1 (en) 2021-01-27

Similar Documents

Publication Publication Date Title
US11934880B2 (en) Quantifying usage of disparate computing resources as a single unit of measure
JP7189997B2 (ja) 仮想コンピュータリソースのスケジューリングのためのローリングリソースクレジット
US10374919B2 (en) Resource manager
US9473374B2 (en) Integrated metering of service usage for hybrid clouds
AU2011293350B2 (en) Method and apparatus for clearing cloud compute demand
US8037187B2 (en) Resource exchange management within a cloud computing environment
US9112733B2 (en) Managing service level agreements using statistical process control in a networked computing environment
EP3126995B1 (en) Cloud computing benchmarking
US20210125128A1 (en) Quantifying usage of disparate computing resources as a single unit of measure
EP3143510A1 (en) Load generation application and cloud computing benchmarking
US20160269312A1 (en) System, method and program product for scheduling interventions on allocated resources with minimized client impacts
US20190095245A1 (en) System and Method for Apportioning Shared Computer Resources
Mytton Assessing the suitability of the Greenhouse Gas Protocol for calculation of emissions from public cloud computing workloads
Elmasry et al. An adaptive technique for cost reduction in cloud data centre environment
Mithani et al. Improving resource allocation in multi-tier cloud systems
Rossi et al. Non-invasive estimation of cloud applications performance via hypervisor's operating systems counters