KR20120026046A - 애플리케이션 효율 엔진 - Google Patents
애플리케이션 효율 엔진 Download PDFInfo
- Publication number
- KR20120026046A KR20120026046A KR1020117025481A KR20117025481A KR20120026046A KR 20120026046 A KR20120026046 A KR 20120026046A KR 1020117025481 A KR1020117025481 A KR 1020117025481A KR 20117025481 A KR20117025481 A KR 20117025481A KR 20120026046 A KR20120026046 A KR 20120026046A
- Authority
- KR
- South Korea
- Prior art keywords
- application
- hardware
- virtual
- statistics
- virtual machine
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3442—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5044—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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/3433—Recording 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 for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/815—Virtual
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
시스템과 방법이 제공된다. 하나 이상의 VM상에서 실행되는 애플리케이션에 대한 성능 및 용량 통계(performance and capacity statistics)가 접근(access)될 수 있고 수집될 수 있다. 수집된 성능 및 용량 통계는 VM상의 애플리케이션을 효율적으로 실행하기 위한 향상된 하드웨어 프로파일을 결정하기 위해 분석될 수 있다. 향상된 하드웨어 프로파일과 매칭되는 가상 하드웨어 구성(virtual hardware configuration)을 가진 VM은 애플리케이션을 실행하기 위해 스케쥴되고 분배(deploy)될 수 있다. VM에 대한 성능 및 용량 통계는 임계 조건이 발생하였는지 여부를 판정하기 위해 주기적으로 분석될 수 있다. 임계 조건이 발생한 것으로 판정되면 상이한 하드웨어 프로파일에 상응하는 상이한 구성을 가지는 VM에 대한 성능 및 용량 통계는, 업데이트되고 향상된 하드웨어 프로파일을 결정하기 위해, 자동적으로 분석될 수 있다. 애플리케이션을 실행하기 위한 VM은 업데이트되고 향상된 프로파일에 매칭하는 가상 하드웨어 구성으로 재분배될 수 있다.
Description
많은 현존하는 데이터 센터(data center)에서 프로세싱 장치(processing device)와 애플리케이션 활용(application utilization)은 최적보다 상당히 부족하다. 예를 들어, 데이터 센터 관리자는 많은 데이터 센터에서 프로세싱 장치 자원을 오버프로비저닝(overprovision)하고, 그 결과, 데이터 센터의 일부 프로세싱 장치는 단지 10%에서 30%의 로드만을 가질 수도 있고, 이로 인해 자원(resources)은 충분히 이용되지 못하는 상태로 방치된다. 프로세싱 장치는 일부 데이터 센터에서 가상 머신(virtual machines, VMs)을 실행한다. 왜냐하면 상이한 애플리케이션은 상이한 자원 요건(resource requirements)을 가지기 때문에, 범용 VMs의 표준 가설(standard assumption)을 만드는 것은 데이터 센터 프로세싱 장치에서 저하된(degraded) 애플리케이션 효율을 초래할 수도 있다.
본 요약은 이하 상세한 설명에서 더 자세히 기술될 개념의 일부를 간략한 형태로 소개하기 위해 제공된다. 본 요약은 청구된 주제의 중요 특징이나 본질적인 특성을 식별하기 위한 의도가 아닐 뿐만 아니라 청구된 주제의 범위를 제한하는 데 사용될 의도도 아니다.
본 개시물의 주제와 일치하는 실시예에서 시스템은 트렌딩 엔진(trending engine), 스케쥴러(scheduler), 모니터(monitor) 및 프로파일러(profiler)를 포함할 수 있다. 온보딩(on-boarding) 프로세스 동안, 트렌딩 엔진은 애플리케이션을 실행하는 가상 머신(virtual machine)의 성능 및 용량 통계(performance and capacity statistics)를 획득할 수 있다. 시스템은 획득된 성능 및 용량 통계를 분석하기 위해 프로파일러를 이용함으로써 향상된 하드웨어 프로파일(improved hardware profile)을 자동적으로 학습할 수 있다. 분석의 결과로서, 트렌딩 엔진은 애플리케이션을 실행하기 위한 향상된 하드웨어 프로파일을 도출할 수 있다. 스케쥴러는 도출된 향상된 하드웨어 프로파일(derived improved hardware profile)과 매칭하는 가상 하드웨어 구성을 가지는 하나 이상의 가상 머신을 스케쥴하고 분배(deploy)한다. 분배 후에, 모니터는 분배된 하나 이상의 가상 머신의 성능 및 용량 통계를 주기적으로 샘플링(sample) 할 수 있다. 모니터가 임계조건의 발생을 감지하면 모니터는 업데이트된 향상된 하드웨어 프로파일을 자동적으로 도출하기 위해 트렌딩 엔진과 프로파일러를 호출(invoke)할 수 있다. 그 다음에 스케쥴러는 도출된 업데이트되고 향상된 하드웨어 프로파일(derived updated improved hardware profile)과 매칭하는 가상 하드웨어 구성을 가진 하나 이상의 가상 머신을 재분배한다.
일부 실시예에서, 성능 및 용량 통계는 데이터 저장소(data repository)에 수집되고 저장될 수 있다. 프로파일러는 데이터 저장소에 저장된 성능 및 용량 통계를 분석할 수 있다. 성능 및 용량 통계는 적어도 하나의 가상 머신(VM)을 실행하는 하나 이상의 프로세싱 장치(processing device)에 의해 제공되고 유지될 수 있다. 하나 이상의 로드 밸런서(load balancer)는 애플리케이션 응답 시간(application response time)에 기초하여 하나 이상의 가상 머신 중에 애플리케이션을 위한 로드를 분배(distribute)할 수 있다.
상술한 그리고 다른 이점과 특징을 얻을 수 있는 방법을 설명하기 위해, 더 자세한 설명이 후술되고, 첨부하는 도면에 표시된 구체적인 실시예를 참조하여 표현될 것이다. 도면들은 단지 전형적인 실시예를 묘사하고 따라서 그 범위의 제한으로 고려되지 않아야 함을 이해해야 하며, 구현은 첨부하는 도면의 사용을 통해 추가로 구체적이고 상세하게 묘사되고 설명될 것이다.
도 1은 본 개시의 주제와 일치하는 시스템의 일 실시예가 구현될 수 있는 예시적인 동작 환경(operating environment)을 나타낸다.
도 2는 복수의 가상 머신(VMs)이 실행될 수 있는 예시적인 프로세싱 장치를 보여준다.
도 3은 실시예의 다양한 면을 구현하기 위해 사용될 수 있는 예시적인 프로세싱 장치를 나타낸다.
도 4는 본 개시의 주제와 일치하는 예시적인 시스템의 기능적인 구성요소를 나타내는 기능 블록도이다.
도 5는 본 개시의 주제와 일치하는 일 실시예를 구현할 수 있는 예시적인 프로세스를 나타내는 흐름도이다.
도 6은 자동적으로 애플리케이션을 프로파일링하고 향상된 하드웨어 프로파일을 도출하기 위한 예시적인 프로세스를 나타내는 흐름도이다.
도 7과 8은 향상된 하드웨어 프로파일을 도출할 때 수행될 수 있는 분석을 나타내는 그래프이다.도 9는 도출된 향상된 프로파일(derived improved profile)과 매칭하는 가상 하드웨어 구성을 갖는 가상 머신을 스케쥴링하고 분배하기 위한, 본 개시의 주제와 일치하는 실시예로 수행될 수 있는, 예시적인 프로세스를 설명하는 흐름도이다.
도 1은 본 개시의 주제와 일치하는 시스템의 일 실시예가 구현될 수 있는 예시적인 동작 환경(operating environment)을 나타낸다.
도 2는 복수의 가상 머신(VMs)이 실행될 수 있는 예시적인 프로세싱 장치를 보여준다.
도 3은 실시예의 다양한 면을 구현하기 위해 사용될 수 있는 예시적인 프로세싱 장치를 나타낸다.
도 4는 본 개시의 주제와 일치하는 예시적인 시스템의 기능적인 구성요소를 나타내는 기능 블록도이다.
도 5는 본 개시의 주제와 일치하는 일 실시예를 구현할 수 있는 예시적인 프로세스를 나타내는 흐름도이다.
도 6은 자동적으로 애플리케이션을 프로파일링하고 향상된 하드웨어 프로파일을 도출하기 위한 예시적인 프로세스를 나타내는 흐름도이다.
도 7과 8은 향상된 하드웨어 프로파일을 도출할 때 수행될 수 있는 분석을 나타내는 그래프이다.도 9는 도출된 향상된 프로파일(derived improved profile)과 매칭하는 가상 하드웨어 구성을 갖는 가상 머신을 스케쥴링하고 분배하기 위한, 본 개시의 주제와 일치하는 실시예로 수행될 수 있는, 예시적인 프로세스를 설명하는 흐름도이다.
이하에서, 실시예가 상세히 논의될 것이다. 구체적인 구현이 논의될 것이나, 이는 단지 설명의 목적임이 이해되어야 한다. 당업자는 본 개시의 주제의 사상과 범위로부터 벗어남 없이 다른 구성과 배열이 이용될 수 있음을 이해할 것이다.
개요(Overview)
본 개시의 주제와 일치하는 실시예에서, 데이터 센터(data center)는, 다양한 가상 하드웨어 구성(virtual hardware configuration)을 가지는 복수의 가상 머신(multiple VMs) 내에 애플리케이션을 로딩(loading)하기 위한 애플리케이션 효율 엔진(application efficiency engine)을 포함할 수 있다. 하나 이상의 로드 밸런서(load balancer)가, 가상 머신(VMs)에서 실행되는 애플리케이션 각각 결정된 응답 시간(determined response time)에 기초하여 복수의 가상 머신에 로드를 분배하기 위해 마련될 수 있다. 애플리케이션을 실행하는 VMs에 대한 성능 및 용량 통계(performance and capacity statistics)는 데이터 저장소(data repository)에 수집되고 저장될 수 있다. 데이터 저장소의 성능 및 용량 통계는, 자동적으로 애플리케이션을 프로파일하고 향상된 하드웨어 프로파일(improved hardware profile)을 도출(derive)하기 위해, 접근되고(accessed) 분석될(analyzed) 수 있다. 스케쥴러는 도출된 하드웨어 프로파일과 매칭하는 가상 하드웨어 구성(virtual hardware configuration)을 가지는 VM을 위해 이용가능한 자원(available resources)을 가지는 적어도 하나의 프로세싱 장치(processing device)를 결정할 수 있다. 스케쥴러는 이후 애플리케이션의 실행을 위해 VM을 분배(deploy)할 수 있다.
일부 실시예에서, 애플리케이션을 실행하는 VMs의 성능 및 용량 통계는 프로세싱 장치에 의해 모니터 될 수 있다. 프로세싱 장치는 성능 및 용량 통계뿐만 아니라 애플리케이션 응답 시간 통계(application response time statistics)를 저장할 수 있는 데이터 저장소에 접근할 수 있다. 대안적으로, 프로세싱 장치는 예를 들어, 로드 밸런서, 서버, 또는 다른 장치와 같은 하나 이상의 다른 장치에, VM상에서 실행되는 애플리케이션에 대한 성능 및 용량 통계와 애플리케이션 응답 시간 통계(통칭하여, 통계라고 지칭함)를 얻기 위해 질의(query)할 수 있다. 프로세싱 장치는 하나 이상의 VMs에서 실행되는 애플리케이션에 대해 임계 조건이 발생되었는지를 결정하기 위해 통계를 분석할 수 있다. 임계 조건은 다수의 조건 중 하나가 발생되었을 때 발생되는 것으로 결정될 수 있다. 일 실시예에서 조건은 아래와 같은 내용을 포함할 수 있다.
1. 적어도 제 1 주어진 시간의 기간 동안 지속되는, 애플리케이션을 실행하는 하나 이상의 VMs의 프로세서 활용(processor utilization)에서 제 1 사전 정의된 변화
2. 적어도 제 2 주어진 시간의 기간 동안 지속되는, 애플리케이션을 실행하는 하나 이상의 VMs의 메모리 할당에서 제 2 사전 정의된 변화
3. 적어도 제 3 주어진 시간의 기간 동안 지속되는, 애플리케이션을 실행하는 하나 이상의 VMs에 의해 사용되는 예를 들어, 하드 디스크 드라이브(hard disk drive) 또는 다른 매체(medium)와 같은 매체에 대한 입력/출력 활동의 양에서 제 3 사전 정의된 변화
4. 애플리케이션을 실행하는 하나 이상의 VMs에 관하여, 적어도 제 4 주어진 시간의 기간동안 지속되는, 네트워크 입력/출력량의 제 4 사전 정의된 변화, 및
5. 적어도 제 5 주어진 시간의 기간 동안 지속되는 하나 이상의 VMs에서 실행되는 애플리케이션의 애플리케이션 응답 시간의 제 5 사전 정의된 변화
상술된 임계 조건은 예시적이다. 본 개시의 주제와 일치하는 다른 실시예에서 추가적인 또는 다른 임계조건이 정의될 수 있다.
만약 임계 조건 중 적어도 하나가 발생한 것으로 결정되면, 애플리케이션 효율 엔진은 가변하는 가상 하드웨어 구성을 가지는 복수의 VMs내로 애플리케이션을 다시 로드할 수 있고, 통계는 자동적으로 애플리케이션을 프로파일하고 향상된 하드웨어 프로파일을 도출하기 위해 접근되고 분석될 수 있으며, 스케쥴러는 도출된 향상된 하드웨어 프로파일(derived improved hardware profile)과 매칭되는 가상 하드웨어 구성을 가지는 VM을 위한 이용가능한 자원을 가지는 적어도 하나의 프로세싱 장치를 다시 결정할 수 있다. 스케쥴러는 이후 도출된 향상된 하드웨어 구성과 매칭되는 가상 하드웨어 구성을 가지는 애플리케이션을 실행하기 위한 하나 이상의 VMs를 재분배할 수 있다.
예시적인 동작 환경(exemplary operating environment)
도 1은 본 개시의 주제와 일치하는 실시예를 위한 예시적인 동작 환경(100)을 나타낸다. 동작 환경(100)은 네트워크(102), 하나 이상의 로드 밸런서(104), 제 1 프로세싱 장치(106) 및 제 2 프로세싱 장치(108)를 포함할 수 있다.
네트워크(102)는 근거리 통신망(local area network) 또는 다른 네트워크 형태일 수 있다. 네트워크(102)는 유선(wired) 또는 무선(wireless) 네트워크일 수 있고 예를 들어 인터넷과 같은 다른 네트워크와 연결될 수 있다.
로드 밸런서(들)(104)는 같은 장소에 배치된(co-located) 프로세싱 장치 또는 네트워크(102)를 걸쳐 원격(remote) 프로세싱 장치와 통신할 수도 있다. 로드 밸런서(들)(104)가 예를 들어, 제 1 프로세싱 장치(들)(106)에 존재(reside)하는 복수의 VMs 중 하나를 실행하는 애플리케이션을 위한 데이터 또는 다른 정보와 같은 로드를 수신을 때, 로드 밸런서(들)(104)는 가장 짧은 애플리케이션 응답 시간을 갖는 제 1 프로세싱 장치(들)(106) 중 하나 상에서 애플리케이션을 실행하는 VMs 중 하나에 로드를 전달할 수 있다. 일부 동작 환경에서, 로드 밸런서(들)(104)는 상업적으로 이용 가능한 로드 밸런서일 수 있고, 이는 복수의 VMs 중 가장 짧은 애플리케이션 응답 시간을 가지는 VM에 로드를 전달한다. 로드 밸런서(들)(104)의 다양한 실시예는 하드웨어에서 구현될 수 있고, 또는 로드 밸런서(들)(104)에 포함된 프로세싱 장치상의 소프트웨어에서 구현될 수 있다. 일실시예에서 로드 밸런서(들)(104)는 워싱턴(Washington) 시애틀(Seattle)의 F5로부터 이용 가능한 로드 밸런서를 포함할 수 있다.
제 1 프로세싱 장치(들)(106)의 각각은 그들 상에서 실행되는 하나 이상의 VMs를 가질 수 있다. 일부 실시예에서 제 1 프로세싱 장치(들)(106)의 각각은 서버일 수 있다. VMs의 각각은 가상 하드웨어 구성을 가질 수 있고, VMs의 적어도 일부는 애플리케이션의 카피(copy)를 실행할 수 있다. 가상 하드웨어 구성은 예를 들어 코어 프로세서(core processors)와 같은 복수의 프로세서, 할당된 메모리의 양(an amount of allocated memory) 및 예를 들어 디스크 저장 공간(disk storage space) 또는 다른 저장 공간(other storage space)와 같은 할당된 저장 공간의 양(an amount of allocated memory space)을 포함할 수 있다. 일부 실시예에서, 가상 하드웨어 구성은 추가적인 또는 다른 구성 정보(configuration information)를 포함할 수 있다.
제 2 프로세싱 장치(들)(108)는 하나 이상의 프로세싱 장치를 포함할 수 있다. 제 2 프로세싱 장치(들)(108)는: 복수의 가상 하드웨어 구성을 가지는 VMs내의 애플리케이션의 실행에 사용하기 위한 프로파일러; 향상된 하드웨어 프로파일을 도출하기 위해 가변하는 가상 하드웨어 구성을 가지는 하나 이상의 VMs 상에서 실행되는 애플리케이션을 프로파일링하기 위한 트렌딩 엔진; 도출된 향상된 하드웨어 프로파일(derived improved hardware profile)과 매칭하는 가상 하드웨어 구성을 가지는 VM을 실행하기 위해 이용가능한 자원을 가지는 제 1 프로세싱 장치(들)(106) 중 하나를 결정하고 결정된 제 1 프로세싱 장치(들) 중 하나에 VM을 분배하기 위한 스케쥴러; 및 애플리케이션을 실행하는 VMs에 대하여 성능 및 용량 통계를 모니터링하고 적어도 하나의 임계조건이 발생했을 때 다른 향상된 하드웨어 프로파일을 도출하기 위해 반복된 사이클(cycle)을 야기하기 위한 모니터를 실행할 수 있다. 트렌딩 엔진, 프로파일러, 스케쥴러 및 모니터는 제 2 프로세싱 장치(들)(108) 중 동일 프로세싱 장치에서, 또는 제 2 프로세싱 장치(들)(108) 중별개의 프로세싱 장치에서 실행될 수 있고, 또는 트렌딩 엔진, 프로파일러, 스케쥴러, 그리고 모니터 중 적어도 하나는 트렌딩 엔진, 프로파일러, 스케쥴러, 모니터 중 다른 적어도 하나와 제 2 프로세싱 장치(들) 중 동일한 장치에서 실행되도록, 제 2 프로세싱 장치(들)(108) 중 복수의 프로세싱 장치에서 실행될 수 있다. 일부 실시예에서, 하나 이상의 제 2 프로세싱 장치(들)(108)는 또한 제 1 프로세싱 장치(들)(106)의 제 1 프로세싱 장치로서 포함될 수 있다. 다른 실시예에서, 프로세싱 장치(들)(108)는 제 1 프로세싱 장치(들)(106)에 포함되지 않을 수도 있다.
도 1에서 보여지는 동작 환경(operating environment)(100)은 예시적이며, 3개의 프로세싱 장치를 포함하는 제 1 프로세싱 장치(들)(108), 3개의 프로세싱 장치를 포함하는 제 2 프로세싱 장치(들)(108) 및 3개의 로드 밸런서를 포함하는 로드 밸런서(들)(104)를 나타낸다. 그러나, 다른 실시예에서, 제 1 프로세싱 장치(들)(106), 제 2 프로세싱 장치(들)(108) 및 로드 밸런서(들)(104)는 각각 더 많은 또는 더 작은 제 1 프로세싱 장치(들)(106), 제 2 프로세싱 장치(들)(108) 및 로드 밸런서(들)(104)을 포함할 수 있다.
도 2는 제 1 프로세싱 장치(들)(106)의 예시적인 프로세싱 장치(200)를 나타낸다. 예시적인 프로세싱 장치(200)는 복수의 VMs(202)를 포함할 수 있다. 예를 들어, 프로세싱 장치(200)는 4개의 코어 프로세서(core processors)를 포함하고, 이들 각각은 각 VM 사용을 위해 할당될 수 있다. 대안적으로, 상이한 수의 VMs가 프로세싱 장치(200)에서 실행하기 위해 할당될 수 있다. 예를 들어, 일부 VMs는 4개의 코어 프로세서 중 하나에 할당될 수 있고 다른 VMs는 4개의 코어 프로세서 중 두 개 이상이 할당될 수 있다.
프로세싱 장치(200)는 예시적인 프로세싱 장치이다. 다른 실시예에서, 프로세싱 장치(200)는 더 많은 혹은 적은 코어 프로세서를 포함할 수 있고 상이한 수의 VMs가 코어 프로세서 상에서 실행될 수 있다.
예시적인 프로세싱 장치(Exemplary processing device)
도 3은 예시적인 프로세싱 장치(300)의 기능도이며, 이는 본 개시의 주제와 일치하는 제 1 프로세싱 장치(106) 및/또는 제 2 프로세싱 장치(108)의 실시예를 구현하기 위해 사용될 수 있다. 프로세싱 장치(300)는 서버 또는 다른 형태의 프로세싱 장치일 수 있다. 프로세싱 장치(300)는 버스(310), 프로세서(320), 휘발성 메모리(random access memory)(RAM)(330), 비휘발성 메모리(read only memory)(ROM)(340), 입력장치(350), 출력장치(360), 저장장치(storage device)(365) 및 통신통신 인터페이스(communication interface)(370)를 포함할 수 있다. 버스(310)는 프로세싱 장치(300)의 구성요소 간의 통신통신을 허용할 수 있다.
프로세서(320)는 인스터럭션을 번역하여 실행하는 하나 이상의 통상적인 프로세서를 포함할 수 있다. 메모리는 프로세서(120)에 의한 실행을 위한 정보와 인스터럭션을 저장하는 RAM(330), ROM(340) 또는 다른 유형의 동적 또는 정적 저장 장치를 포함할 수 있다. RAM(330) 또는 다른 유형의 동적 저장 장치는 인스터럭션뿐만 아니라 프로세서(320)에 의해 인스터럭션의 실행 동안 사용되는 일시적 변수 또는 다른 중간 정보도 저장할 수 있다. ROM(140) 또는 다른 유형의 정적 저장 장치는 프로세서(320)를 위한 정적 정보 및 인스트럭션을 포함할 수 있다.
입력 장치(350)는 입력을 제공하기 위한 키보드, 포인팅 장치(pointing device), 전자펜(electronic pen), 터치스크린 또는 다른 장치를 포함할 수 있다. 출력 장치(360)는 정보를 출력하기 위한 디스플레이, 프린터, 또는 다른 장치를 포함할 수 있다. 저장 장치(365)는 데이터 및/또는 인스터럭션을 저장하기 위한 디스크와 디스크 드라이브, 광매체(optical medium), 또는 다른 매체를 포함할 수 있다. 통신통신 인터페이스(370)는 네트워크를 통해 장치와 유선 또는 무선 연결을 통해 통신통신하기 위한 트랜시버(transceiver)를 포함할 수 있다.
프로세싱 장치(300)는 예를 들어 RAM(330), ROM(340) 또는 다른 매체와 같은 유형의 기록 매체(tangible machine-readable medium)에 포함된 인스터럭션의 시퀀스(sequences)를 실행하는 프로세스(320)에 응답하여 기능을 수행할 수 있다. 그러한 인스터럭션은 통신 인터페이스(370)를 통해 다른 기록 매체 또는 분리된 장치로부터 RAM(330)으로 판독될 수 있다.
예시적인 시스템(Exemplary System)
도 4는 본 개시의 주제와 일치하는 애플리케이션 효율 엔진을 구현하기 위한 예시적인 시스템(400)의 기능도를 나타낸다. 시스템(400)은 프로파일러(402), 데이터 저장소(404), 모니터(406), 트렌딩 엔지(408), 하나 이상의 VMs(410), 스케쥴러(412) 및/또는 하나 이상의 로드 밸런서(들)(104)를 포함할 수 있다.
프로파일러(402)는 다양한 가상 하드웨어 구성을 가지는 VMs(410)을 실행하고 동일한 애플리케이션을 실행하는 프로세싱 장치(들)로부터 성능 및 용량 통계를 수집할 수 있다. 성능 및 용량 통계는 프로세서 활용도(processor utilization), 할당된 메모리의 양, 디스크 또는 다른 매체와 같은 매체에 대한 고정된 단위 시간당(per fixed unit) 입출력의 수 (예를 들어, 초 또는 다른 적절한 고정된 단위 시간), 매체 상에 가능한 및/또는 사용된 저장 공간의 양, 네트워크 활용도뿐만 아니라 다른 통계를 포함할 수 있다. 프로파일러(402)는 또한 애플리케이션 응답 시간 통계를 수집할 수 있다.
일부 실시예에서, 애플리케이션 응답 시간 통계는 로드 밸런서(들)(104)로부터 수집될 수 있다. 다른 실시예에서, 애플리케이션 응답 시간 통계는 다른 장치로부터 수집될 수 있다. 애플리케이션 응답 시간 통계는 임의의 VMs(410)에서 실행되는 애플리케이션에 의해 초당(또는 다른 적절한 고정된 시간 단위) 처리되는 복수의 트랜잭션(transaction)을 포함할 수 있다. 다른 실시예에서, 추가적인 또는 상이한 성능 및 용량 통계 및/또는 애플리케이션 응답 시간 통계가 수집될 수 있다.
일부 실시예에서, 프로파일러(402)는 제 1 프로세싱 장치(들)(106)와 로드 밸런서(들)(104) 각각으로부터 직접 성능 및 용량 통계와 애플리케이션 응답 시간 통계를 수집할 수 있다. 다른 실시예에서, 프로파일러(402)는 데이터 저장소(404)에 접근할 수 있고, 데이터 저장소는 제 1 또는 제 2 프로세싱 장치(들)(106,108)의 적어도 하나에 의해 각 자원(sources)으로부터 수집된 성능 및 용량 통계와 애플리케이션 응답 시간 통계를 저장할 수 있다.
모니터(406)는 제 1 및 제 2 프로세싱 장치(들)(106,108)의 적어도 하나 상에서 실행할 수 있다. 모니터(406)는 제 1 프로세싱 장치(들)(106)로부터 성능 및 용량 통계를, 로드 밸런서(들)(104) 및 다른 장치로부터 애플리케이션 응답 시간 통계를 얻을 수 있고, 데이터 저장소(404)에 성능 및 용량 통계와 애플리케이션 응답 시간뿐만 아니라 다른 정보를 저장할 수도 있다. 일부 실시예에서, 다른 정보는 시간 표시(time indication), 각 VM의 표시, 통계가 수집되는 제 1 프로세싱 장치(106) 중 특정 하나의 장치의 표시뿐만 아니라, 다른 데이터를 포함할 수 있다. 다른 실시예에서, 다른 정보는 추가적 또는 상이한 데이터를 포함할 수 있다.
트렌딩 엔진(408)은 제 1 및 제 2 프로세싱 장치(들)(106,108) 중 적어도 하나 상에서 실행할 수 있다. 트렌딩 엔진(408)은 수집된 성능 및 용량 통계뿐만 아니라 애플리케이션 응답 시간 통계에 접근할 수 있고, 이는 데이터 저장소(404)에 저장되거나 프로파일러(402)에 의해 제공될 수 있다. 트렌딩 엔진(408)은 향상된 하드웨어 프로파일을 도출하기 위해 통계를 분석할 수 있고, 트렌딩 엔진(408)은 이를 스케쥴러(412)에 제공한다.
스케쥴러(412)는 도출된 향상된 하드웨어 프로파일(derived improved hardware profile)을 지원하기 위해 이용 가능한 자원을 가지는 프로세싱 장치를 제 1 프로세싱 장치(들)(106)로부터 결정할 수 있다. 스케쥴러(412)는 이후, 결정된 프로세싱 장치상에, 도출된 향상된 하드웨어 프로파일과 매칭하는 가상 하드웨어 구성을 가지는 VM(410)을 스케쥴링하고 분배한다.
만약, 어느 시점에 모니터(406)가 애플리케이션을 실행하는 VM(410)에 대하여 임계 조건의 발생을 판정하면, 모니터(406)는 복수의 가상 하드웨어 구성을 가지는 VMs(410)을 스케쥴링하고 분배하기 위해 스케쥴러(412)에 통지할 수 있고, 모니터(406)는 또한, 업데이트되고 향상된 하드웨어 프로파일을 도출하기 위해 성능 및 용량 통계뿐만 아니라 애플리케이션 응답 시간 통계를 수집하기 위한 프로파일러(402)에 통지할 수도 있다. 대안적으로, 만약 모니터(406)가 애플리케이션을 실행하는 VM(410)에 대하여 임계 조건의 발생을 판정하면, 모니터(406)는 프로파일러(402)에 통지할 수 있는데, 프로파일러는 복수의 가상 하드웨어 구성을 가지는 VMs(410)을 스케쥴링하고 분배하기 위해 스케쥴러(412)에 통지할 수 있다. 프로파일러(402)는 이후 업데이트되고 향상된 하드웨어 프로파일을 도출하기 위해 성능 및 용량 통계뿐만 아니라 애플리케이션 응답 시간 통계를 수집할 수 있다. 이는 이하에 좀 더 자세히 설명될 것이다.
예시적인 프로세싱(Exemplary Processing)
도 5는 본 개시의 주제와 일치하는 다양한 실시예에서 실행될 수 있는 예시적인 프로세서의 흐름도다. 프로세스는 프로세싱 장치(들)(106)에 각각 가상 하드웨어 구성을 가지는 복수의 VMs(410)를 분배하는 스케쥴러(412)부터 시작한다(동작 502). 프로파일러(402)는 직접 장치로부터 예를 들어, 프로세싱 장치(들)(106)로부터 성능 및 용량 통계를, 로드 밸런서(들)(104) 또는 다른 장치로부터 애플리케이션 응답시간과 같은 통계를 수집할 수 있다(동작 504). 프로파일러(402)는 데이터 저장소(404)에 수집된 통계를 저장할 수 있고(동작 506) 애플리케이션을 프로파일하기 위해 트렌딩 엔진(408)을 호출하거나 트렌딩 엔진(408)에 통지할 수 있다. 트렌딩 엔진(408)은 애플리케이션을 자동적으로 프로파일하고 향상된 하드웨어 프로파일을 도출하기 위해 데이터 저장소(404)에 저장되어진 수집된 통계에 접근할 수 있다(동작 508).
도 6은 본 개시의 주제와 일치하는 실시예에서 트렌딩 엔진(408)에 대한 예시적인 프로세싱을 나타내는 흐름도다. 프로세스는 다양한 가상 하드웨어 구성에 대해 향상된 애플리케이션 효율을 학습하기 위해 데이터 저장소(404)에 저장된 통계에 접근하는 트렌딩 엔진(408)으로부터 시작한다(동작 602). 다음으로, 트렌딩 엔진(408)은 향상된 애플리케이션 효율을 달성(achieve)하기 위해 하드웨어 프로파일의 다양한 면을 분석할 수 있다(동작 604).
도 7과 8은 하드웨어 프로파일의 다양한 면의 예시적인 분석을 나타낸다. 도 7은 축(702)을 따라 프로세서의 수를, 축(704)을 따라 프로세서 활용 퍼센티지를 나타내는 그래프이다. 그래프에서 볼 수 있듯이, 0.5 프로세서가 할당될 때, 프로세서 활용은 약 30%이다. 하나의 프로세서가 할당되면, 프로세서 활용은 대략 45%까지 증가한다. 두 개의 프로세서가 할당되면, 프로세서 활용은 약 85%까지 증가한다. 추가적인 프로세서를 할당하면, 프로세서 활용은 매우 조금 증가한다. 예를 들어, 세 개의 프로세서가 할당되면, 프로세서 활용은 약 87.5%까지 증가하고, 네 개의 프로세서가 할당되면, 프로세서 활용은 약 90%까지 증가한다. 따라서, 두 개의 프로세서를 할당한 후에, 프로세서를 더 추가하는 것은 프로세서 활용을 상당하게 증가시킬 수 없다. 프로세서의 수에 대한 프로세서 활용을 분석할 때, 프로파일러(408)는, 축(702)를 따라 최소한 소정의 길이에 대하여, 그래프의 경사가 예를 들어 0.2 또는 다른 적절한 값과 같은 소정의 값(predefined value)보다 작게 되는 프로세서의 수를 선택할 수 있다. 본 실시예에서, 프로파일러(408)는 향상된 프로세서의 수로서 2개의 프로세서를 선택할 수 있다.
유사하게, 도 8은 축(802)을 따라 RAM의 기가바이트(gigabytes: GB) 수를 나타내고 축(804)을 따라 초당 트랜잭션의 수를 나타내는 그래프이다. 도시된 바와 같이, 1GB의 메모리가 할당되면, 초당 약 1000 트랜잭션이 프로세스될 수 있다. 2GB의 메모리가 할당되면, 초당 약 1800 트랜잭션이 프로세스될 수 있다. 4GB의 메모리가 할당되면, 초당 약 2250 트랜잭션이 프로세스될 수 있다. 8GB의 메모리가 할당되면, 초당 프로세스되는 트랜잭션 수가 상당하게 증가할 수도 있다(본 실시예에서 초당 약 5100 트랜잭션). 16GB의 메모리가 할당되면, 초당 프로세스되는 트랜잭션의 수에 적은 증가가 관찰될 수 있다(본 실시예에서 초당 약 6100 트랜잭션). 32GB의 메모리가 할당되면, 초당 약 7000 트랜잭션이 프로세스될 수 있다. 관찰할 수 있듯이, 8GB의 메모리가 할당된 후에 추가적인 메모리의 추가는 초당 프로세스 되는 트랜잭션의 수를 상당하게 증가시키지는 않는다. 초당 프로세스되는 트랜잭션의 수와 관련하여 할당되는 메모리의 양을 분석할 때, 프로파일러(408)는 축(802)를 따라 최소한 소정의 길이에 대해, 그래프의 경사가 예를 들어 0.2 또는 다른 적절한 값과 같은 소정의 값(predefined value)보다 작게 되는 메모리의 양을 선택할 수 있다. 본 실시예에서, 프로파일러(408)는 향상된 메모리의 양으로서 8GB의 메모리를 선택할 수 있다.
도 6으로 돌아가서, 트렌딩 엔진(408)은 동작(604) 동안 수행된 분석에 기초하여 향상된 하드웨어 프로파일을 도출할 수 있다(동작 606). 트렌딩 엔진(408)은 수집된 통계 또는 도출된 하드웨어 프로파일에 기초하여 역할(role)을 도출할 수 있다(동작 608). 역할은 전위 프로세서(Front end processor), SQL 프로토콜 서버뿐만 아니라 다른 역할을 포함할 수 있다. 각각의 역할은 하드웨어 프로파일의 범위(range)로서 정의될 수 있다. 프로파일러(408)는 도출된 하드웨어 프로파일을 역할에 대응하는 하드웨어 프로파일의 범위 중 하나에 매칭하는 것에 기초하여 역할을 도출할 수 있다. 트렌딩 엔진(408)은 이후 도출된 역할과 도출된 하드웨어 프로파일을 연관하여, 도출된 역할과 매칭하는 역할을 가지는 임의의 VMs(410)가 도출된 하드웨어 프로파일에 대응하는 가상 하드웨어 구성을 가질 수 있다(동작 510).
도 5로 돌아가서, 스케쥴러(412)는 도출된 하드웨어 프로파일(510)과 매칭하는 가상 하드웨어 구성을 가지는 VM(410)의 배치를 스케쥴링할 수 있다.
도 9는 스케쥴러(412)에 의해 수행될 수 있는 예시적인 프로세싱을 나타내는 흐름도다. 먼저, 스케쥴러(412)는 적어도 도출된 하드웨어 프로파일과 매칭하는 양의 이용가능한 자원(at least an amount of available resources)을 가지는 제 1 프로세싱 장치들(106)로부터 프로세싱 장치를 결정할 수 있다(동작 902). 스케쥴러(412)는 이후 결정된 제 1 프로세싱 장치(106) 상에, 도출된 하드웨어 프로파일과 매칭하는 가상 하드웨어 구성을 가지는 VM(410)의 배열 또는 재배열을 스케쥴링할 수 있다(동작 904).
도 5로 돌아가서, 모니터(406)는 애플리케이션을 실행하는 VMs(410)의 성능 및 용량 통계를 모니터 할 수 있다(동작 512). 모니터(406)는 예를 들어, 애플리케이션을 실행하는 VMs(410)을 가지는 제 1 프로세싱 장치(들)와 프로세싱 장치(들)(106)에 로드를 제공하는 로드 밸런서(들)(104)와 같은 장치에 질의(query)할 수 있다. 대안적으로, 통계는 제 1 및 제 2 프로세싱 장치(106, 108) 중 하나에 의해 데이터 저장소(404)에 수집되고 저장될 수 있고, 모니터(406)는 성능 및 용량 통계를 모니터링하기 위해 데이터 저장소(404)에 저장되고 수집된 통계에 접근할 수 있다.
모니터(406)는 이후 복수의 임계 조건 중에서 애플리케이션을 실행하는 임의의 VM(410)에 대해 임계 조건이 발생했는지를 결정할 수 있다(동작514). 일 실시예에서, 임계 조건은: 적어도 제 1 주어진 시간의 기간 동안 지속하는 프로세서 활용에서의 제 1 사전 정의된 변화, 적어도 제 2 주어진 시간의 기간 동안 지속하는 메모리 할당에서의 제 2 사전 정의된 변화, 적어도 제 3 주어진 시간의 기간 동안 지속하는 매체에 대한 입력/출력 활동의 양에 있어서의 제 3 사전 정의된 변화, 제 4 주어진 시간의 기간에 걸친 네트워크 입출력 양에 있어서의 제 4 사전 정의된 변화, 및 적어도 제 5 주어진 시간의 기간 동안 지속하는 애플리케이션의 응답 시간의 제 5 사전 정의된 변화를 포함할 수 있다.
만약 임계 조건이 발생하지 않으면, 모니터(406)는 애플리케이션을 실행하는 VMs(410)를 포함하는 제 1 프로세싱 장치(106)와 제 1 프로세싱 장치(들)(106) 중 하나에 로드를 제공하는 로드 밸런서(104) 중 하나의 통계를 모니터링하기 위해 계속될 수 있다(동작512). 그 외, 모니터(406)는 VMs(410)을 분배하고 복수의 가상 하드웨어 구성을 가지는 제 1 프로세싱 장치로 애플리케이션을 로딩하기(load) 위해 스케쥴러(412)에 통지할 수 있고(동작502), 모니터(406)는 통계를 수집하기 위해 트렌딩 엔진(402)에 통지할 수 있다(동작504).
결론(Conclusion)
비록 주제가 구체적인 구조적 특징 및/또는 방법론적인 동작의 언어로 기술됐을지라도, 첨부된 청구항의 주제가 상술한 구체적인 특징과 동작에 제한될 필요가 없음을 이해해야 한다. 오히려, 상술된 구체적인 특징과 동작은 청구항을 구현하기 위한 예시적인 형태로서 개시되었다.
개시된 실시예의 다른 구성은 본 개시의 범위의 일부이다. 예를 들어, 다른 실시예에서, 도 5, 6, 및 9에 표현된 프로세스와 같은 프로세스에 의해 실행된 동작의 순서는 다를 수 있고, 추가적인 또는 다른 동작을 포함할 수 있다.
따라서, 주어진 임의의 구체적인 실시예보다 첨부된 청구항과 이들의 법적인 균등물이 실시예를 정의한다.
Claims (15)
- 애플리케이션을 위한 향상된 하드웨어 프로파일(improved hardware profile)을 자동적으로 학습하기(learning) 위한 방법에 있어서,
동작 환경(operating environment)의 하나 이상의 프로세싱 장치의 프로세싱 장치에 의해, 복수의 하드웨어 구성에서 실행되는 애플리케이션의 성능 통계(performance statistics)를 수집(colleting)하는 단계(504);
상기 동작 환경의 하나 이상의 프로세싱 장치의 프로세싱 장치에 의해, 상기 애플리케이션에 대한 향상된 하드웨어 프로파일을 도출(derive)하기 위해 상기 수집된 성능 통계에 기초하여 상기 애플리케이션을 자동적으로 프로파일링(profiling)하는 단계(508);
상기 동작 환경의 상기 하나 이상의 프로세싱 장치의 프로세싱 장치에 의해, 복수의 제 2 프로세싱 장치의 제 2 프로세싱 장치상에 가상 머신의 분배(deployment)를 스케쥴링하는 단계(510) -상기 가상 머신은 상기 도출된 하드웨어 프로파일과 매칭하는 가상 하드웨어 구성을 가짐-; 및
상기 애플리케이션을 실행하기 위해 상기 제 2 프로세싱 장치 상에 상기 가상 머신을 분배하는 단계를 포함하는
향상된 하드웨어 프로파일을 자동적으로 학습하기 위한 방법.
- 제 1 항에 있어서,
상기 애플리케이션의 상기 자동 프로파일링 단계는
저장되고 수집된 상기 성능 통계에 기초하여 상기 애플리케이션과 연관된 역할(role)을 도출하는 단계, 및
상기 하드웨어 프로파일과 상기 역할을 연관시키는 단계를 더 포함하는
향상된 하드웨어 프로파일을 자동적으로 학습하기 위한 방법.
- 제 2 항에 있어서,
상기 동작 환경의 하나 이상의 프로세싱 장치의 프로세싱 장치에 의해, 상기 제 2 프로세싱 장치 상에서 실행되는 상기 애플리케이션의 성능 통계를 모니터링하는 단계;
상기 동작 환경의 하나 이상의 프로세싱 장치의 프로세싱 장치에 의해, 상기 모니터링에 기초하여 업데이트되고 향상된 하드웨어 프로파일(updated improved hardware profile)을 도출하는 단계;
상기 하나 이상의 프로세싱 장치의 프로세싱 장치에 의해, 상기 가상 머신의 재분배의 상기 스케쥴링을 수행하는 단계 -상기 가상 머신의 가상 하드웨어 구성은 도출된 업데이트되고 향상된 하드웨어 프로파일과 매칭함-; 및
상기 복수의 제 2 프로세싱 장치의 제 2 프로세싱 장치 상에 상기 가상 머신을 재분배하는 단계를 더 포함하는
향상된 하드웨어 프로파일을 자동적으로 학습하기 위한 방법.
- 제 3 항에 있어서,
상기 업데이트되고 향상된 하드웨어 프로파일과 상기 역할을 연관시키는 단계를 더 포함하는
향상된 하드웨어 프로파일을 자동적으로 학습하기 위한 방법.
- 제 3 항에 있어서,
상기 하나 이상의 프로세싱 장치의 프로세싱 장치에 의해, 상기 분배된 가상 머신 상에서 실행되는 상기 애플리케이션에 대한, 프로세서 활용(processor utilization), 할당된 메모리의 양, 매체(medium)에 대한 고정된 시간 단위당 입력/출력의 수, 상기 매체에 대한 사용되거나 이용 가능한 저장 공간 및 네트워크 활용(network utilization)을 계산하는 단계를 더 포함하고,
상기 업데이트되고 향상된 하드웨어 프로파일의 도출은 적어도 부분적으로 상기 프로세서 활용, 상기 할당된 메모리의 양, 상기 매체에 대한 고정된 시간 단위당 입력/출력의 수, 상기 매체에 대한 사용되거나 이용 가능한 저장 공간 및 상기 네트워크 활용에 기초하는,
향상된 하드웨어 프로파일을 자동적으로 학습하기 위한 방법.
- 제 1 항에 있어서,
상기 가상 머신의 분배를 스케쥴링하는 단계는
상기 향상된 하드웨어 프로파일과 상기 복수의 제 2 프로세싱 장치상의 이용 가능한 가상 머신 자원을 비교하는 단계,
상기 향상된 하드웨어 프로파일과 매칭하는 적어도 이용 가능한 머신 자원을 가지는 것으로 상기 다수의 제 2 프로세싱 장치의 하나를 결정하는 단계, 및
상기 결정된 복수의 제 2 프로세싱 장치의 하나에 상기 가상 머신의 분배를 스케쥴링하는 단계를 더 포함하는
향상된 하드웨어 프로파일을 자동적으로 학습하기 위한 방법.
- 제 1 항에 있어서,
하나 이상의 로드 밸런서(load balancer)에 의해, 상이한 가상 하드웨어 구성을 가지는 복수의 가상 머신 상에서 실행되는 상기 애플리케이션의 복수의 카피(copies)를 위한 로드를 분배하는 단계 -상기 로드를 분배하는 단계는 상기 애플리케이션의 상기 복수의 카피의 각각의 응답 시간에 기초함- 를 더 포함하고,
상기 성능 통계를 수집하는 단계는 상기 하나 이상의 로드 밸런서에 의해 보고된(reported) 애플리케이션 응답 시간 데이터를 수집하는 단계를 더 포함하는
향상된 하드웨어 프로파일을 자동적으로 학습하기 위한 방법.
- 제 1 항에 있어서,
상기 애플리케이션을 실행시키고 상기 복수의 하드웨어 프로파일 중 하나 이상과 매칭하는 가상 하드웨어 구성을 가지는 복수의 가상 머신에 의해 달성되는(achieved) 효율에 대하여 복수의 하드웨어 프로파일을 분석하는 단계를 더 포함하고,
도출된 상기 향상된 하드웨어 프로파일은 적어도 부분적으로, 상기 분석의 결과에 기초하는
향상된 하드웨어 프로파일을 자동적으로 학습하기 위한 방법.
- 향상된 효율에서 애플리케이션을 실행시키기 위한 가상 머신을 위한 하드웨어 프로파일을 자동적으로 학습하기 위한 시스템에 있어서,
복수의 하드웨어 구성에서 실행되는 애플리케이션에 대한 성능 및 용량 통계를 수집하기 위한 적어도 하나의 프로파일러(402);
상기 수집된 성능 및 용량 통계에 접근하고 하드웨어 프로파일과 애플리케이션의 역할을 도출하기 위해 애플리케이션을 자동적으로 프로파일하기 위한 트렌딩 엔진 - 상기 애플리케이션의 역할은 상기 하드웨어 프로파일과 연관되고, 가상 머신은 향상된 효율에서 상기 애플리케이션을 실행하기 위한 구성인 상기 도출된 하드웨어 프로파일과 매칭하는 가상 하드웨어 구성을 가짐(408, 602-610) -; 및
상기 하드웨어 프로파일을, 상기 도출된 하드웨어 프로파일과 매칭하는 상기 가상의 하드웨어 구성을 가지는 상기 가상 머신을 위한 적어도 충분한 이용 가능한 자원을 가지는 물리 프로세싱 장치에 매칭하기 위한 스케쥴러 -상기 스케쥴러는 상기 물리 프로세싱 장치에 가상 머신을 분배함(412, 902-604)-를 포함하는
시스템.
- 제 9 항에 있어서,
복수의 가상 하드웨어 구성을 가지는 복수의 가상 머신 상에서 실행되는 상기 애플리케이션의 복수의 카피를 위한 로드를 분배하기 위한 적어도 하나의 로드 밸런서를 더 포함하되, 상기 적어도 하나의 로드 밸런서는 상기 애플리케이션의 실행하는 카피의 애플리케이션 응답 시간에 기초하여 상기 로드를 분배하는
시스템.
- 제 10 항에 있어서,
상기 적어도 하나의 로드 밸런서는 상기 복수의 가상 머신 상에서 실행되는 상기 애플리케이션의 카피의 애플리케이션 응답 시간 통계를 유지(maintain)하고,
상기 적어도 하나의 프로파일러는 상기 적어도 하나의 로드 밸런서로부터 상기 애플리케이션 응답 시간 통계를 수집하는
시스템.
- 제 9 항에 있어서,
상기 분배된 가상 머신 상에서 상기 애플리케이션의 성능을 모니터링하기 위한 모니터를 더 포함하며,
상기 모니터가, 상기 실행되는 애플리케이션에 대해, 임계 레벨을 넘은 성능 변화를 감지하면, 상기 모니터는 업데이트된 하드웨어 프로파일을 자동적으로 도출하도록 상기 적어도 하나의 프로파일러와 상기 트렌딩 엔진을 호출하는
시스템.
- 제 12 항에 있어서,
상기 모니터는 상기 성능 및 용량 통계를 주기적으로 수신하고,
상기 모니터는 상기 임계 레벨을 넘은 상기 성능 변화를 감지하기 위해 상기 주기적으로 수신된 성능 및 용량 통계를 분석하는
시스템.
- 제 9 항에 있어서,
상기 트렌딩 엔진은, 적어도 부분적으로, 상기 애플리케이션을 실행하는 적어도 하나의 가상 머신을 포함하는 적어도 하나의 프로세싱 장치에 대한, 프로세서 활용, 할당된 메모리의 양, 매체에 대해 고정된 시간 유닛당 입력/출력 수, 상기 매체에 대해 사용되거나 이용 가능한 저장 공간, 및 네트워크 활용에 기초하여 상기 하드웨어 프로파일을 도출하는
시스템.
- 제 14 항에 있어서,
상기 트렌딩 엔진은 적어도 부분적으로, 상기 애플리케이션을 실행시키는 각 가상 머신에 의해 달성되는 효율에 대해 복수의 하드웨어 프로파일을 분석하는 것과 상기 복수의 하드웨어 프로파일의 하나와 매칭하는 가상 하드웨어 구성을 가지는 것에 기초하여 상기 하드웨어 프로파일을 더 도출하는
시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/432,911 | 2009-04-30 | ||
US12/432,911 US8261266B2 (en) | 2009-04-30 | 2009-04-30 | Deploying a virtual machine having a virtual hardware configuration matching an improved hardware profile with respect to execution of an application |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120026046A true KR20120026046A (ko) | 2012-03-16 |
KR101600129B1 KR101600129B1 (ko) | 2016-03-04 |
Family
ID=43031390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020117025481A KR101600129B1 (ko) | 2009-04-30 | 2010-04-23 | 애플리케이션 효율 엔진 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8261266B2 (ko) |
EP (1) | EP2425349B1 (ko) |
JP (1) | JP5608222B2 (ko) |
KR (1) | KR101600129B1 (ko) |
CN (1) | CN102414674B (ko) |
CA (1) | CA2756688A1 (ko) |
WO (1) | WO2010126805A2 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR200475093Y1 (ko) * | 2014-04-24 | 2014-11-11 | 여종률 | 배터리 충전 크래들 |
KR20160082678A (ko) * | 2014-12-31 | 2016-07-08 | 삼성전자주식회사 | 학습 메커니즘을 갖는 전자 시스템 및 그것의 동작 방법 |
Families Citing this family (162)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9495152B2 (en) | 2007-06-22 | 2016-11-15 | Red Hat, Inc. | Automatic baselining of business application service groups comprised of virtual machines |
US9354960B2 (en) | 2010-12-27 | 2016-05-31 | Red Hat, Inc. | Assigning virtual machines to business application service groups based on ranking of the virtual machines |
US9727440B2 (en) * | 2007-06-22 | 2017-08-08 | Red Hat, Inc. | Automatic simulation of virtual machine performance |
US9678803B2 (en) | 2007-06-22 | 2017-06-13 | Red Hat, Inc. | Migration of network entities to a cloud infrastructure |
US9569330B2 (en) | 2007-06-22 | 2017-02-14 | Red Hat, Inc. | Performing dependency analysis on nodes of a business application service group |
US8028090B2 (en) | 2008-11-17 | 2011-09-27 | Amazon Technologies, Inc. | Request routing utilizing client location information |
US7991910B2 (en) | 2008-11-17 | 2011-08-02 | Amazon Technologies, Inc. | Updating routing information based on client location |
US8601090B1 (en) | 2008-03-31 | 2013-12-03 | Amazon Technologies, Inc. | Network resource identification |
US8321568B2 (en) | 2008-03-31 | 2012-11-27 | Amazon Technologies, Inc. | Content management |
US8156243B2 (en) | 2008-03-31 | 2012-04-10 | Amazon Technologies, Inc. | Request routing |
US8447831B1 (en) | 2008-03-31 | 2013-05-21 | Amazon Technologies, Inc. | Incentive driven content delivery |
US8606996B2 (en) | 2008-03-31 | 2013-12-10 | Amazon Technologies, Inc. | Cache optimization |
US7970820B1 (en) | 2008-03-31 | 2011-06-28 | Amazon Technologies, Inc. | Locality based content distribution |
US8533293B1 (en) | 2008-03-31 | 2013-09-10 | Amazon Technologies, Inc. | Client side cache management |
US7962597B2 (en) | 2008-03-31 | 2011-06-14 | Amazon Technologies, Inc. | Request routing based on class |
US9407681B1 (en) | 2010-09-28 | 2016-08-02 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US7925782B2 (en) | 2008-06-30 | 2011-04-12 | Amazon Technologies, Inc. | Request routing using network computing components |
US9912740B2 (en) | 2008-06-30 | 2018-03-06 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US8060616B1 (en) | 2008-11-17 | 2011-11-15 | Amazon Technologies, Inc. | Managing CDN registration by a storage provider |
US8073940B1 (en) | 2008-11-17 | 2011-12-06 | Amazon Technologies, Inc. | Managing content delivery network service providers |
US8122098B1 (en) | 2008-11-17 | 2012-02-21 | Amazon Technologies, Inc. | Managing content delivery network service providers by a content broker |
US8065417B1 (en) | 2008-11-17 | 2011-11-22 | Amazon Technologies, Inc. | Service provider registration by a content broker |
US8732309B1 (en) | 2008-11-17 | 2014-05-20 | Amazon Technologies, Inc. | Request routing utilizing cost information |
US8521880B1 (en) | 2008-11-17 | 2013-08-27 | Amazon Technologies, Inc. | Managing content delivery network service providers |
US8521851B1 (en) | 2009-03-27 | 2013-08-27 | Amazon Technologies, Inc. | DNS query processing using resource identifiers specifying an application broker |
US8412823B1 (en) | 2009-03-27 | 2013-04-02 | Amazon Technologies, Inc. | Managing tracking information entries in resource cache components |
US8688837B1 (en) | 2009-03-27 | 2014-04-01 | Amazon Technologies, Inc. | Dynamically translating resource identifiers for request routing using popularity information |
US8756341B1 (en) | 2009-03-27 | 2014-06-17 | Amazon Technologies, Inc. | Request routing utilizing popularity information |
US8782236B1 (en) | 2009-06-16 | 2014-07-15 | Amazon Technologies, Inc. | Managing resources using resource expiration data |
US8397073B1 (en) | 2009-09-04 | 2013-03-12 | Amazon Technologies, Inc. | Managing secure content in a content delivery network |
US8352609B2 (en) * | 2009-09-29 | 2013-01-08 | Amazon Technologies, Inc. | Dynamically modifying program execution capacity |
US8433771B1 (en) | 2009-10-02 | 2013-04-30 | Amazon Technologies, Inc. | Distribution network with forward resource propagation |
JP5541289B2 (ja) * | 2009-10-09 | 2014-07-09 | 日本電気株式会社 | 仮想サーバシステム、その自律制御サーバ、そのデータ処理方法およびコンピュータプログラム |
US8442048B2 (en) * | 2009-11-04 | 2013-05-14 | Juniper Networks, Inc. | Methods and apparatus for configuring a virtual network switch |
US9495338B1 (en) | 2010-01-28 | 2016-11-15 | Amazon Technologies, Inc. | Content distribution network |
US20110209160A1 (en) * | 2010-02-22 | 2011-08-25 | Vasanth Venkatachalam | Managed Code State Indicator |
US20110238402A1 (en) * | 2010-03-23 | 2011-09-29 | Fujitsu Limited | System and methods for remote maintenance in an electronic network with multiple clients |
US9164554B2 (en) | 2010-04-12 | 2015-10-20 | Sandisk Enterprise Ip Llc | Non-volatile solid-state storage system supporting high bandwidth and random access |
US9047351B2 (en) | 2010-04-12 | 2015-06-02 | Sandisk Enterprise Ip Llc | Cluster of processing nodes with distributed global flash memory using commodity server technology |
US8868487B2 (en) | 2010-04-12 | 2014-10-21 | Sandisk Enterprise Ip Llc | Event processing in a flash memory-based object store |
US8224957B2 (en) * | 2010-05-20 | 2012-07-17 | International Business Machines Corporation | Migrating virtual machines among networked servers upon detection of degrading network link operation |
US9342373B2 (en) * | 2010-05-20 | 2016-05-17 | International Business Machines Corporation | Virtual machine management among networked servers |
US8489733B2 (en) * | 2010-05-21 | 2013-07-16 | Red Hat, Inc. | Automatic enterprise service bus deployment at the level of individual services |
EP2585910B1 (en) | 2010-06-22 | 2018-02-21 | Hewlett-Packard Enterprise Development LP | Methods and systems for planning application deployment |
US8954385B2 (en) | 2010-06-28 | 2015-02-10 | Sandisk Enterprise Ip Llc | Efficient recovery of transactional data stores |
US8707300B2 (en) * | 2010-07-26 | 2014-04-22 | Microsoft Corporation | Workload interference estimation and performance optimization |
US8577992B1 (en) | 2010-09-28 | 2013-11-05 | Amazon Technologies, Inc. | Request routing management based on network components |
US10097398B1 (en) | 2010-09-28 | 2018-10-09 | Amazon Technologies, Inc. | Point of presence management in request routing |
US9712484B1 (en) | 2010-09-28 | 2017-07-18 | Amazon Technologies, Inc. | Managing request routing information utilizing client identifiers |
US10958501B1 (en) | 2010-09-28 | 2021-03-23 | Amazon Technologies, Inc. | Request routing information based on client IP groupings |
US8819283B2 (en) | 2010-09-28 | 2014-08-26 | Amazon Technologies, Inc. | Request routing in a networked environment |
US8468247B1 (en) | 2010-09-28 | 2013-06-18 | Amazon Technologies, Inc. | Point of presence management in request routing |
US9003035B1 (en) | 2010-09-28 | 2015-04-07 | Amazon Technologies, Inc. | Point of presence management in request routing |
US8452874B2 (en) | 2010-11-22 | 2013-05-28 | Amazon Technologies, Inc. | Request routing processing |
US9262196B2 (en) * | 2010-11-30 | 2016-02-16 | International Business Machines Corporation | Virtual machine deployment planning method and associated apparatus |
US9391949B1 (en) | 2010-12-03 | 2016-07-12 | Amazon Technologies, Inc. | Request routing processing |
US8483234B2 (en) * | 2011-02-17 | 2013-07-09 | Alcatel Lucent | Monitoring resource congestion in a network processor |
US9176759B1 (en) * | 2011-03-16 | 2015-11-03 | Google Inc. | Monitoring and automatically managing applications |
CN103443762B (zh) * | 2011-04-07 | 2019-02-05 | 企业服务发展公司有限责任合伙企业 | 用于移动软件对象的方法和装置 |
US8874515B2 (en) | 2011-04-11 | 2014-10-28 | Sandisk Enterprise Ip Llc | Low level object version tracking using non-volatile memory write generations |
US9069890B2 (en) * | 2011-04-20 | 2015-06-30 | Cisco Technology, Inc. | Ranking of computing equipment configurations for satisfying requirements of virtualized computing environments based on an overall performance efficiency |
US10467042B1 (en) | 2011-04-27 | 2019-11-05 | Amazon Technologies, Inc. | Optimized deployment based upon customer locality |
US8776055B2 (en) | 2011-05-18 | 2014-07-08 | Vmware, Inc. | Combining profiles based on priorities |
US9575781B1 (en) * | 2011-05-23 | 2017-02-21 | Open Invention Network Llc | Automatic determination of a virtual machine's dependencies on storage virtualization |
WO2012165937A1 (en) * | 2011-05-27 | 2012-12-06 | Mimos Berhad | System and method for optimizing physical resources of virtual machines |
US20130074066A1 (en) * | 2011-09-21 | 2013-03-21 | Cisco Technology, Inc. | Portable Port Profiles for Virtual Machines in a Virtualized Data Center |
US8898271B2 (en) * | 2011-09-29 | 2014-11-25 | Oracle International Corporation | System and method for supporting accurate load balancing in a transactional middleware machine environment |
US8904009B1 (en) | 2012-02-10 | 2014-12-02 | Amazon Technologies, Inc. | Dynamic content delivery |
US10021179B1 (en) | 2012-02-21 | 2018-07-10 | Amazon Technologies, Inc. | Local resource delivery network |
US9135064B2 (en) * | 2012-03-07 | 2015-09-15 | Sandisk Enterprise Ip Llc | Fine grained adaptive throttling of background processes |
US10623408B1 (en) | 2012-04-02 | 2020-04-14 | Amazon Technologies, Inc. | Context sensitive object management |
US10365953B2 (en) | 2012-05-01 | 2019-07-30 | Red Hat, Inc. | Tracking and utilizing facts about a node of a multi-tenant cloud hosting environment |
US9842002B2 (en) * | 2012-05-01 | 2017-12-12 | Red Hat, Inc. | Node selection for a new application in a multi-tenant cloud hosting environment |
US9154551B1 (en) | 2012-06-11 | 2015-10-06 | Amazon Technologies, Inc. | Processing DNS queries to identify pre-processing information |
US9531607B1 (en) * | 2012-06-20 | 2016-12-27 | Amazon Technologies, Inc. | Resource manager |
US9311066B1 (en) | 2012-06-25 | 2016-04-12 | Amazon Technologies, Inc. | Managing update deployment |
US9471385B1 (en) * | 2012-08-16 | 2016-10-18 | Open Invention Network Llc | Resource overprovisioning in a virtual machine environment |
CN103678139B (zh) | 2012-08-31 | 2017-09-29 | 国际商业机器公司 | 进行瘦供给的方法和装置 |
US9525659B1 (en) | 2012-09-04 | 2016-12-20 | Amazon Technologies, Inc. | Request routing utilizing point of presence load information |
US9135048B2 (en) * | 2012-09-20 | 2015-09-15 | Amazon Technologies, Inc. | Automated profiling of resource usage |
US9323577B2 (en) | 2012-09-20 | 2016-04-26 | Amazon Technologies, Inc. | Automated profiling of resource usage |
RU2605473C2 (ru) * | 2012-09-20 | 2016-12-20 | Амазон Текнолоджис, Инк. | Автоматизированное профилирование использования ресурса |
US10205698B1 (en) | 2012-12-19 | 2019-02-12 | Amazon Technologies, Inc. | Source-dependent address resolution |
EP2775399A4 (en) | 2012-12-26 | 2015-04-29 | Huawei Tech Co Ltd | METHOD FOR MANAGING VIRTUAL MACHINE SYSTEM RESOURCES, VIRTUAL MACHINE SYSTEM, AND APPARATUS |
US9608933B2 (en) * | 2013-01-24 | 2017-03-28 | Hitachi, Ltd. | Method and system for managing cloud computing environment |
US9471347B2 (en) * | 2013-01-31 | 2016-10-18 | International Business Machines Corporation | Optimization of virtual machine sizing and consolidation |
US9201681B2 (en) * | 2013-02-13 | 2015-12-01 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and controller device for quality of service (QOS) caching in a virtualized environment |
JP6089783B2 (ja) * | 2013-02-27 | 2017-03-08 | 富士通株式会社 | 制御装置、リソース制御プログラムおよびリソース制御方法 |
CN103198008A (zh) * | 2013-04-27 | 2013-07-10 | 清华大学 | 系统测试统计方法及装置 |
US9225638B2 (en) | 2013-05-09 | 2015-12-29 | Vmware, Inc. | Method and system for service switching using service tags |
US9317313B2 (en) * | 2013-05-22 | 2016-04-19 | Microsoft Technology Licensing, Llc | Dynamically provisioning storage while identifying and discarding redundant storage alerts |
US9294391B1 (en) | 2013-06-04 | 2016-03-22 | Amazon Technologies, Inc. | Managing network computing components utilizing request routing |
US9213565B2 (en) * | 2013-06-28 | 2015-12-15 | Vmware, Inc. | Methods and systems for mining datacenter telemetry data |
CN103473136B (zh) | 2013-09-02 | 2017-06-13 | 华为技术有限公司 | 一种虚拟机的资源配置方法和通信设备 |
US20150120906A1 (en) * | 2013-10-28 | 2015-04-30 | International Business Machines Corporation | Agentless baseline profile compilation for application monitoring solution |
CN104679444B (zh) * | 2013-11-27 | 2017-11-10 | 中国电信股份有限公司 | 虚拟化存储资源的动态调整方法与装置 |
US9417902B1 (en) * | 2014-03-24 | 2016-08-16 | Amazon Technologies, Inc. | Managing resource bursting |
US11093279B2 (en) | 2014-06-09 | 2021-08-17 | International Business Machines Corporation | Resources provisioning based on a set of discrete configurations |
US9825810B2 (en) | 2014-09-30 | 2017-11-21 | Nicira, Inc. | Method and apparatus for distributing load among a plurality of service nodes |
US9774537B2 (en) | 2014-09-30 | 2017-09-26 | Nicira, Inc. | Dynamically adjusting load balancing |
US10225137B2 (en) | 2014-09-30 | 2019-03-05 | Nicira, Inc. | Service node selection by an inline service switch |
US10033627B1 (en) | 2014-12-18 | 2018-07-24 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10091096B1 (en) | 2014-12-18 | 2018-10-02 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10097448B1 (en) | 2014-12-18 | 2018-10-09 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10225326B1 (en) | 2015-03-23 | 2019-03-05 | Amazon Technologies, Inc. | Point of presence based data uploading |
US9887931B1 (en) | 2015-03-30 | 2018-02-06 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9887932B1 (en) | 2015-03-30 | 2018-02-06 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9819567B1 (en) | 2015-03-30 | 2017-11-14 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US10594743B2 (en) | 2015-04-03 | 2020-03-17 | Nicira, Inc. | Method, apparatus, and system for implementing a content switch |
US9832141B1 (en) | 2015-05-13 | 2017-11-28 | Amazon Technologies, Inc. | Routing based request correlation |
US10616179B1 (en) | 2015-06-25 | 2020-04-07 | Amazon Technologies, Inc. | Selective routing of domain name system (DNS) requests |
US10097566B1 (en) | 2015-07-31 | 2018-10-09 | Amazon Technologies, Inc. | Identifying targets of network attacks |
US9774619B1 (en) | 2015-09-24 | 2017-09-26 | Amazon Technologies, Inc. | Mitigating network attacks |
US9742795B1 (en) | 2015-09-24 | 2017-08-22 | Amazon Technologies, Inc. | Mitigating network attacks |
US9794281B1 (en) | 2015-09-24 | 2017-10-17 | Amazon Technologies, Inc. | Identifying sources of network attacks |
US10270878B1 (en) | 2015-11-10 | 2019-04-23 | Amazon Technologies, Inc. | Routing for origin-facing points of presence |
US10257307B1 (en) | 2015-12-11 | 2019-04-09 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US10049051B1 (en) | 2015-12-11 | 2018-08-14 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US10348639B2 (en) | 2015-12-18 | 2019-07-09 | Amazon Technologies, Inc. | Use of virtual endpoints to improve data transmission rates |
US10191770B2 (en) * | 2016-04-22 | 2019-01-29 | Microsoft Technology Licensing, Llc | Maintenance tasks based on device role |
US10075551B1 (en) | 2016-06-06 | 2018-09-11 | Amazon Technologies, Inc. | Request management for hierarchical cache |
US10310889B1 (en) * | 2016-06-16 | 2019-06-04 | Amazon Technologies, Inc. | Data statistics service |
US10110694B1 (en) | 2016-06-29 | 2018-10-23 | Amazon Technologies, Inc. | Adaptive transfer rate for retrieving content from a server |
US10797941B2 (en) * | 2016-07-13 | 2020-10-06 | Cisco Technology, Inc. | Determining network element analytics and networking recommendations based thereon |
US9992086B1 (en) | 2016-08-23 | 2018-06-05 | Amazon Technologies, Inc. | External health checking of virtual private cloud network environments |
US10033691B1 (en) | 2016-08-24 | 2018-07-24 | Amazon Technologies, Inc. | Adaptive resolution of domain name requests in virtual private cloud network environments |
US10296363B2 (en) * | 2016-09-16 | 2019-05-21 | Oracle International Corporation | Tuning a virtual machine startup parameter |
US10469513B2 (en) | 2016-10-05 | 2019-11-05 | Amazon Technologies, Inc. | Encrypted network addresses |
US10831549B1 (en) | 2016-12-27 | 2020-11-10 | Amazon Technologies, Inc. | Multi-region request-driven code execution system |
US10372499B1 (en) | 2016-12-27 | 2019-08-06 | Amazon Technologies, Inc. | Efficient region selection system for executing request-driven code |
US10938884B1 (en) | 2017-01-30 | 2021-03-02 | Amazon Technologies, Inc. | Origin server cloaking using virtual private cloud network environments |
US10503613B1 (en) | 2017-04-21 | 2019-12-10 | Amazon Technologies, Inc. | Efficient serving of resources during server unavailability |
KR101886317B1 (ko) * | 2017-04-28 | 2018-08-08 | 울산과학기술원 | 가상 머신 배치 선택 장치 및 방법 |
US11075987B1 (en) | 2017-06-12 | 2021-07-27 | Amazon Technologies, Inc. | Load estimating content delivery network |
US10447648B2 (en) | 2017-06-19 | 2019-10-15 | Amazon Technologies, Inc. | Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP |
US10552225B2 (en) * | 2017-07-04 | 2020-02-04 | Vmware, Inc. | Virtual device migration or cloning based on device profiles |
US10742593B1 (en) | 2017-09-25 | 2020-08-11 | Amazon Technologies, Inc. | Hybrid content request routing system |
US10797966B2 (en) | 2017-10-29 | 2020-10-06 | Nicira, Inc. | Service operation chaining |
US11012420B2 (en) | 2017-11-15 | 2021-05-18 | Nicira, Inc. | Third-party service chaining using packet encapsulation in a flow-based forwarding element |
US10659252B2 (en) | 2018-01-26 | 2020-05-19 | Nicira, Inc | Specifying and utilizing paths through a network |
US10797910B2 (en) | 2018-01-26 | 2020-10-06 | Nicira, Inc. | Specifying and utilizing paths through a network |
US10592578B1 (en) | 2018-03-07 | 2020-03-17 | Amazon Technologies, Inc. | Predictive content push-enabled content delivery network |
US10728174B2 (en) | 2018-03-27 | 2020-07-28 | Nicira, Inc. | Incorporating layer 2 service between two interfaces of gateway device |
US10805192B2 (en) | 2018-03-27 | 2020-10-13 | Nicira, Inc. | Detecting failure of layer 2 service using broadcast messages |
US10944673B2 (en) | 2018-09-02 | 2021-03-09 | Vmware, Inc. | Redirection of data messages at logical network gateway |
US11595250B2 (en) | 2018-09-02 | 2023-02-28 | Vmware, Inc. | Service insertion at logical network gateway |
EP3756100A4 (en) | 2018-10-15 | 2021-12-15 | Hewlett-Packard Development Company, L.P. | DATA COLLECTION TO MONITOR DEVICE PERFORMANCE |
US10862852B1 (en) | 2018-11-16 | 2020-12-08 | Amazon Technologies, Inc. | Resolution of domain name requests in heterogeneous network environments |
US11025747B1 (en) | 2018-12-12 | 2021-06-01 | Amazon Technologies, Inc. | Content request pattern-based routing system |
US11467861B2 (en) | 2019-02-22 | 2022-10-11 | Vmware, Inc. | Configuring distributed forwarding for performing service chain operations |
US11385972B2 (en) * | 2019-06-26 | 2022-07-12 | Vmware, Inc. | Virtual-machine-specific failover protection |
US11140218B2 (en) | 2019-10-30 | 2021-10-05 | Vmware, Inc. | Distributed service chain across multiple clouds |
US11283717B2 (en) | 2019-10-30 | 2022-03-22 | Vmware, Inc. | Distributed fault tolerant service chain |
US11223494B2 (en) | 2020-01-13 | 2022-01-11 | Vmware, Inc. | Service insertion for multicast traffic at boundary |
US11659061B2 (en) | 2020-01-20 | 2023-05-23 | Vmware, Inc. | Method of adjusting service function chains to improve network performance |
US11153406B2 (en) | 2020-01-20 | 2021-10-19 | Vmware, Inc. | Method of network performance visualization of service function chains |
US11438257B2 (en) | 2020-04-06 | 2022-09-06 | Vmware, Inc. | Generating forward and reverse direction connection-tracking records for service paths at a network edge |
US11340940B2 (en) * | 2020-07-02 | 2022-05-24 | Bank Of America Corporation | Workload assessment and configuration simulator |
US11178257B1 (en) * | 2020-10-12 | 2021-11-16 | International Business Machines Corporation | Incarnation selection for application hosting on remote services environment |
US11611625B2 (en) | 2020-12-15 | 2023-03-21 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
US11734043B2 (en) | 2020-12-15 | 2023-08-22 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
US11385983B1 (en) * | 2020-12-22 | 2022-07-12 | Advanced Micro Devices, Inc. | Hardware assisted memory profiling aggregator |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070016668A1 (en) * | 2005-07-14 | 2007-01-18 | International Business Machines Corporation | Method and system for application profiling for purposes of defining resource requirements |
US20070130566A1 (en) * | 2003-07-09 | 2007-06-07 | Van Rietschote Hans F | Migrating Virtual Machines among Computer Systems to Balance Load Caused by Virtual Machines |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070245165A1 (en) | 2000-09-27 | 2007-10-18 | Amphus, Inc. | System and method for activity or event based dynamic energy conserving server reconfiguration |
JP2002202959A (ja) * | 2000-12-28 | 2002-07-19 | Hitachi Ltd | 動的な資源分配をする仮想計算機システム |
US7174379B2 (en) * | 2001-08-03 | 2007-02-06 | International Business Machines Corporation | Managing server resources for hosted applications |
US7546598B2 (en) * | 2003-09-03 | 2009-06-09 | Sap Aktiengesellschaft | Measuring software system performance using benchmarks |
US7454748B2 (en) * | 2004-07-27 | 2008-11-18 | Nokia Corporation | System and method for specifying virtual machines |
US20060092851A1 (en) | 2004-10-29 | 2006-05-04 | Jeffrey Forrest Edlund | Method and apparatus for communicating predicted future network requirements of a data center to a number of adaptive network interfaces |
US20060161753A1 (en) * | 2005-01-18 | 2006-07-20 | Aschoff John G | Method, apparatus and program storage device for providing automatic performance optimization of virtualized storage allocation within a virtualized storage subsystem |
US7743380B2 (en) * | 2005-01-21 | 2010-06-22 | Hewlett-Packard Development Company, L.P. | Monitoring clustered software applications |
US20080022136A1 (en) | 2005-02-18 | 2008-01-24 | Protegrity Corporation | Encryption load balancing and distributed policy enforcement |
US7730486B2 (en) * | 2005-02-28 | 2010-06-01 | Hewlett-Packard Development Company, L.P. | System and method for migrating virtual machines on cluster systems |
US7607129B2 (en) | 2005-04-07 | 2009-10-20 | International Business Machines Corporation | Method and apparatus for using virtual machine technology for managing parallel communicating applications |
US20070204266A1 (en) * | 2006-02-28 | 2007-08-30 | International Business Machines Corporation | Systems and methods for dynamically managing virtual machines |
EP2037362A4 (en) * | 2006-05-24 | 2012-04-18 | Nec Corp | ADMINISTRATIVE APPROACH FOR VIRTUAL MACHINES, METHOD FOR MANAGING A VIRTUAL MACHINE AND PROGRAM |
US7769843B2 (en) | 2006-09-22 | 2010-08-03 | Hy Performix, Inc. | Apparatus and method for capacity planning for data center server consolidation and workload reassignment |
US8161475B2 (en) | 2006-09-29 | 2012-04-17 | Microsoft Corporation | Automatic load and balancing for virtual machines to meet resource requirements |
JP3916652B2 (ja) * | 2006-10-20 | 2007-05-16 | 株式会社日立製作所 | リソース割り当てシステム、方法及びプログラム |
CN101169725A (zh) * | 2006-10-23 | 2008-04-30 | 国际商业机器公司 | 随需个人计算机供应系统和方法 |
US7673113B2 (en) * | 2006-12-29 | 2010-03-02 | Intel Corporation | Method for dynamic load balancing on partitioned systems |
JP4980792B2 (ja) * | 2007-05-22 | 2012-07-18 | 株式会社日立製作所 | 仮想計算機の性能監視方法及びその方法を用いた装置 |
JP4995015B2 (ja) * | 2007-09-13 | 2012-08-08 | 株式会社日立製作所 | 仮想計算機の実行可否検査方法 |
US8127291B2 (en) * | 2007-11-02 | 2012-02-28 | Dell Products, L.P. | Virtual machine manager for managing multiple virtual machine configurations in the scalable enterprise |
US8972978B2 (en) * | 2008-05-02 | 2015-03-03 | Skytap | Multitenant hosted virtual machine infrastructure |
US8336049B2 (en) * | 2009-02-05 | 2012-12-18 | Vmware, Inc. | Virtual machine utility computing method and system |
-
2009
- 2009-04-30 US US12/432,911 patent/US8261266B2/en active Active
-
2010
- 2010-04-23 JP JP2012508557A patent/JP5608222B2/ja active Active
- 2010-04-23 CN CN201080019495.2A patent/CN102414674B/zh active Active
- 2010-04-23 CA CA2756688A patent/CA2756688A1/en not_active Abandoned
- 2010-04-23 EP EP10770167.4A patent/EP2425349B1/en active Active
- 2010-04-23 WO PCT/US2010/032311 patent/WO2010126805A2/en active Application Filing
- 2010-04-23 KR KR1020117025481A patent/KR101600129B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070130566A1 (en) * | 2003-07-09 | 2007-06-07 | Van Rietschote Hans F | Migrating Virtual Machines among Computer Systems to Balance Load Caused by Virtual Machines |
US20070016668A1 (en) * | 2005-07-14 | 2007-01-18 | International Business Machines Corporation | Method and system for application profiling for purposes of defining resource requirements |
Non-Patent Citations (1)
Title |
---|
'Server-storage virtualization: integration and load balancing in data centers', Conference on High Performance Networking and Computing archive Proceedings of the 2008 ACM(2008) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR200475093Y1 (ko) * | 2014-04-24 | 2014-11-11 | 여종률 | 배터리 충전 크래들 |
KR20160082678A (ko) * | 2014-12-31 | 2016-07-08 | 삼성전자주식회사 | 학습 메커니즘을 갖는 전자 시스템 및 그것의 동작 방법 |
Also Published As
Publication number | Publication date |
---|---|
JP2012525641A (ja) | 2012-10-22 |
CN102414674B (zh) | 2015-04-01 |
WO2010126805A2 (en) | 2010-11-04 |
JP5608222B2 (ja) | 2014-10-15 |
CA2756688A1 (en) | 2010-11-04 |
US8261266B2 (en) | 2012-09-04 |
EP2425349B1 (en) | 2017-05-17 |
EP2425349A4 (en) | 2012-10-31 |
WO2010126805A3 (en) | 2011-01-20 |
CN102414674A (zh) | 2012-04-11 |
US20100281482A1 (en) | 2010-11-04 |
EP2425349A2 (en) | 2012-03-07 |
KR101600129B1 (ko) | 2016-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20120026046A (ko) | 애플리케이션 효율 엔진 | |
Yadwadkar et al. | Selecting the best vm across multiple public clouds: A data-driven performance modeling approach | |
Lu et al. | Log-based abnormal task detection and root cause analysis for spark | |
US10452441B1 (en) | Determining an allocation of computing resources for a job | |
US10359947B2 (en) | Reclaiming memory pages | |
US10606675B1 (en) | Query watchdog | |
US9483288B2 (en) | Method and system for running a virtual appliance | |
Guo et al. | Moving hadoop into the cloud with flexible slot management and speculative execution | |
US20130073829A1 (en) | Memory Usage Configuration Based on Observations | |
US20130073604A1 (en) | Optimized Settings in a Configuration Database with Boundaries | |
WO2014074169A1 (en) | Optimized memory configuration deployed on executing code | |
WO2014074170A1 (en) | Optimized memory configuration deployed prior to execution | |
US9547520B1 (en) | Virtual machine load balancing | |
US9442817B2 (en) | Diagnosis of application server performance problems via thread level pattern analysis | |
US20140373010A1 (en) | Intelligent resource management for virtual machines | |
Ouyang et al. | Straggler detection in parallel computing systems through dynamic threshold calculation | |
Pi et al. | Profiling distributed systems in lightweight virtualized environments with logs and resource metrics | |
KR20190081306A (ko) | 빅데이터 분석 소프트웨어에 대한 자원 할당 방법, 상기 방법을 이용하는 가상화 자원 할당 장치 | |
Thamsen et al. | Ellis: Dynamically scaling distributed dataflows to meet runtime targets | |
US10754547B2 (en) | Apparatus for managing disaggregated memory and method thereof | |
Zhang et al. | Parameterizable benchmarking framework for designing a MapReduce performance model | |
Sousa et al. | Evaluating eucalyptus virtual machine instance types: A study considering distinct workload demand | |
Wang et al. | Dynamic memory balancing for virtualization | |
Bae et al. | Jointly optimizing task granularity and concurrency for in-memory mapreduce frameworks | |
KR101109009B1 (ko) | 비정규 리덕션의 병렬화 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
E701 | Decision to grant or registration of patent right | ||
FPAY | Annual fee payment |
Payment date: 20190129 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20200129 Year of fee payment: 5 |