KR101770673B1 - 작업부하 밀도를 증가시키고 또한 에너지 효율성을 개선하기 위한 전력 균형화 - Google Patents
작업부하 밀도를 증가시키고 또한 에너지 효율성을 개선하기 위한 전력 균형화 Download PDFInfo
- Publication number
- KR101770673B1 KR101770673B1 KR1020167000893A KR20167000893A KR101770673B1 KR 101770673 B1 KR101770673 B1 KR 101770673B1 KR 1020167000893 A KR1020167000893 A KR 1020167000893A KR 20167000893 A KR20167000893 A KR 20167000893A KR 101770673 B1 KR101770673 B1 KR 101770673B1
- Authority
- KR
- South Korea
- Prior art keywords
- processor
- servers
- server
- resource utilization
- utilization
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- 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/505—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 the load
-
- 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/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- Y02B60/142—
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
서버 전력 소비를 조절하기 위한 기술들이 복수의 서버로부터 리소스 활용 데이터를 수신하기 위한 컴퓨팅 디바이스를 포함한다. 컴퓨팅 디바이스는 리소스 활용 데이터에 기초하여 복수의 서버의 소스 서버와 목적지 서버를 식별하고, 리소스 활용 데이터에 기초하여 식별된 소스 서버와 식별된 목적지 서버 사이의 리소스 활용에서의 차이를 계산한다. 컴퓨팅 디바이스가 차이가 문턱 값을 초과한다고 결정하면, 컴퓨팅 디바이스는 전력 소비 변화량만큼 소스 서버의 프로세서의 프로세서 활용을 증가시키고, 대응하는 전력 소비 변화량만큼 목적지 서버의 프로세서의 프로세서 활용을 감소시켜서 서버의 리소스들을 균형화하고 새로운 작업부하들을 서버들상에 두기 위해 더 많은 헤드 룸을 생성한다.
Description
클라우드 컴퓨팅은 오늘날의 컴퓨팅 수요를 위한 데이터 센터들의 사용을 증대시켰다. 데이터 센터들은 데이터 처리 및 스토리지와 같은 계산 서비스들 및 리소스들을 제공하고, 그룹 제어기에 의해 제어되는 그룹들로 배열되는 수많은 서버들을 흔히 포함한다. 데이터 센터에 의해 다뤄지는 작업부하(workload)들은 서버 하드웨어 리소스들을 다양한 정도로 활용한다. 예를 들어, 일부 작업부하들은 메모리와 데이터 스토리지를 주로 활용할 수 있는 반면에, 다른 작업부하들은 서버들의 프로세서들을 주로 활용할 수 있는데, 이는 계산 리소스들의 비효율적 활용을 초래한다. 이런 비효율성들을 개선하기 위한 노력으로 IT 관리자들은 흔히 작업부하들을 (예를 들어, 서버들 중에서) 이동시킴으로써 이 작업부하들을 균형화시키는데, 이는 작업부하들이 시간이 지나면서 변할 수 있음에 따라 비효율적이 된다.
데이터 센터들은 사이즈, 복잡도, 및 전력 소비량에서 커지고 있다. 에너지 비용이 전 세계에 걸쳐서 계속적으로 상승함에 따라, 사업자들은 자신들의 네트워크들에서의 데이터 센터들 및 다른 컴퓨팅 디바이스들을 포함하여, 그 사용에 있어서 시스템들의 에너지 효율성을 향상시키기 위한 기회를 추구하고 있다. 일반적으로, 이런 시스템들의 에너지 효율성을 향상시키기 위해 적어도 두 가지 면에서 노력들이 기울여지고 있다 - 데이터 센터들에서의 서버들의 전력 소비를 감소시키는 것 및 소비된 전력이 활용되는 효율성을 증가시키는 것.
본 명세서에서 기술되는 개념들은 첨부 도면들에서 한정을 위한 것이 아니라 예를 들기 위해 예시된다. 예시의 단순성 및 명료성을 위해, 도면들에 예시된 요소들은 반드시 비례에 맞추어 그려지지는 않았다. 적절하다고 여겨지는 경우에, 대응하거나 유사한 요소들을 나타내기 위해서 도면들 중에서 참조 표지들이 반복되었다.
도 1은 서버 전력 소비를 조절하기 위한 시스템의 적어도 일 실시예의 단순화된 블록도이다;
도 2는 도 1의 시스템의 서버의 환경 및 컴퓨팅 디바이스의 환경의 적어도 일 실시예의 단순화된 블록도이다;
도 3 및 도 4는 도 1의 시스템의 그룹 제어기상에서 서버 전력 소비를 조절하기 위한 방법의 적어도 일 실시예의 단순화된 흐름도이다; 및
도 5는 도 1의 시스템의 서버에 대한 전력 최적화를 위한 방법의 적어도 일 실시예의 단순화된 흐름도이다.
도 1은 서버 전력 소비를 조절하기 위한 시스템의 적어도 일 실시예의 단순화된 블록도이다;
도 2는 도 1의 시스템의 서버의 환경 및 컴퓨팅 디바이스의 환경의 적어도 일 실시예의 단순화된 블록도이다;
도 3 및 도 4는 도 1의 시스템의 그룹 제어기상에서 서버 전력 소비를 조절하기 위한 방법의 적어도 일 실시예의 단순화된 흐름도이다; 및
도 5는 도 1의 시스템의 서버에 대한 전력 최적화를 위한 방법의 적어도 일 실시예의 단순화된 흐름도이다.
본 개시의 개념들은 다양한 수정들 및 대안 형태들을 허용하지만, 이것의 특정 실시예들이 도면들에서 예를 드는 식으로 도시되어 있으며 또한 본 명세서에서 상세하게 설명될 것이다. 그러나, 본 개시의 개념들을 개시된 특정 형태들로만 제한하려는 의도는 없으며, 그와는 반대로 본 개시 및 첨부된 청구항들에 부합하는 모든 수정들, 등가들, 및 대안들을 포괄하도록 의도된다는 것을 이해해야 한다.
본 명세서에서 "일 실시예(one embodiment)", "실시예(an embodiment)", "예시적 실시예(an illustrative embodiment)" 등에 대한 언급은, 설명된 실시예가 특정의 특징, 구조, 또는 특성을 포함할 수 있지만, 모든 실시예마다 필수적으로 해당 특정의 특징, 구조, 또는 특성을 포함할 수도 있고 또는 그렇지 않을 수도 있다는 것을 나타낸다. 더욱이, 이러한 문구들은 반드시 동일 실시예를 가리키는 것은 아니다. 또한, 특정의 특징, 구조, 또는 특성이 실시예와 연계하여 설명될 때, 명시적으로 설명되든 안되든 간에, 이러한 특징, 구조, 또는 특성을 기타 실시예들과 연계하여 실시하는 것은 통상의 기술자의 지식 범위 내에 있다는 점을 언급해 두고자 한다.
개시된 실시예들은, 일부 경우에, 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 개시된 실시예들은 또한 하나 이상의 프로세서들에 의해 판독되고 실행될 수 있는, 일시적 또는 비일시적 머신 판독가능(예를 들어, 컴퓨터 판독가능) 저장 매체에 의해 전달되거나 또는 이러한 저장 매체상에 저장되는 명령어들로서 구현될 수 있다. 머신 판독가능 스토리지 매체는 머신에 의해 판독가능한 형태로 정보를 저장하기 위한 임의의 스토리지 디바이스, 메커니즘, 또는 다른 물리적 구조(예를 들어, 휘발성, 또는 비휘발성 메모리, 미디어 디스크(media disc), 또는 다른 미디어 디바이스)로서 구체화될 수 있다.
도면들에서, 일부 구조 또는 방법 특징들은 특정의 배열들 및/또는 순서들로 도시될 수 있다. 그러나, 이러한 특정의 배열들 및/또는 순서들은 요구되지 않을 수 있다는 것을 알아야 한다. 오히려, 몇몇 실시예들에서, 이러한 특징들은 예시적 도면들에 도시된 것과는 상이한 방식 및/또는 순서로 배열될 수 있다. 추가로, 특정 도면에 구조 또는 방법 특징을 포함시키는 것은 이러한 특징이 모든 실시예에서 요구되는 것을 함의하기 위한 것이 아니며, 몇몇 실시예들에서는 포함되지 않을 수도 있고 다른 특징들과 결합될 수도 있다.
도 1을 이제 참조하면, 서버 전력 소비를 조절하기 위한 시스템(100)이 그룹 제어기(102), 네트워크(106), 및 복수의 서버(108)를 포함한다. 사용 시에, 하기에서 더 상세하게 논의되는 것처럼, 그룹 제어기(102)는 그 그룹에 속하는 서버들(108)로부터 리소스 활용성 데이터를 수신하고 또한 이들 서버들(108) 중에서의 전력을 균형화할 수 있다. 특정하게는, 그룹 제어기(102)는 작업부하들을 더 낫게 균형화하고 에너지 효율성을 개선하기 위해 서버들(108) 중 하나의 프로세서 활용을 증가시키고 서버들(108) 중 또 다른 하나의 프로세서 활용을 감소시킬 수 있다. 그룹 제어기(102)는 서버들(108)과의 통신 링크를 확립하고 본 명세서에서 기술되는 기능들을 실행할 수 있는 임의 유형의 컴퓨팅 디바이스로서 구체화될 수 있다. 예를 들어, 그룹 제어기(102)는 서버, 웹 포털 디바이스, 데스크톱 컴퓨터, 셀 방식 폰, 스마트폰, 태블릿 컴퓨터, 랩톱 컴퓨터, 개인용 정보 단말기(personal digital assistant), 모바일 인터넷 디바이스, 및/또는 임의의 다른 컴퓨팅/통신 디바이스로서 구체화될 수 있다.
도 1에 도시된 바와 같이, 예시적 그룹 제어기(102)는 프로세서(110), 입/출력("I/O") 서브시스템(112), 메모리(114), 데이터 스토리지(116), 통신 회로(118), 및 하나 이상의 주변 장치들(120)을 포함한다. 물론, 그룹 제어기(102)는 기타 실시예들에서 전형적 컴퓨팅 디바이스(예를 들면, 다양한 입/출력 디바이스들)에서 흔히 발견되는 것과 같은 다른 또는 추가적 컴포넌트들을 포함할 수 있다. 덧붙여, 몇몇 실시예들에서, 예시적 컴포넌트들 중 하나 이상은 또 다른 컴포넌트에 통합되거나 또는 다른 방식으로 다른 컴포넌트의 일부를 형성할 수 있다. 예를 들어, 메모리(114), 또는 그 부분들은 몇몇 실시예들에서 프로세서(110)에 통합될 수 있다.
프로세서(110)는 본 명세서에 설명되는 기능들을 실행할 수 있는 임의 유형의 프로세서로서 구체화될 수 있다. 예를 들어, 프로세서는 단일 또는 멀티코어 프로세서(들), 디지털 신호 프로세서, 마이크로컨트롤러, 또는 다른 프로세서나 처리/제어 회로로서 구체화될 수 있다. 유사하게, 메모리(114)는 본 명세서에 설명되는 기능들을 실행할 수 있는 임의 유형의 휘발성 또는 비휘발성 메모리 또는 데이터 스토리지로서 구체화될 수 있다. 동작 시에, 메모리(114)는 운영 체제들, 애플리케이션들, 프로그램들, 라이브러리들, 및 드라이버들과 같이 그룹 제어기(102)의 동작 동안에 사용되는 다양한 데이터 및 소프트웨어를 저장할 수 있다. 메모리(114)는 I/O 서브시스템(112)을 경유해 프로세서(110)에 통신 가능하게 결합될 수 있는데, 이 서브시스템은 그룹 제어기(102)의 프로세서(110), 메모리(114), 및 다른 컴포넌트들과의 입/출력 동작들을 용이하게 하는 회로 및/또는 컴포넌트들로서 구체화될 수 있다. 예를 들어, I/O 서브시스템(112)은 메모리 제어기 허브들, 입/출력 제어 허브들, 펌웨어 디바이스들, 통신 링크들(즉, 포인트 투 포인트 링크들, 버스 링크들, 와이어들, 케이블들, 광도파관들, 인쇄회로기판 트레이스들, 기타 등등) 및/또는 입/출력 동작들을 용이하게 하기 위한 다른 컴포넌트들과 서브시스템들로서 구체화되거나 또는 다른 방식으로 이것들을 포함할 수 있다. 몇몇 실시예들에서, I/O 서브시스템(112)은 시스템 온 칩(system-on-a-chip: SoC)의 일부를 형성하고, 그룹 제어기(102)의 프로세서(110), 메모리(114), 및 다른 컴포넌트들과 함께 단일 집적 회로 칩상에 통합될 수 있다.
데이터 스토리지(116)는, 예를 들어 메모리 디바이스들 및 회로들, 메모리 카드들, 하드 디스크 드라이브들, SSD들(solid state drives) 또는 다른 데이터 스토리지 디바이스들과 같은, 데이터의 단기 또는 장기 스토리지를 위해 구성되는 임의 유형의 디바이스 또는 디바이스들로서 구체화될 수 있다. 도 1에 도시된 바와 같이, 데이터 스토리지(116)는 리소스 활용성 데이터(122) 및 하나 이상의 서버 리스트들(124)을 포함한다. 리소스 활용성 데이터(122)는 각각의 서버들(108)로부터 수신될 수 있고 또한 서버(108)의 특정 리소스의 활용의 양, 유형, 및/또는 정도(예를 들어, 메모리 활용, 프로세서 활용, 네트워크 활용, 또는 기타 리소스 활용 정보)에 관련한 정보를 제공할 수 있는데, 이것은 서버들(108) 중에서의 전력 소비를 균형화하는데 사용될 수 있다. 물론, 기타 실시예들에서, 리소스 활용 데이터(122)는 서버들(108) 이외의 컴퓨팅 디바이스들(예를 들어, 리소스 모니터링 디바이스들)로부터 수신될 수 있다.
또한, 그룹 제어기(102)는 그를 위해 전력 소비를 조절하기 위한 서버들(108)의 하나 이상의 리스트들(216)을 수신할 수 있다. 예를 들어, 그룹 제어기(102)는 그룹 제어기(102)와 연관되는 그룹에 속하는 모든 서버들(108)을 포함하는 서버 리스트들(216)을 검색할 수 있다. 몇몇 실시예들에서, 서버 리스트들(216)은 그룹 제어기(102)에 할당되는 서버들(108)에 기초하여 (예를 들어, 그룹 제어기(102)에 의해) 생성될 수 있다. 그룹 제어기(102)에 할당되는, 이것에 의해 제어되는, 또는 다른 방식으로 연관되는 특정 서버들(108)이 시간이 지나면서 변할 수 있다는 점을 알아야 한다. 덧붙여, 하기 논의되는 바와 같이, 그룹 제어기(102)는 리소스 활용 데이터(122)에 기초하여 서버 리스트(216)를 소팅할 수 있다. 몇몇 실시예들에서, 그와 같은 소팅된 리스트들 중 하나 이상은 또한 데이터 스토리지(116)에 저장될 수 있다.
그룹 제어기(102)의 통신 회로(118)는 네트워크(106)를 통해서 그룹 제어기(102)와 다른 원격 디바이스들(예를 들어, 서버들(108)) 간의 통신을 가능하게 할 수 있는 임의의 통신 회로, 디바이스, 또는 이것들의 모음으로서 구체화될 수 있다. 통신 회로(118)는 이러한 통신을 이루기 위한 임의의 하나 이상의 통신 기술들(예컨대, 무선 또는 유선 통신) 및 연관된 프로토콜들(예컨대, 이더넷, 블루투스®, Wi-Fi®, WiMAX, 기타 등등)을 사용하도록 구성될 수 있다. 통신 회로(118)는 다양한 메시징 프로토콜들을 사용하도록 추가로 구성될 수 있다. 예를 들어, 통신 회로(118)는 AMQP(Advanced Message Queuing Protocol)를 이용하여 서버들(108)과 통신할 수 있다. 몇몇 실시예들에서, 통신 회로(118)는 서버들(108) 중 하나 이상과의 대역 내(in-band) 및/또는 대역 외(out-of-band) 통신 연결을 확립할 수 있다. 예를 들어, 통신 회로(118)는 그룹 제어기(102)와 서버(108)의 하나 이상의 컴포넌트들(예를 들어, 보안 보조프로세서) 간의 대역 외 통신을 가능하게 하기 위해 IPMI(Intelligent Platform Management Interface)를 사용할 수 있다.
그룹 제어기(102) 중 하나 이상의 주변 장치들(120)은 임의 수의 부가적 주변 장치 또는 인터페이스 디바이스들을 포함할 수 있다. 주변 장치들(120)에 포함되는 특정 디바이스들은, 예를 들어, 그룹 제어기(102)의 유형 및/또는 의도된 용도에 의존할 수 있다. 도 1에 도시된 바와 같이, 그룹 제어기(102)는 클라우드 환경(104)에 속하거나 다른 경우에는 그 일부를 형성할 수 있다. 클라우드 환경(104)은 분산 컴퓨팅 및/또는 리소스 관리에 적합하고 또한 본 명세서에서 기술되는 기능들을 실행할 수 있는 임의의 클라우드 컴퓨팅 환경으로서 구체화될 수 있다. 몇몇 실시예들에서, 서버들(108)이 대안적으로 또는 덧붙여 클라우드 환경(104)의 일부를 형성할 수 있다는 것을 알아야 한다.
네트워크(106)는 그룹 제어기(102)와 서버들(108) 간의 통신을 용이하게 할 수 있는 임의 유형의 통신 네트워크로서 구체화될 수 있다. 이에 따라, 네트워크(106)는 하나 이상의 네트워크들, 라우터들, 스위치들, 컴퓨터들, 및/또는 다른 개재 디바이스들을 포함할 수 있다. 예를 들어, 네트워크(106)는 하나 이상의 LAN(local area network) 또는 WAN(wide area network)들, 공공으로 이용 가능한 전역 네트워크들(예를 들어, 인터넷), 셀 방식 네트워크들, 전화 네트워크들, 애드혹 네트워크들, 또는 이것들의 임의의 조합으로서 구체화되거나 다른 경우에는 이것들을 포함할 수 있다. 물론, 그룹 제어기(102)가 하나의 네트워크(106)를 통해서 서버들(108)과 통신할 수 있는 반면, 그룹 제어기(102) 및/또는 서버들(108)이 또 다른 네트워크(106)를 통해서 다른 원격 디바이스들과 통신할 수 있다는 것을 알아야 한다.
각각의 서버들(108)은 본 명세서에서 기술되는 기능들을 실행할 수 있는 임의 유형의 컴퓨팅 디바이스 또는 서버로서 구체화될 수 있다. 예를 들어, 몇몇 실시예들에서, 각각의 서버들(108)은 전술한 바와 같은 그룹 제어기(102)와 유사할 수 있다. 예를 들어, 각각의 서버(108)는 기업 차원의 서버 컴퓨터, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 셀 방식 폰, 스마트폰, 개인용 정보 단말기(personal digital assistant), 모바일 인터넷 디바이스, 및/또는 임의의 다른 컴퓨팅/통신 디바이스로서 구체화될 수 있다. 또한, 서버들(108)은 상기에 논의된 그룹 제어기(102)의 것들과 유사한 컴포넌트들을 포함할 수 있다. 그룹 제어기(102)의 그런 컴포넌트들의 설명은 동등하게 서버들(108)의 컴포넌트들의 설명에 적용되고, 설명의 명료성을 기하기 위해 본 명세서에서 반복되지 않는다.
도 1에 예시적으로 도시되는 것처럼, 각각의 서버들(108)은 또한 보안 보조프로세서(126)를 포함할 수 있다. 보안 보조 프로세서(126)는 본 명세서에 설명된 기능들을 실행할 수 있는 임의의 하드웨어 컴포넌트(들) 또는 회로로서 구체화될 수 있다. 몇몇 실시예들에서, 보안 보조 프로세서(126)는 신뢰 실행 환경(trusted execution environment)을 확립할 수 있다. 예를 들어, 보안 보조프로세서(126)는 신뢰 플랫폼 모듈(trusted platform module: TPM), 관리 효율성 엔진(manageability engine: ME), 집중된 보안 엔진(converged security engine: CSE), 또는 또 다른 대역 외 프로세서(out-of-band processor)로서 구현될 수 있다. 몇몇 실시예들에서, 보안 보조프로세서(126)는 서버(108)의 주 프로세서에 대하여 독립적으로 및 대역 외 방식으로 동작하도록 구성되는 대역 외 프로세서로서 구체화된다. 보안 보조프로세서(126)는 서버(108)로 하여금 몇몇 실시예들에서 대역 외 통신 채널을 통해 그룹 제어기(102)와 통신하는 것을 가능하게 할 수 있다. 또한, 서버들(108)은 컴퓨팅 디바이스 또는 서버에서 흔히 발견되는 다른 컴포넌트들, 서브컴포넌트들, 및 디바이스들을 포함할 수 있는데, 이것들은 그룹 제어기(102)을 참조하여 상기에서 논의되지 않았고 설명 명료성을 위해 본 명세서에서 논의되지 않는다는 것을 알아야 한다. 상기에 보여진 것처럼, 서버들(108)은 그룹 제어기(102)와 연관되는 그룹에 속할 수 있다. 그룹 제어기(102)의 그룹에 속하는 특정 서버들이 정의되거나 또는 임의의 적절한 방식으로 확립될 수 있다는 것을 알아야 한다. 예를 들어, 일 실시예에서, 서버들(108)의 각각의 랙(rack)은 그룹 제어기(102)에 의해 제어되는 그룹을 구성할 수 있다. 또한, 몇몇 실시예들에서, 그룹 제어기(102)는 서버들의 다중 그룹을 제어하도록 구성될 수 있다.
도 2를 이제 참조하면, 사용 시에, 시스템(100)의 그룹 제어기(102)는 환경(200)을 확립하고 시스템(100)의 서버(108)는 서버 전력 소비를 조절하기 위한 환경(250)을 확립한다. 예시적 실시예에서의 그룹 제어기(102)의 환경(200)은 전력 균형화 모듈(202), 작업부하 스케줄링 모듈(204), 통신 모듈(206), 리소스 활용 데이터(214), 및 하나 이상의 서버 리스트들(216)을 포함한다. 덧붙여, 전력 균형화 모듈(202)은 랭킹 모듈(208), 전력 조절 모듈(210), 및 조건 모니터링 모듈(212)을 포함한다. 게다가, 예시적 실시예에서의 서버(108)의 환경(250)은 하드웨어 모니터링 모듈(218), 통신 모듈(220), 및 신뢰 실행 환경 모듈(222)을 포함한다. 전력 균형화 모듈(202), 작업부하 스케줄링 모듈(204), 통신 모듈(206), 랭킹 모듈(208), 전력 조절 모듈(210), 조건 모니터링 모듈(212), 보안 보조프로세서(126), 하드웨어 모니터링 모듈(218), 통신 모듈(220), 및 신뢰 실행 환경 모듈(222)의 각각은 하드웨어, 소프트웨어, 펌웨어, 또는 이것들의 조합으로서 구체화될 수 있다.
하기에서 더 상세하게 논의되는 것처럼, 전력 균형화 모듈(202)은 서버들(108)의 리소스 활용 데이터(214)에 기초하여 서버들(108)의 전력 소비를 균형화한다. 각각의 서버들(108)의 전력 소비는, 예를 들어, 서버(108)에서의 프로세서(들)의 전압과 주파수 동작점 및 다른 전력 관련 인자들을 포함하는 인자들에 의해 표시될 수 있다. 예를 들어, 일 실시예에서, 제1 및 제2 서버들(108)은 각각이 소정 주파수(예를 들어, 2.0 Gigahertz)에서 동작하는 프로세서를 포함할 수 있다. 이에 따라 각각의 서버들(108)의 프로세서들은 대략 동일한 전력량을 소비한다. 제1 서버(108)가 거의 독점적으로 메모리 접근들을 수반하는 작업부하들을 다루고 있을 수 있는 반면, 제2 서버(108)는 프로세서 집약적인 작업부하들을 다루고 있을 수 있다. 그러한 실시예에서, 제1 서버(108)는 제2 서버(108)가 그 프로세서를 활용하고 있는 것보다 현저하게 적게 그 프로세서를 활용하고 있다. 그에 따라서, 전력 균형화 모듈(202)은 제1 서버(108)의 프로세서에 의해 불필요하게 소비되는 전력을 제2 서버(108)에게 시프트시킬 수 있다. 즉, 몇몇 실시예들에서, 전력 균형화 모듈(202)은, 서버들(108) 중의 총 전력 소비에 영향을 주지 않고서, 프로세서들이 광범위하게 활용되지 않는 서버(108)에 대한 전력 할당을 감소시키고 프로세서 활용이 상당한 정도로 이뤄지는 서버들(108)에 대해 상응하는 양만큼 전력 할당을 증가시킨다. 하기 논의되는 바와 같이, 그렇게 함에 있어서, 전력 균형화 모듈(202)은, 예를 들어, 서버들(108)의 프로세서들의 전압과 주파수 동작점을 수정할 수 있다. 몇몇 실시예들에서, 전력 균형화 모듈(202)은 또한 서버들(108) 및/또는 서버들(108)의 컴포넌트들의 전력 소비에 상한을 두기 위해 전력 상한 설정 특징들을 통합할 수 있다.
랭킹 모듈(208)은 서버들(108)들에 관한 리소스 활용 데이터(214)를 수신하고 서버들(108)의 리소스 활용량에 따라서 이들의 순위를 매긴다(즉, 소팅한다). 예를 들어, 일 실시예에서 리소스 활용 데이터(214)는 메모리 활용 데이터를 포함할 수 있고, 랭킹 모듈(208)은 서버들(108)의 메모리 활용량에 의해 순위가 매겨지는 서버들(108)의 소팅된 리스트를 생성할 수 있다. 또 다른 실시예에서, 리소스 활용 데이터(214)는 서버들(108)의 프로세서 활용량을 표시할 수 있고, 이것은 그에 따라서 서버들(108)의 순위를 매기는 데에 사용될 수 있다. 리소스 활용 데이터(214)의 임의의 하나 이상의 적절한 양태들이 단독으로 또는 조합으로 다양한 실시예들에서 서버들(108)의 순위를 매기는 데 사용될 수 있다는 것을 알아야 한다.
랭킹 모듈(208)은 또한 소팅된 리스트에서의 각각의 서버들(108)을 소스 서버 또는 목적지 서버로서 식별할 수 있다. 본 명세서에서 논의되는 것처럼, 전력은 전력 균형화 모듈(202)에 의해 소스 서버로부터 목적지 서버에게 시프팅된다. 성가 예에서, 제1 서버(108)는 소스 서버이고 제2 서버(108)는 목적지 서버이다. 몇몇 실시예들에서, 랭킹 모듈(208)은 소팅된 리스트에서의 서버들(108)의 순서에 기초하여 소팅된 리스트에서의 서버들(108)의 절반을 소스 서버들로서 및 소팅된 리스트의 서버들(108)의 절반을 목적지 서버들로서 식별한다. 예를 들어, 몇몇 실시예들에서, 서버들(108)의 리소스 활용에 의해 순위가 매겨지는 소팅된 리스트에서의 서버들(108)의 제1 절반은 소스 서버들이고, 서버들(108)의 제2 절반은 목적지 서버들이다.
랭킹 모듈(208)은 리소스 활용 데이터 및/또는 랭킹 정보(예로, 소팅된 리스트)를 작업부하 스케줄링 모듈(204)에게 또한 제공할 수 있어서, 작업부하 스케줄링 모듈(204)이 예를 들어 어느 서버(108)에 새로운 작업부하들 및/또는 가상 머신들을 위치시키거나 라우팅할지를 결정할 수 있도록 한다. 그렇게 함에 있어서, 작업부하 스케줄링 모듈(204)은 임의의 랭킹, 스케줄링, 및/또는 작업부하들을 스케줄링하고 및/또는 가상 머신들을 위치시키는 데에 적합한 기타 알고리즘들을 활용할 수 있다. 작업부하들이 달라지는 계산 리소스들을 이용한다는 것을 알아야 한다. 그에 따라서, 작업부하 스케줄링 모듈(204)은, 데이터 센터의 총 전력 소비를 증가시키지 않고서 서버들(108)의 전력 소비를 최소화하고 및/또는 서버들(108)상에서 실행되는 작업부하들의 작업부하 밀도를 최대화하도록 새로운 작업부하들을 적절히 스케줄링하기 위해 해당 정보를 활용할 수 있다.
전력 조절 모듈(210)은 서버들(108)의 하나 이상의 컴포넌트들에 의해 소비되는 전력량을 조절한다. 예시적 실시예에서, 전력 조절 모듈(210)은 서버들(108)의 프로세서들에 의해 소비되는 전력을 조절한다. 그러나, 기타 실시예들에서, 다른 컴포넌트들의 전력 소비는 본 명세서에서 기술되는 방법들 및 아키텍처를 이용하여 수정될 수 있다. 하기 보여진 것처럼, 전력 조절 모듈(210)은 쌍쌍이 서버들(108)의 전력 소비를 조절할 수 있다(예를 들어, 하나의 서버(108)에서 소정량만큼 전력 소비를 감소시키는 한편 또 다른 서버(108)에서 동일양만큼 전력 소비를 증가시킴). 예를 들어, 최대 리소스 활용을 갖는 소팅된 리스트에서의 서버(108)는 최소 리소스 활용을 갖는 소팅된 리스트에서의 서버(108)와 짝을 이룰 수 있다. 또한, 제2 최대 리소스 활용을 갖는 소팅된 리스트에서의 서버(108)는 제2 최소 리소스 활용을 갖는 소팅된 리스트에서의 서버(108)와 짝을 이룰 수 있고, 계속 그런 식으로 될 수 있다. 몇몇 실시예들에서, 전력 조절 모듈(210)은 서버들(108)의 쌍(예를 들어, 소스-목적지 서버 쌍) 사이의 리소스 활용에서의 차이를 계산하고, 차이에 대한 문턱 값이 초과될 때만 서버들(108)의 전력 소비를 조절한다. 즉, 몇몇 실시예들에서, 전력 조절 모듈(210)은 이들의 리소스 활용들에서의 차이가 최소이면 두 개의 서버(108) 간의 전력 소비를 조절하지 않을 수 있다. 서버들(108)에 의해 소비되는 전력이 기타 실시예들에서 임의의 다른 적절한 알고리즘 또는 서버들(108)의 그룹화에 따라 조절될 수 있다는 것을 알아야 한다.
예시적 실시예에서, 전력 조절 모듈(210)은, 예를 들어 그 프로세서 상태(즉, 그 "P-상태")를 수정함으로써 서버들(108) 중 하나의 서버의 프로세서에 의해 소비되는 전력을 조절할 수 있다. 다시 말하면, 전력 조절 모듈(210)은 프로세서의 전압과 주파수 동작점(흔히, 단순히 주파수 동작점으로서 지칭됨)을 조절할 수 있다. 프로세서에 의해 소비되는 전력량이 프로세서의 주파수 동작점이 감소될 때 감소된다는 것을 알아야 한다. 유사하게, 프로세서에 의해 소비되는 전력량은 프로세서의 주파수 동작점이 증가될 때 증가된다. 다시 말하면, 프로세서의 전력 소비는 프로세서의 주파수 동작점에 정비례한다. 덧붙여, 프로세서의 주파수 동작점을 감소시키는 것은 프로세서의 실효적 프로세서 활용이 주어진 작업부하에 대해 증가하도록 야기하는데, 그 이유는 동일 작업이 이제 더 낮은 주파수에서 동작하는 프로세서에 의헤 처리될 것이기 때문이다. 마찬가지로, 프로세서의 주파수 동작점을 증가시키는 것은 실효적 프로세서 활용이 감소하도록 야기한다. 프로세서의 주파수 동작점을 수정함으로써, 예를 들어 프로세서의 활용은 그 할당된 작업부하에 의한 해당 서버의 리소스들의 전력 소비율들과 보조를 맞추도록 된다. 물론, 기타 실시예들에서, 전력 조절 모듈(210)은 임의의 적절한 메커니즘들을 이용하여 서버들(108)의 컴포넌트(들)에 의해 소비되는 전력을 조절할 수 있다.
조건 모니터링 모듈(212)은 전력 균형화 모듈(202)이 리소스 활용 데이터(214)에 기초하여 서버들(108)의 전력 소비 상황을 재평가하여야 하는 때를 결정한다. 예를 들어, 조건 모니터링 모듈(212)은 서버들(108)의 전력 소비가 주기적으로 또는 몇몇 다른 시간적 제한 또는 조건에 기초하여 평가되도록 타이머를 구현할 수 있다. 기타 실시예들에서, 조건 모니터링 모듈(212)은, 전력 균형화 모듈(202)이 전력 소비를 평가하기 위해서 몇몇 다른 조건(예를 들어, 새롭거나 놓여지지 않은 작업부하들의 문턱 수)의 생성에 대하여 모니터링할 수 있다. 몇몇 실시예들에서, 조건 모니터링 모듈(212)은 또한 그룹 제어기(102)가 서버들(108)로부터 리소스 활용 데이터(214)를 수신하거나 요청하게 될 조건들을 (예를 들어, 주기적으로) 확립할 수 있다. 물론, 기타 실시예들에서, 그러한 결정은 대신에 서버들(108)에 의해 이뤄질 수 있다.
통신 모듈(206)은 네트워크(106)를 통한 그룹 제어기(102)와 원격 디바이스들 (예를 들어, 서버들(108)) 간의 통신을 다룬다. 본 명세서에서 논의되는 것처럼, 통신 모듈(206)은 서버들(108)으로부터 리소스 활용 데이터(214)를 수신할 수 있다. 그렇게 함에 있어서, 통신 모듈(206)은 AMQP와 같은 메시징 프로토콜을 이용할 수 있다. 덧붙여, 통신 모듈(206)은 서버들(108)에게 (예를 들어, IPMI 또는 또 다른 대역 외 통신 메커니즘을 이용하는 보안 전송을 통해) 전력 균형화 명령들을 전송할 수 있다. 상기에 보여진 것처럼, 전력 균형화 명령들은 서버들(108) 중 어느 컴포넌트들이 수정될 것인지(예를 들어, 프로세서, 네트워크 인터페이스 제어기, 기타 등등) 및 이들이 어떻게 수정되어야 하는지(예를 들어, 주파수 동작점을 감소시키고, 주파수 동작점을 증가시키고, 프로세서의 P-상태를 "0"으로 변경하고, 기타 등등)를 확인하는 정보를 포함한다.
상기에 보여진 것처럼, 각각의 서버들(108)은 하드웨어 모니터링 모듈(218), 통신 모듈(220), 및 신뢰 실행 환경 모듈(222)을 포함한다. 서버(108)의 하드웨어 모니터링 모듈(218)은 서버(108)의 하나 이상의 리소스들(예를 들어, 프로세서, 메모리, 네트워크 인터페이스 카드, 보조프로세서, 또는 다른 컴포넌트들)의 활용을 모니터링한다. 덧붙여, 하드웨어 모니터링 모듈(218)은 모니터링된 리소스 활용에 기초하여 해당 특정 서버(108)에 대한 리소스 활용 데이터(214)를 생성한다. 리소스 활용 데이터(214)가 임의의 적절한 방식으로 리소스 활용을 표현할 수 있다는 것을 알아야 한다. 예를 들어, 리소스 활용 데이터는 절대 값들, 상대 값들, 백분율들, 비들, 분포들, 또는 임의의 다른 적절한 표현으로서 나타내어질 수 있다.
통신 모듈(220)은 네트워크(106)를 통한 서버(108)와 원격 디바이스들(예를 들어, 그룹 제어기(102)) 간의 통신을 다룬다. 상기 논의된 바와 같이, 통신 모듈(220)은 생성된 리소스 활용 데이터(214)를 그룹 제어기(102)에게 전송할 수 있다. 특정 실시예에 의존하여, 통신 모듈(220)은 주기적으로 또는 일부 상태의 생성(예를 들어, 특정 수의 작업부하들의 완료)에 응답하여 리소스 활용 데이터(214)를 전송할 수 있다. 통신 모듈(220)은 또한 그룹 제어기(102)로부터 서버(108)로 하여금서버(108)와 또 다른 서버 사이의 전력 소비를 균형화하기 위해 서버(108)의 컴포넌트를 수정하도록 지시하는 전력 균형화 명령들을 수신할 수 있다.
신뢰 실행 환경 모듈(222)은 전력 균형화 명령들을 (예로, 통신 모듈(220)로부터 또는 그룹 제어기(102)로부터 직접적으로) 수신할 수 있고, 전력 소비를 실시하도록 그에 따라서 서버(108)의 식별된 컴포넌트를 수정할 수 있다. 신뢰 실행 환경 모듈(222)은 서버(108)를 위한 안전하고 신뢰받는 실행 환경을 확립할 수 있다. 몇몇 실시예들에서, 보안 보조프로세서(126)는 신뢰 실행 환경 모듈(222)을 포함한다. 즉, 신뢰 실행 환경 모듈(222)은 보안 보조프로세서(126)에 통합되거나 이에 의해 실행될 수 있다. 또한, 몇몇 실시예들에서, 그룹 제어기(102)로부터의 전력 균형화 명령들을 신뢰 실행 환경 모듈(222)에 의해서만 수신되거나 다뤄질 수 있다. 그에 따라서, 신뢰 실행 환경 모듈(222)(또는 보안 보조프로세서(126))은, 예를 들어 그룹 제어기(102)로부터 수신되는 전력 균형화 명령에 기초하여 (예로, 프로세서의 주파수 동작점을 수정함으로써) 서버(108)의 프로세서의 프로세서 활용을 수정할 수 있다.
도 3 및 도 4를 이제 참조하면, 사용 시에, 시스템(100)의 그룹 제어기(102)는 서버 전력 소비를 조절하기 위한 방법 300을 실행할 수 있다. 예시된 방법 300은 그룹 제어기(102)가 서버들(108)의 전력 소비를 조절할 지의 여부를 결정하는 도 3의 블록 302로 시작한다. 만약 그렇다면, 그룹 제어기(102)는 블록 304에서 전력 조절 파라미터들을 확립한다. 예를 들어, 그룹 제어기(102)는 블록 306에서서 활용 문턱값을 결정할 수 있고, 이것은 하기 논의되는 바와 같이 두 개의 서버(108) 사이의 전력 소비를 균형화할 지의 여부를 결정하는데 사용될 수 있다. 즉, 그룹 제어기(102)는 (즉, 전력 전송에 대한) 소스 서버와 목적지 서버 사이의 리소스 활용에서의 차이(즉, "활용 차이")를 계산할 수 있고, 몇몇 실시예들에서, 그룹 제어기(102)는 활용 차이가 활용 문턱 값보다 더 큰 경우에만 선택된 소스와 목적지 서버들 간의 전력을 균형화한다. 블록 308에서, 그룹 제어기(102)는 전력 소비 변화량들을 확립할 수 있다. 즉, 그룹 제어기(102)는 그것에 의해 대응하는 서버들(108)의 전력 소비를 그만큼 증가시키고/감소시키는 양들(예를 들어, 절대 값, 백분율, 또는 기타 양)을 결정할 수 있다. 예시적 실시예에서, 소스와 목적지 서버들의 전력 소비는 동일한 전력 소비 변화량만큼 수정된다. 덧붙여, 블록 310에서, 그룹 제어기(102)는 전력 사용 평가 조건을 결정할 수 있다. 다시 말하면, 그룹 제어기(102)는 리소스 활용 데이터(214)에 기초하여 서버들(108)의 전력 소비 상태를 재평가할 때를 결정할 수 있다. 상기 논의한 바와 같이, 전력 사용 평가 조건은 실시예에 의존하여 기간의 만료 또는 몇몇 조건의 생성에 기초할 수 있다. 활용 문턱값, 전력 소비 변화량들, 및 전력 사용 평가 조건의 각각은 그룹 제어기(102)에 의해 미리 결정되는 정적 값들일 수 있거나 또는 동적으로 결정될 수 있다는 것을 알아야 한다.
블록 312에서, 그룹 제어기(102)는 전력 소비를 조절할 서버들(108)의 리스트(216)를 검색한다. 상기 논의한 바와 같이, 서버 리스트(216)는 그룹 제어기(102)와 연관되는 그룹에 속하는 모든 서버들(108)을 식별할 수 있고 또한 그룹 제어기(102)상에 저장되거나 또는 원격 디바이스(예를 들어, 클라우드 컴퓨팅 디바이스)로부터 검색될 수 있다. 블록 314에서, 그룹 제어기(102)는 리스트(216)에서의 각각의 서버들(108)로부터 리소스 활용 데이터(214)를 수신한다. 몇몇 실시예들에서, 리소스 활용 데이터(214)는 그룹 제어기(102)로부터의 요청에 응답하여 수신되는 반면, 기타 실시예들에서 리소스 활용 데이터(214)는 상기 논의한 바와 같이 서버들(108)상에서의 몇몇 조건의 생성에 응답하여(예를 들어, 주기적으로) 서버들(108)로부터 그룹 제어기(102)에게 전송된다. 블록들 304, 312, 및 314가 또 다른 실시예에서 또 다른 순서로 생성할 수 있다는 것을 또한 알아야 한다.
블록 316에서, 그룹 제어기(102)는 리소스 활용 데이터(214)에 따라 서버 리스트(216)를 소팅한다. 상기에 보여진 것처럼, 리소스 활용 데이터(214)는 서버들(108)의 특정 리소스의 활용(예를 들어, 메모리 활용, 프로세서 활용, 네트워크 활용, 또는 다른 리소스 활용 정보)의 양, 유형, 및/또는 정도에 관한 정보를 포함할 수 있다. 몇몇 실시예들에서, 그룹 제어기(102)는 특정 리소스의 활용에 따라 서버 리스트(216)를 소팅한다. 예를 들어, 그룹 제어기(102)는, 최소 메모리 활용을 갖는 서버(108)를 소팅된 리스트의 한 종단에(즉, 소팅된 리스트의 시작 또는 끝에) 그리고 최대 메모리 활용을 갖는 서버(108)를 소팅된 리스트의 다른 종단에 두는 식으로 리스트(216)에서의 서버들(108)의 메모리 활용량에 따라 서버 리스트(216)를 소팅할 수 있다. 물론, 소팅된 리스트는 또한 기타 실시예들에서 서버들(108)의 다른 리소스들의 활용에 기초하여 단독으로 또는 조합으로 생성될 수 있다.
블록 318에서, 그룹 제어기(102)는 소팅된 리스트에 기초하여 소스와 목적지 서버들을 식별한다. 몇몇 실시예들에서, 리소스 활용 데이터(214)에 기초하여 소팅된 리스트의 절반(즉, 상위 절반 또는 하위 절반)이 소스 서버들로서 식별될 수 있고 나머지 절반은 목적지 서버들로서 식별될 수 있다. 하기 논의하는 바와 같이, 활용 문턱 값이 만족된다고 가정할 때, 소스 서버들은 전력 소비가 전력 소비 변화량만큼 감소될 것들이고 목적지 서버들은 전력 소비가 몇몇 실시예들에서 대응하는 전력 소비 변화량만큼 증가될 것들이다. 소팅된 리스트에서 홀수 개수의 서버들(108)이 있는 실시예에서, "중앙" 서버(108)는 특정 실시예에 의존하여 적절한 방식으로 다뤄질 수 있다(예를 들어, 무시될 수 있다).
도 4를 이제 참조하면, 그룹 제어기(102)는 블록 302에서 소팅된 리스트로부터 다음 소스 서버와 다음 목적지 서버를 선택한다. 블록 322에서, 그룹 제어기(102)는, 리스트(216)가 그에 의해 소팅되는, 특정 리소스(예를 들어, 메모리)와 연관되는 리소스 활용 데이터(214)에 기초하여 선택된 소스와 목적지 서버들 간의 리소스 활용에서의 차이(즉, 활용 차이)를 계산한다. 블록 324에서, 그룹 제어기(102)는 활용 차이가 도 3의 블록 306에서 결정된 활용 문턱 값을 초과하는지를 결정한다. 그렇지 않다면, 방법 300은 그룹 제어기(102)가 다음 소스 서버와 다음 목적지 서버를 선택하는 블록 320으로 복귀한다. 상기 논의한 바와 같이, 소스와 목적지 서버들의 쌍들은 임의의 적절한 방식으로 선택될 수 있다. 그룹 제어기(102)가 활용 차이가 활용 문턱 값을 초과한다고 결정하면, 그룹 제어기(102)는 블록 326에서 선택된 소스와 목적지 서버들 간의 전력 소비를 조절한다. 예를 들어, 블록 328에서, 그룹 제어기(102)는 확립된 버짓(budget) 변화량만큼 소스 서버의 프로세서 활용을 증가시킬 수 있다. 덧붙여, 블록 330에서, 그룹 제어기(102)는 대응하는 전력 소비 변화량만큼 목적지 서버의 프로세서 활용을 감소시킬 수 있다. 상기 논의한 바와 같이, 그룹 제어기(102)는 예를 들어 프로세서의 주파수 동작점을 조절함으로써 프로세서 활용을 수정할 수 있다.
블록 332에서, 그룹 제어기(102)는 그룹 제어기(102)가 아직 다루어보지 않은(예를 들어 활용 차이를 계산하지 않은) 소팅된 리스트에서의 임의의 잔여 소스와 목적지 서버들이 있는지를 결정한다. 만약 그렇다면, 방법 300은 그룹 제어기(102)가 활용 차이를 계산할 다음 소스 및 목적지 서버 쌍을 선택하는 블록 320으로 복귀한다. 그러나, 어떤 그러한 쌍들도 남아 있지 않다면, 그룹 제어기(102)는 블록 334에서 전력 활용 평가 조건이 만족되기까지 대기한다. 즉, 그룹 제어기(102)는 도 3의 블록 310에서 결정되는 전력 사용 평가 조건들 중 하나 이상의 생성을 모니터링한다. 앞서 논의한 바와 같이, 전력 사용 평가 조건은, 조건(예를 들어, 타이머 만료)을 식별하고, 이것은 만약 만족되면 그룹 제어기(102)가 서버들(108)의 리소스 활용 데이터(214)를 재평가해야 하는 것을 나타낸다. 조건이 만족되었다면, 방법 300은 그룹 제어기(102)가 서버들(108)의 새로운 리소스 활용 데이터(214)를 수신하는 도 3의 블록 314로 복귀한다. 몇몇 실시예들에서, 그룹 제어기(102)가 평가 조건의 생성에 대하여 또 다른 순서로 리소스 활용 데이터(214)를 수신할 수 있다는 것을 알아야 한다.
도 5를 이제 참조하면, 사용 시에, 시스템(100)의 서버들(108) 중 하나 이상은 전력 최적화를 위한 방법 500을 실행할 수 있다. 예시된 방법 500은 서버(108)가 서버(108)의 하나 이상의 리소스들의 모니터링된 활용에 기초하여 리소스 활용 데이터(214)를 생성하는 블록 502로 시작한다. 블록 504에서, 서버(108)는 생성된 리소스 활용 데이터(214)를 그룹 제어기(102)에게 전송한다. 앞서 논의한 바와 같이, 리소스 활용 데이터(214)는 임의의 적절한 형태 또는 구조로 생성되고 전송될 수 있다. 블록 506에서, 서버(108)는, 서버(108)의 프로세서 활용을 수정하라는 명령이 그룹 제어기(102)로부터 수신되었는지를 결정한다. 물론, 또 다른 실시예에서, 서버(108)는 몇몇 다른 전력 균형화 명령이 그룹 제어기(102)로부터 수신되었는지를 결정할 수 있다. 예를 들어, 또 다른 전력 균형화 명령은 서버(108)의 또 다른 리소스 또는 컴포넌트(예를 들어, 네트워크 카드)를 수정하는 것과 관계될 수 있다.
서버(108)가 프로세서 활용 명령이 그룹 제어기(102)로부터 수신되었다고 결정하면, 서버(108)는 블록 508에서 그에 따라서 프로세서 활용을 수정한다. 앞서 논의한 바와 같이, 서버(108)는, 예를 들어 프로세서의 주파수 동작점을 수정함으로써 그렇게 할 수 있고; 프로세서 활용은 주파수 동작점을 감소시킴으로써 증가되고 프로세서의 주파수 동작점을 증가시킴으로써 감소된다. 또 다른 실시예에서, 서버(108)가 또 다른 전력 균형화 명령을 수신하면, 서버(108)는 관련 컴포넌트들의 활용을 적절하게 수정할 수 있다. 서버(108)가 블록 506에서 프로세서 활용 명령이 수신되지 않았다고 결정하거나 또는 서버가 블록 508에서 프로세서 활용을 수정하였다면, 서버(108)는 모니터링 조건이 블록 510에서 만족되었는지를 결정한다. 상기에 보여진 것처럼, 서버(108)는 모니터링 조건을 확립할 수 있는데, 이는 만약 만족된다면, 서버(108)가 리소스 활용 데이터(214)를 생성하고 또한 리소스 활용 데이터(214)를 그룹 제어기(102)에게 전송하는 결과를 낳는 조건을 정의한다. 서버(108)가 모니터링 조건이 만족되었다고 결정하면, 방법 500은 서버(108)가 현재 리소스 활용 데이터(214)를 생성하는 블록 502로 복귀한다. 그렇지 않다면, 방법 500은 서버(108)가 프로세서 활용 명령(또는 보다 일반적으로 전력 균형화 명령)이 그룹 제어기(102)로부터 수신되었는지를 결정하는 블록 506으로 복귀한다.
예들
본 명세서에 개시된 기술들의 예시적 예들이 아래에 제공된다. 기술들의 실시예는 아래에 설명되는 예들 중 임의의 하나 이상의 및 임의의 조합을 포함할 수 있다.
예 1은 서버 전력 소비를 조절하기 위한 컴퓨팅 디바이스를 포함하는데, 컴퓨팅 디바이스는 복수의 서버로부터 리소스 활용 데이터를 수신하기 위한 통신 모듈; 및 (i) 리소스 활용 데이터에 기초하여 복수의 서버의 소스 서버와 목적지 서버를 식별하고; (ii) 리소스 활용 데이터에 기초하여 식별된 소스 서버와 식별된 목적지 서버 간의 리소스 활용에서의 차이를 계산하고; (iii) 리소스 활용에서의 차이가 문턱값을 초과한다는 결정에 응답하여 전력 소비 변화량만큼 소스 서버의 프로세서의 프로세서 활용을 증가시키고, 및 (iv) 리소스 활용에서의 차이가 문턱값을 초과한다는 결정에 응답하여 대응하는 전력 소비 변화량만큼 목적지 서버의 프로세서의 프로세서 활용을 감소시키는 전력 균형화 모듈을 포함한다.
예 2는 예 1의 주제를 포함하고, 여기서 컴퓨팅 디바이스는 복수의 서버를 포함하는 서버들의 그룹의 그룹 제어기를 포함한다.
예 3은 예 1 또는 예 2의 주제를 포함하고, 여기서 통신 모듈은 복수의 서버를 포함하는 서버들의 리스트를 검색하기 위한 것이고; 및 전력 균형화 모듈은 서버들의 리소스 활용에 기초하여 서버들의 리스트를 소팅하기 위한 것이다.
예 4는 예들 1-3 중 임의의 것의 주제를 포함하고, 여기서 전력 균형화 모듈은 소팅된 리스트에서의 서버들의 순서에 기초하여 소팅된 리스트에서의 서버들의 절반을 목적지 서버들로서 식별하고 소팅된 리스트에서의 서버들의 나머지 절반을 소스 서버들로서 식별하기 위한 것이다.
예 5는 예들 1-4 중 임의의 것의 주제를 포함하고, 여기서 리소스 활용 데이터는 대응하는 서버의 메모리 활용량을 식별한다.
예 6은 예들 1-5 중 임의의 것의 주제를 포함하고, 여기서 소스 서버의 프로세서의 프로세서 활용을 증가시키는 것은 소스 서버의 프로세서의 프로세서 상태를 수정하는 것을 포함하며, 여기서 프로세서 상태는 프로세서의 주파수 동작점을 정의한다.
예 7은 예들 1-6 중 임의의 것의 주제를 포함하고, 여기서 소스 서버의 프로세서의 프로세서 활용을 증가시키는 것은 소스 서버의 프로세서의 동작 주파수를 감소시키는 것을 포함하고, 여기서 목적지 서버의 프로세서의 프로세서 활용을 감소시키는 것은 목적지 서버의 프로세서의 동작 주파수를 증가시키는 것을 포함한다.
예 8은 예들 1-7 중 임의의 것의 주제를 포함하고, 여기서 통신 모듈은 복수의 서버로부터 리소스 활용 데이터를 주기적으로 수신하는 것을 포함한다.
예 9는 전력 최적화를 위한 서버를 포함하고, 서버는 (i) 서버의 리소스의 활용을 모니터링하고 및 (ii) 모니터링된 리소스 활용에 기초하여 리소스 활용 데이터를 생성하기 위한 하드웨어 모니터링 모듈; (i) 서버를 포함하는 서버들의 그룹의 그룹 제어기에게 리소스 활용 데이터를 전송하고; 및 (ii) 리소스 활용 데이터의 전송에 응답하여 서버의 프로세서의 프로세서 활용을 수정하기 위한 명령을 그룹 제어기로부터 수신하는 통신 모듈 - 여기서 명령의 수신은 서버의 리소스 활용 데이터가 적어도 문턱 값 양만큼 서버들의 그룹의 또 다른 서버의 리소스 활용 데이터와 다르다는 표시임-; 및 그룹 제어기의 명령에 기초하여 전력 소비 변화량만큼 서버의 프로세서의 프로세서 활용을 수정하기 위한 보안 보조프로세서를 포함한다.
예 10은 예 9의 주제를 포함하고, 여기서 프로세서의 프로세서 활용을 수정하는 것은 프로세서의 프로세서 상태를 수정하는 것을 포함하며, 여기서 프로세서 상태는 프로세서의 주파수 동작점을 정의한다.
예 11은 예 9 또는 예 10의 주제를 포함하고, 여기서 보안 보조프로세서는 프로세서의 프로세서 활용을 감소시키라는 그룹 제어기로부터의 명령의 수신에 응답하여 프로세서의 동작 주파수를 증가시키고; 및 프로세서의 프로세서 활용을 증가시키라는 그룹 제어기로부터의 명령의 수신에 응답하여 프로세서의 동작 주파수를 감소시키기 위한 것이다.
예 12는 예들 9-11 중 임의의 것의 주제를 포함하고, 여기서 통신 모듈은 리소스 활용 데이터를 그룹 제어기에게 주기적으로 전송하기 위한 것이다.
예 13은 예들 9-12 중 임의의 것의 주제를 포함하고, 여기서 리소스 활용 데이터는 서버의 메모리 활용량을 식별한다.
예 14는 컴퓨팅 디바이스에 의해 서버 전력 소비를 조절하기 위한 방법을 포함하는데, 이 방법은, 컴퓨팅 디바이스에 의해, 복수의 서버로부터 리소스 활용 데이터를 수신하는 단계; 컴퓨팅 디바이스상에서, 리소스 활용 데이터에 기초하여 복수의 서버의 소스 서버와 목적지 서버를 식별하는 단계; 컴퓨팅 디바이스상에서, 리소스 활용 데이터에 기초하여 식별된 소스 서버와 식별된 목적지 서버 간의 리소스 활용에서의 차이를 계산하는 단계; 컴퓨팅 디바이스에 의해, 리소스 활용에서의 차이가 문턱값을 초과한다는 결정에 응답하여 전력 소비 변화량만큼 소스 서버의 프로세서의 프로세서 활용을 증가시키는 단계; 및 컴퓨팅 디바이스에 의해, 리소스 활용에서의 차이가 문턱값을 초과한다는 결정에 응답하여 대응하는 전력 소비 변화량만큼 목적지 서버의 프로세서의 프로세서 활용을 감소시키는 단계를 포함한다.
예 15는 예 14의 주제를 포함하고, 여기서 리소스 활용 데이터를 수신하는 단계는 컴퓨팅 디바이스가 그에 대해 그룹 제어기인 서버들의 그룹에 속하는 복수의 서버로부터 리소스 활용 데이터를 수신하는 단계를 포함한다.
예 16은 예 14 또는 예 15 중 임의의 것의 주제를 포함하고, 컴퓨팅 디바이스에 의해, 복수의 서버를 포함하는 서버들의 리스트를 검색하는 단계; 및 컴퓨팅 디바이스상에서, 서버들의 리소스 활용량에 기초하여 서버들의 리스트를 소팅하는 단계를 추가로 포함한다.
예 17은 예들 14 내지 16 중 임의의 것의 주제를 포함하고, 컴퓨팅 디바이스상에서, 소팅된 리스트에서의 서버들의 순서에 기초하여 소팅된 리스트에서의 서버들의 절반을 목적지 서버들로서 및 소팅된 리스트에서의 서버들의 나머지 절반을 소스 서버들로서 식별하는 단계를 추가로 포함한다.
예 18은 예들 14 내지 17 중 임의의 것의 주제를 포함하고, 여기서 리소스 활용 데이터를 수신하는 단계는 복수의 서버로부터 리소스 활용 데이터를 수신하는 단계를 포함하고, 리소스 활용 데이터는 대응하는 서버의 메모리 활용량을 식별한다.
예 19는 예들 14-18 중 임의의 것의 주제를 포함하고, 여기서 소스 서버의 프로세서의 프로세서 활용을 증가시키는 단계는 소스 서버의 프로세서의 프로세서 상태를 수정하는 단계를 포함하며, 프로세서 상태는 프로세서의 주파수 동작점을 정의한다.
예 20은 예들 14 내지 19 중 임의의 것의 주제를 포함하고, 여기서 소스 서버의 프로세서의 프로세서 활용을 증가시키는 단계는 소스 서버의 프로세서의 동작 주파수를 감소시키는 단계를 포함하고, 여기서 목적지 서버의 프로세서의 프로세서 활용을 감소시키는 단계는 목적지 서버의 프로세서의 동작 주파수를 증가시키는 단계를 포함한다.
예 21은 예들 14-20 중 임의의 것의 주제를 포함하고, 여기서 리소스 활용 데이터를 수신하는 단계는 복수의 서버로부터 리소스 활용 데이터를 주기적으로 수신하는 단계를 포함한다.
예 22는 프로세서; 및 프로세서에 의해 실행될 때 컴퓨팅 디바이스로 하여금 예들 14 내지 21 중 임의의 것의 방법을 실행하도록 야기하는 복수의 명령어를 그 안에 저장한 메모리를 포함하는 컴퓨팅 디바이스를 포함한다.
예 23은 실행되는 것에 응답하여 컴퓨팅 디바이스로 하여금 예들 14 내지 21 중 어느 하나의 방법을 수행하게 하는 복수의 명령어를 저장하는 하나 이상의 머신 판독 가능 저장 매체를 포함한다.
예 24는 로케이션 개인 정보를 다루기 위한 컴퓨팅 디바이스를 포함하고, 컴퓨팅 디바이스는 예들 14 내지 21 중 임의의 것의 방법을 실행하기 위한 수단을 포함한다.
예 25는 서버의 전력 최적화를 위한 방법을 포함하는데, 방법은, 서버상에서,서버의 리소스의 활용을 모니터링하는 단계; 서버상에서, 모니터링된 리소스 활용에 기초하여 리소스 활용 데이터를 생성하는 단계; 서버로부터, 서버를 포함하는 서버들의 그룹의 그룹 제어기에게 리소스 활용 데이터를 전송하는 단계; 서버에 의해, 리소스 활용 데이터의 전송에 응답하여 서버의 프로세서의 프로세서 활용을 수정하기 위한 명령을 그룹 제어기로부터 수신하는 단계 - 여기서 명령의 수신은 서버의 리소스 활용 데이터가 적어도 문턱 값 양만큼 서버들의 그룹의 또 다른 서버의 리소스 활용 데이터와 다르다는 표시임 -; 및 서버상에서, 그룹 제어기의 명령에 기초하여 전력 소비 변화량만큼 서버의 프로세서의 프로세서 활용을 수정하는 단계를 포함한다.
예 26은 예 25의 주제를 포함하고, 여기서 프로세서의 프로세서 활용을 수정하는 단계는 프로세서의 프로세서 상태를 수정하는 단계를 포함하고, 프로세서 상태는 프로세서의 주파수 동작점을 정의한다.
예 27은 예 25 또는 예 26의 주제를 포함하고, 여기서 프로세서의 프로세서 활용을 수정하는 단계는 프로세서의 프로세서 활용을 감소시키라는 그룹 제어기로부터의 명령을 수신한 것에 응답하여 프로세서의 동작 주파수를 증가시키는 단계; 및 프로세서의 프로세서 활용을 증가시키라는 그룹 제어기로부터의 명령을 수신한 것에 응답하여 프로세서의 동작 주파수를 감소시키는 단계를 포함한다.
예 28은 예들 25-27 중 임의의 것의 주제를 포함하고, 여기서 리소스 활용 데이터를 전송하는 단계는 리소스 활용 데이터를 그룹 제어기에게 주기적으로 전송하는 단계를 포함한다.
예 29는 예들 25-28 중 임의의 것의 주제를 포함하고, 여기서 리소스 활용 데이터를 생성하는 단게는 서버의 메모리 활용량을 식별하는 리소스 활용 데이터를 생성하는 단계를 포함한다.
예 30은 프로세서; 및 프로세서에 의해 실행될 때 컴퓨팅 디바이스로 하여금 예들 25 내지 29 중 임의의 것의 방법을 실행하도록 야기하는 복수의 명령어를 그 안에 저장한 메모리를 포함하는 컴퓨팅 디바이스를 포함한다.
예 31은 실행되는 것에 응답하여 컴퓨팅 디바이스로 하여금 예들 25 내지 29 중 어느 하나의 방법을 수행하게 하는 복수의 명령어를 저장하는 하나 이상의 머신 판독 가능 저장 매체를 포함한다.
예 32는 로케이션 개인 정보를 다루기 위한 컴퓨팅 디바이스를 포함하고, 컴퓨팅 디바이스는 예들 25 내지 29 중 임의의 것의 방법을 실행하기 위한 수단을 포함한다.
Claims (25)
- 서버 전력 소비를 조절하기 위한 컴퓨팅 디바이스로서:
복수의 서버로부터 리소스 활용 데이터를 수신하기 위한 통신 모듈; 및
(i) 상기 리소스 활용 데이터에 기초하여 상기 복수의 서버의 소스 서버와 목적지 서버를 식별하고, (ii) 상기 리소스 활용 데이터에 기초하여 상기 식별된 소스 서버와 상기 식별된 목적지 서버 간의 리소스 활용에서의 차이를 계산하고, (iii) 상기 리소스 활용에서의 차이가 문턱값을 초과한다는 결정에 응답하여 전력 소비 변화량만큼 상기 소스 서버의 프로세서의 프로세서 활용을 증가시키고, (iv) 상기 리소스 활용에서의 차이가 문턱값을 초과한다는 결정에 응답하여 대응하는 전력 소비 변화량만큼 상기 목적지 서버의 프로세서의 프로세서 활용을 감소시키기 위한 전력 균형화 모듈(power balancing module)
을 포함하고,
상기 문턱값은 동적으로 결정되는, 컴퓨팅 디바이스. - 제1항에 있어서, 상기 컴퓨팅 디바이스는 상기 복수의 서버를 포함하는 서버들의 그룹의 그룹 제어기를 포함하는 컴퓨팅 디바이스.
- 제1항에 있어서,
상기 통신 모듈은 상기 복수의 서버를 포함하는 서버들의 리스트를 검색하고;
상기 전력 균형화 모듈은 (i) 상기 서버들의 리소스 활용량에 기초하여 상기 서버들의 리스트를 소팅(sort)하고, (ii) 상기 소팅된 리스트에서의 상기 서버들의 순서에 기초하여 상기 소팅된 리스트에서의 서버들의 절반을 목적지 서버들로서 식별하고 상기 소팅된 리스트에서의 서버들의 나머지 절반을 소스 서버들로서 식별하는
컴퓨팅 디바이스. - 제1항에 있어서, 상기 리소스 활용 데이터는 상기 대응하는 서버의 메모리 활용량을 식별하는 컴퓨팅 디바이스.
- 제1항에 있어서, 상기 소스 서버의 프로세서의 프로세서 활용을 증가시키는 것은 상기 소스 서버의 프로세서의 프로세서 상태를 수정하는 것을 포함하며, 상기 프로세서 상태는 상기 프로세서의 주파수 동작점을 정의하는 컴퓨팅 디바이스.
- 제1항에 있어서,
상기 소스 서버의 프로세서의 프로세서 활용을 증가시키는 것은 상기 소스 서버의 프로세서의 동작 주파수를 감소시키는 것을 포함하고,
상기 목적지 서버의 프로세서의 프로세서 활용을 감소시키는 것은 상기 목적지 서버의 프로세서의 동작 주파수를 증가시키는 것을 포함하는
컴퓨팅 디바이스. - 제1항에 있어서, 상기 통신 모듈은 상기 복수의 서버로부터 리소스 활용 데이터를 주기적으로 수신하는 컴퓨팅 디바이스.
- 전력 최적화를 위한 서버로서:
(i) 상기 서버의 리소스의 활용을 모니터링하고, (ii) 상기 모니터링된 리소스 활용에 기초하여 리소스 활용 데이터를 생성하기 위한 하드웨어 모니터링 모듈;
(i) 상기 서버를 포함하는 서버들의 그룹의 그룹 제어기에게 상기 리소스 활용 데이터를 전송하고, (ii) 상기 리소스 활용 데이터의 전송에 응답하여 상기 서버의 프로세서의 프로세서 활용을 수정하기 위한 명령을 상기 그룹 제어기로부터 수신하기 위한 통신 모듈 - 상기 명령의 수신은 상기 서버의 리소스 활용 데이터가 상기 서버들의 그룹 중 또 다른 서버의 리소스 활용 데이터와 적어도 문턱값 양만큼 다르다는 표시임 -; 및
상기 그룹 제어기의 명령에 기초하여 전력 소비 변화량만큼 상기 서버의 프로세서의 프로세서 활용을 수정하기 위한 보안 보조프로세서
를 포함하고,
상기 문턱값 양은 동적으로 결정되는, 서버. - 제8항에 있어서, 상기 프로세서의 프로세서 활용을 수정하는 것은 상기 프로세서의 프로세서 상태를 수정하는 것을 포함하며, 상기 프로세서 상태는 상기 프로세서의 주파수 동작점을 정의하는 서버.
- 제8항에 있어서, 상기 보안 보조프로세서는,
상기 프로세서의 프로세서 활용을 감소시키라는 상기 그룹 제어기로부터의 명령의 수신에 응답하여 상기 프로세서의 동작 주파수를 증가시키고;
상기 프로세서의 프로세서 활용을 증가시키라는 상기 그룹 제어기로부터의 명령의 수신에 응답하여 상기 프로세서의 동작 주파수를 감소시키는
서버. - 제8항에 있어서, 상기 통신 모듈은 상기 리소스 활용 데이터를 상기 그룹 제어기에게 주기적으로 전송하는 서버.
- 제8항에 있어서, 상기 리소스 활용 데이터는 상기 서버의 메모리 활용량을 식별하는 서버.
- 복수의 명령어를 저장하는 하나 이상의 머신 판독 가능 저장 매체로서, 상기 복수의 명령어는, 컴퓨팅 디바이스에 의한 실행에 응답하여, 상기 컴퓨팅 디바이스로 하여금:
복수의 서버로부터 리소스 활용 데이터를 수신하는 단계;
상기 리소스 활용 데이터에 기초하여 상기 복수의 서버의 소스 서버와 목적지 서버를 식별하는 단계;
상기 리소스 활용 데이터에 기초하여 상기 식별된 소스 서버와 상기 식별된 목적지 서버 간의 리소스 활용에서의 차이를 계산하는 단계;
상기 리소스 활용에서의 차이가 문턱값을 초과한다는 결정에 응답하여 상기 소스 서버의 프로세서의 프로세서 활용을 전력 소비 변화량만큼 증가시키는 단계; 및
상기 리소스 활용에서의 차이가 상기 문턱값을 초과한다는 결정에 응답하여 상기 목적지 서버의 프로세서의 프로세서 활용을 대응하는 전력 소비 변화량만큼 감소시키는 단계
를 수행하게 하고,
상기 문턱값은 동적으로 결정되는, 하나 이상의 머신 판독 가능 저장 매체. - 제13항에 있어서,
상기 복수의 명령어는 또한 상기 컴퓨팅 디바이스로 하여금:
상기 복수의 서버를 포함하는 서버들의 리스트를 검색하는 단계;
상기 서버들의 리소스 활용량에 기초하여 상기 서버들의 리스트를 소팅하는 단계; 및
상기 소팅된 리스트에서의 상기 서버들의 순서에 기초하여 상기 소팅된 리스트에서의 상기 서버들의 절반을 목적지 서버들로서 식별하고 상기 소팅된 리스트에서의 상기 서버들의 나머지 절반을 소스 서버들로서 식별하는 단계
를 수행하게 하는 하나 이상의 머신 판독 가능 저장 매체. - 제13항에 있어서, 상기 리소스 활용 데이터를 수신하는 단계는 상기 복수의 서버로부터 리소스 활용 데이터를 수신하는 단계를 포함하고, 상기 리소스 활용 데이터는 상기 대응하는 서버의 메모리 활용량을 식별하는 하나 이상의 머신 판독 가능 저장 매체.
- 제13항에 있어서, 상기 소스 서버의 프로세서의 프로세서 활용을 증가시키는 단계는 상기 소스 서버의 프로세서의 프로세서 상태를 수정하는 단계를 포함하고, 상기 프로세서 상태는 상기 프로세서의 주파수 동작점을 정의하는 하나 이상의 머신 판독 가능 저장 매체.
- 제13항에 있어서, 상기 소스 서버의 프로세서의 프로세서 활용을 증가시키는 단계는 상기 소스 서버의 프로세서의 동작 주파수를 감소시키는 단계를 포함하고;
상기 목적지 서버의 프로세서의 프로세서 활용을 감소시키는 단계는 상기 목적지 서버의 프로세서의 동작 주파수를 증가시키는 단계를 포함하는
하나 이상의 머신 판독 가능 저장 매체. - 제13항에 있어서, 상기 리소스 활용 데이터를 수신하는 단계는 상기 복수의 서버로부터 리소스 활용 데이터를 주기적으로 수신하는 단계를 포함하는 하나 이상의 머신 판독 가능 저장 매체.
- 컴퓨팅 디바이스에 의해 서버 전력 소비를 조절하기 위한 방법으로서:
상기 컴퓨팅 디바이스에 의해, 복수의 서버로부터 리소스 활용 데이터를 수신하는 단계;
상기 컴퓨팅 디바이스상에서, 상기 리소스 활용 데이터에 기초하여 상기 복수의 서버의 소스 서버와 목적지 서버를 식별하는 단계;
상기 컴퓨팅 디바이스상에서, 상기 리소스 활용 데이터에 기초하여 상기 식별된 소스 서버와 상기 식별된 목적지 서버 간의 리소스 활용에서의 차이를 계산하는 단계;
상기 컴퓨팅 디바이스에 의해, 상기 리소스 활용에서의 차이가 문턱값을 초과한다는 결정에 응답하여 상기 소스 서버의 프로세서의 프로세서 활용을 전력 소비 변화량만큼 증가시키는 단계; 및
상기 컴퓨팅 디바이스에 의해, 상기 리소스 활용에서의 차이가 상기 문턱값을 초과한다는 결정에 응답하여 상기 목적지 서버의 프로세서의 프로세서 활용을 대응하는 전력 소비 변화량만큼 감소시키는 단계
를 포함하고,
상기 문턱값은 동적으로 결정되는 방법. - 제19항에 있어서,
상기 컴퓨팅 디바이스상에서, 상기 리소스 활용 데이터에 기초하여 상기 복수의 서버의 소스 서버와 목적지 서버를 식별하는 단계는,
상기 컴퓨팅 디바이스에 의해, 상기 복수의 서버를 포함하는 서버들의 리스트를 검색하는 단계;
상기 컴퓨팅 디바이스상에서, 상기 서버들의 리소스 활용량에 기초하여 상기 서버들의 리스트를 소팅하는 단계; 및
상기 컴퓨팅 디바이스상에서, 상기 소팅된 리스트에서의 상기 서버들의 순서에 기초하여 상기 소팅된 리스트에서의 상기 서버들의 절반을 목적지 서버들로서 식별하고 상기 소팅된 리스트에서의 상기 서버들의 나머지 절반을 소스 서버들로서 식별하는 단계
를 포함하는 방법. - 제19항에 있어서, 상기 리소스 활용 데이터를 수신하는 단계는 상기 복수의 서버로부터 리소스 활용 데이터를 수신하는 단계를 포함하고, 상기 리소스 활용 데이터는 상기 대응하는 서버의 메모리 활용량을 식별하는 방법.
- 제19항에 있어서, 상기 소스 서버의 프로세서의 프로세서 활용을 증가시키는 단계는 상기 소스 서버의 프로세서의 프로세서 상태를 수정하는 단계를 포함하고, 상기 프로세서 상태는 상기 프로세서의 주파수 동작점을 정의하는 방법.
- 제19항에 있어서, 상기 소스 서버의 프로세서의 프로세서 활용을 증가시키는 단계는 상기 소스 서버의 프로세서의 동작 주파수를 감소시키는 단계를 포함하고;
상기 목적지 서버의 프로세서의 프로세서 활용을 감소시키는 단계는 상기 목적지 서버의 프로세서의 동작 주파수를 증가시키는 단계를 포함하는
방법. - 제19항에 있어서, 상기 리소스 활용 데이터를 수신하는 단계는 상기 복수의 서버로부터 리소스 활용 데이터를 주기적으로 수신하는 단계를 포함하는 방법.
- 삭제
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/PL2013/000103 WO2015023191A1 (en) | 2013-08-13 | 2013-08-13 | Power balancing to increase workload density and improve energy efficiency |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160040516A KR20160040516A (ko) | 2016-04-14 |
KR101770673B1 true KR101770673B1 (ko) | 2017-08-23 |
Family
ID=49162200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167000893A KR101770673B1 (ko) | 2013-08-13 | 2013-08-13 | 작업부하 밀도를 증가시키고 또한 에너지 효율성을 개선하기 위한 전력 균형화 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9568975B2 (ko) |
EP (1) | EP3033675A1 (ko) |
JP (1) | JP6224244B2 (ko) |
KR (1) | KR101770673B1 (ko) |
CN (2) | CN105814543B (ko) |
WO (1) | WO2015023191A1 (ko) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8793684B2 (en) * | 2011-03-16 | 2014-07-29 | International Business Machines Corporation | Optimized deployment and replication of virtual machines |
JP6263995B2 (ja) * | 2013-11-29 | 2018-01-24 | 富士通株式会社 | 情報処理システム、管理装置、情報処理システムの制御方法及び管理装置の制御プログラム |
IN2014CH01483A (ko) * | 2014-03-20 | 2015-09-25 | Infosys Ltd | |
US9600058B2 (en) * | 2014-06-24 | 2017-03-21 | Intel Corporation | Enhancing power-performance efficiency in a computer system when bursts of activity occurs when operating in low power |
US20170093966A1 (en) * | 2015-09-28 | 2017-03-30 | International Business Machines Corporation | Managing a shared pool of configurable computing resources having an arrangement of a set of dynamically-assigned resources |
US9891700B2 (en) * | 2015-10-02 | 2018-02-13 | Infineon Technologies Austria Ag | Power management for datacenter power architectures |
CN105930218A (zh) * | 2016-04-18 | 2016-09-07 | 深圳市万普拉斯科技有限公司 | 运算资源频率调整方法及系统 |
US10034407B2 (en) | 2016-07-22 | 2018-07-24 | Intel Corporation | Storage sled for a data center |
US10749782B2 (en) * | 2016-09-10 | 2020-08-18 | Splunk Inc. | Analyzing servers based on data streams generated by instrumented software executing on the servers |
CA3090944A1 (en) | 2017-02-08 | 2018-08-16 | Upstream Data Inc. | Blockchain mine at oil or gas facility |
KR102615017B1 (ko) * | 2017-11-13 | 2023-12-19 | 한국전자통신연구원 | 프로그램 동적 실행 장치 및 방법 |
US11678615B2 (en) | 2018-01-11 | 2023-06-20 | Lancium Llc | Method and system for dynamic power delivery to a flexible growcenter using unutilized energy sources |
US11025060B2 (en) | 2018-09-14 | 2021-06-01 | Lancium Llc | Providing computational resource availability based on power-generation signals |
US11016553B2 (en) | 2018-09-14 | 2021-05-25 | Lancium Llc | Methods and systems for distributed power control of flexible datacenters |
US10873211B2 (en) | 2018-09-14 | 2020-12-22 | Lancium Llc | Systems and methods for dynamic power routing with behind-the-meter energy storage |
US11031787B2 (en) | 2018-09-14 | 2021-06-08 | Lancium Llc | System of critical datacenters and behind-the-meter flexible datacenters |
US10367353B1 (en) | 2018-10-30 | 2019-07-30 | Lancium Llc | Managing queue distribution between critical datacenter and flexible datacenter |
US11031813B2 (en) | 2018-10-30 | 2021-06-08 | Lancium Llc | Systems and methods for auxiliary power management of behind-the-meter power loads |
US10452127B1 (en) | 2019-01-11 | 2019-10-22 | Lancium Llc | Redundant flexible datacenter workload scheduling |
US11128165B2 (en) | 2019-02-25 | 2021-09-21 | Lancium Llc | Behind-the-meter charging station with availability notification |
CA3139776A1 (en) | 2019-05-15 | 2020-11-19 | Upstream Data Inc. | Portable blockchain mining system and methods of use |
JP7310378B2 (ja) * | 2019-07-08 | 2023-07-19 | 富士通株式会社 | 情報処理プログラム、情報処理方法、および情報処理装置 |
US11397999B2 (en) | 2019-08-01 | 2022-07-26 | Lancium Llc | Modifying computing system operations based on cost and power conditions |
US11868106B2 (en) * | 2019-08-01 | 2024-01-09 | Lancium Llc | Granular power ramping |
US10618427B1 (en) | 2019-10-08 | 2020-04-14 | Lancium Llc | Behind-the-meter branch loads for electrical vehicle charging |
US11016458B2 (en) | 2019-10-28 | 2021-05-25 | Lancium Llc | Methods and systems for adjusting power consumption based on dynamic power option agreement |
US11042948B1 (en) | 2020-02-27 | 2021-06-22 | Lancium Llc | Computing component arrangement based on ramping capabilities |
US11520628B2 (en) * | 2020-05-20 | 2022-12-06 | Qualcomm Incorporated | Cooperative dynamic clock and voltage scaling (DCVS) between two processor systems |
WO2022036239A1 (en) | 2020-08-14 | 2022-02-17 | Lancium Llc | Power aware scheduling |
US12019898B2 (en) * | 2020-09-30 | 2024-06-25 | Seagate Technology Llc | Data storage system with workload-based dynamic power consumption |
US11360982B1 (en) * | 2020-12-22 | 2022-06-14 | International Business Machines Corporation | Database endpoint devices put in groups for responding to queries |
CN112860403B (zh) * | 2021-02-22 | 2023-11-07 | 中国联合网络通信集团有限公司 | 集群负载资源调度方法、装置、设备、介质及产品 |
US20230418347A1 (en) * | 2022-06-24 | 2023-12-28 | Microsoft Technology Licensing, Llc | Allocating power between overhead, backup, and computing power services |
CN115348322B (zh) * | 2022-07-11 | 2023-07-18 | 深圳市九洲电器有限公司 | 数据处理方法、组网设备及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100030877A1 (en) | 2007-02-23 | 2010-02-04 | Mitsuru Yanagisawa | Virtual server system and physical server selecting method |
US20100115509A1 (en) * | 2008-10-31 | 2010-05-06 | International Business Machines Corporation | Power optimization via virtualization opportunity |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2770760B2 (ja) * | 1995-01-04 | 1998-07-02 | 日本電気株式会社 | 電力分散マルチプロセッサ |
EP1527395A4 (en) * | 2002-06-25 | 2006-03-01 | Ibm | METHOD AND SYSTEM FOR CONTROLLING THE PERFORMANCE OF AN APPLICATION IN A DISTRIBUTED ENVIRONMENT |
US20050132229A1 (en) * | 2003-11-12 | 2005-06-16 | Nokia Corporation | Virtual private network based on root-trust module computing platforms |
JP2008026948A (ja) * | 2006-07-18 | 2008-02-07 | Renesas Technology Corp | 半導体集積回路 |
US7856549B2 (en) * | 2007-01-24 | 2010-12-21 | Hewlett-Packard Development Company, L.P. | Regulating power consumption |
US8006108B2 (en) * | 2007-11-08 | 2011-08-23 | International Business Machines Corporation | Dynamic selection of group and device power limits |
JP4839328B2 (ja) * | 2008-01-21 | 2011-12-21 | 株式会社日立製作所 | サーバの消費電力制御装置、サーバの消費電力制御方法及びコンピュータプログラム |
EP2345964A4 (en) * | 2008-10-13 | 2013-11-20 | Mitsubishi Electric Corp | RESOURCE ALLOCATION DEVICE, RESOURCE ALLOCATION PROGRAM, RECORDING MEDIUM, AND RESOURCE ALLOCATION METHOD |
CN101398769B (zh) * | 2008-10-28 | 2012-09-05 | 华为技术有限公司 | 一种对操作系统透明的处理器资源整合利用方法 |
US8560677B2 (en) * | 2009-02-13 | 2013-10-15 | Schneider Electric It Corporation | Data center control |
US8261269B2 (en) * | 2009-09-21 | 2012-09-04 | Oracle International Corporation | System and method for synchronizing transient resource usage between virtual machines in a hypervisor environment |
KR101644569B1 (ko) | 2009-10-01 | 2016-08-01 | 삼성전자 주식회사 | 가상 프로세서 관리 장치 및 방법 |
US8868936B2 (en) * | 2010-11-29 | 2014-10-21 | Cisco Technology, Inc. | Dynamic power balancing among blade servers in a chassis |
CN102546700B (zh) * | 2010-12-23 | 2015-07-01 | 中国移动通信集团公司 | 一种资源调度以及资源迁移的方法及设备 |
CN102103518B (zh) * | 2011-02-23 | 2013-11-13 | 运软网络科技(上海)有限公司 | 一种在虚拟化环境中管理资源的系统及其实现方法 |
JP5633440B2 (ja) * | 2011-03-17 | 2014-12-03 | 富士通株式会社 | 情報処理装置、電力制御方法及び電力制御プログラム |
JP5725446B2 (ja) * | 2011-03-25 | 2015-05-27 | 日本電気株式会社 | 分散並列プログラムの実行システム及び方法 |
JP5663383B2 (ja) * | 2011-04-18 | 2015-02-04 | 株式会社日立製作所 | ブレードサーバの電力制御方法及びシステム |
JP2013025453A (ja) * | 2011-07-19 | 2013-02-04 | Nippon Telegr & Teleph Corp <Ntt> | 分散システム、負荷分散方法、および、プログラム |
JP5508354B2 (ja) * | 2011-07-25 | 2014-05-28 | Necシステムテクノロジー株式会社 | モジュール、周波数制御方法、及び周波数制御プログラム |
CN102857363B (zh) * | 2012-05-04 | 2016-04-20 | 运软网络科技(上海)有限公司 | 一种虚拟网络的自主管理系统和方法 |
-
2013
- 2013-08-13 US US14/129,666 patent/US9568975B2/en active Active
- 2013-08-13 EP EP13760137.3A patent/EP3033675A1/en not_active Withdrawn
- 2013-08-13 WO PCT/PL2013/000103 patent/WO2015023191A1/en active Application Filing
- 2013-08-13 CN CN201380078211.0A patent/CN105814543B/zh not_active Expired - Fee Related
- 2013-08-13 JP JP2016531578A patent/JP6224244B2/ja active Active
- 2013-08-13 CN CN202010037158.1A patent/CN111522652B/zh active Active
- 2013-08-13 KR KR1020167000893A patent/KR101770673B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100030877A1 (en) | 2007-02-23 | 2010-02-04 | Mitsuru Yanagisawa | Virtual server system and physical server selecting method |
US20100115509A1 (en) * | 2008-10-31 | 2010-05-06 | International Business Machines Corporation | Power optimization via virtualization opportunity |
Non-Patent Citations (1)
Title |
---|
Shekhar Srikantaiah 외 2명. 'Energy Aware Consolidation for Cloud Computing'. 2008.11.14., pp.1-10.* |
Also Published As
Publication number | Publication date |
---|---|
WO2015023191A1 (en) | 2015-02-19 |
JP2016528626A (ja) | 2016-09-15 |
CN105814543A (zh) | 2016-07-27 |
CN111522652A (zh) | 2020-08-11 |
CN105814543B (zh) | 2020-03-03 |
EP3033675A1 (en) | 2016-06-22 |
US9568975B2 (en) | 2017-02-14 |
JP6224244B2 (ja) | 2017-11-01 |
KR20160040516A (ko) | 2016-04-14 |
CN111522652B (zh) | 2024-02-13 |
US20160170469A1 (en) | 2016-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101770673B1 (ko) | 작업부하 밀도를 증가시키고 또한 에너지 효율성을 개선하기 위한 전력 균형화 | |
US11507435B2 (en) | Rack-level scheduling for reducing the long tail latency using high performance SSDs | |
CN108173698B (zh) | 网络服务管理方法、装置、服务器及存储介质 | |
US20160378570A1 (en) | Techniques for Offloading Computational Tasks between Nodes | |
EP3117335B1 (en) | Coordinated admission control for network-accessible block storage | |
US9201486B2 (en) | Large scale dynamic power budget adjustments for optimizing power utilization in a data center | |
KR101201904B1 (ko) | 클라우드 컴퓨팅에서의 리소스 분배 장치 및 그 방법 | |
US11799901B2 (en) | Predictive rate limiting system for cloud computing services | |
Monil et al. | Implementation of modified overload detection technique with VM selection strategies based on heuristics and migration control | |
US10193811B1 (en) | Flow distribution using telemetry and machine learning techniques | |
US11119563B2 (en) | Dynamic power capping of multi-server nodes in a chassis based on real-time resource utilization | |
CN105607948A (zh) | 一种基于sla的虚拟机迁移预测方法 | |
El Khoury et al. | Energy-aware placement and scheduling of network traffic flows with deadlines on virtual network functions | |
CN104185821A (zh) | 多个计算层次结构级别中的工作负荷迁移判断 | |
Zhang et al. | Dynamic energy-efficient virtual machine placement optimization for virtualized clouds | |
Nguyen et al. | A closed-loop context aware data acquisition and resource allocation framework for dynamic data driven applications systems (DDDAS) on the cloud | |
US20170208121A1 (en) | Server pool management | |
KR102270239B1 (ko) | 전자장치에서 소프트웨어를 실행하기 위한 방법 및 장치 | |
US11374869B2 (en) | Managing bandwidth based on user behavior | |
Fragni et al. | ECO–ALOC: Energy-efficient resource allocation for cluster-based software routers | |
CN113822485B (zh) | 一种配电网调度任务优化方法及系统 | |
Tan et al. | An energy-aware virtual machine placement algorithm in cloud data center | |
US10091068B1 (en) | System for modeling distributed systems | |
Da et al. | VM migration algorithm for the balance of energy resource across data centers in cloud computing | |
Breitbach et al. | DataVinci: proactive data placement for ad-hoc computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |