DE112017005131T5 - Leistungsverwaltung in disaggregierten datenverarbeitungsystemen - Google Patents

Leistungsverwaltung in disaggregierten datenverarbeitungsystemen Download PDF

Info

Publication number
DE112017005131T5
DE112017005131T5 DE112017005131.2T DE112017005131T DE112017005131T5 DE 112017005131 T5 DE112017005131 T5 DE 112017005131T5 DE 112017005131 T DE112017005131 T DE 112017005131T DE 112017005131 T5 DE112017005131 T5 DE 112017005131T5
Authority
DE
Germany
Prior art keywords
workload
power
electrical power
processor cores
workloads
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112017005131.2T
Other languages
English (en)
Inventor
Eugen Schenfeld
John Alan Bivens
Ruchi Mahindru
Koushik Das
Min Li
Harigovind Venkatraj Ramasamy
Yaoping Ruan
Valentina Salapura
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112017005131T5 publication Critical patent/DE112017005131T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Computing Systems (AREA)
  • Power Sources (AREA)

Abstract

Zur Leistungsverwaltung in einem disaggregierten Datenverarbeitungssystem wird eine Gruppe von ursprünglichen elektrischen Leistungspegeln gemäß einer vorhergesagten gewünschten Arbeitslast zuordnet, wobei die Gruppe von ursprünglichen Leistungspegeln sich zu einem ursprünglichen kollektiven vertraglich festgelegten Leistungspegel aggregiert. Elektrische Leistung wird zu jeweiligen Prozessorkernen in der Gruppe von Prozessorkernen dynamisch zuordnet, um eine Kapazität zum Ausführen einer kollektiven geforderten Arbeitslast zu erzeugen, wobei die elektrische Leistung für die Gruppe von Prozessorkernen bis zu einem annähernd konstanten elektrischen Leistungspegel innerhalb eines Schwellenwerts des ursprünglichen kollektiven vertraglich festgelegten elektrischen Leistungspegels aufrechterhalten wird.

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft allgemein Datenverarbeitung in großem Maßstab und insbesondere Leistungsverwaltung in einer disaggregierten Datenverarbeitungsumgebung.
  • HINTERGRUND DER ERFINDUNG
  • Ein bekannter Typ von Datenverarbeitung in großem Maßstab ist Cloud Computing, bei dem Ressourcen interagieren können und/oder ein Zugriff auf sie über ein Kommunikationssystem wie beispielsweise ein Computernetzwerk erfolgen kann. Ressourcen können durch Software dargestellte Simulationen und/oder Emulationen von Datenverarbeitungseinheiten, Speichereinheiten, Anwendungen und/oder anderen computerbezogenen Einheiten und/oder Diensten sein, die auf einer oder mehreren Datenverarbeitungseinheiten wie beispielsweise einem Server ausgeführt werden. Zum Beispiel kann eine Mehrzahl von Servern Informationen kommunizieren und/oder gemeinsam nutzen, die sich serverübergreifend abhängig von einem Umfang von Verarbeitungsleistung, Speicherkapazität und/oder anderen Datenverarbeitungsressourcen, die zum Erfüllen von angeforderten Aufgaben benötigt werden, erweitern und/oder vertraglich festlegen lassen. Das Wort „Cloud“ (Wolke) spielt auf das wolkenförmige Erscheinungsbild eines Diagramms zur Interkonnektivität zwischen Datenverarbeitungseinheiten, Computernetzwerken und/oder anderen computerbezogenen Einheiten an, die in einer derartigen Anordnung zusammenwirken.
  • Cloud Computing kann als Dienst über das Internet bereitgestellt werden, wie zum Beispiel in Form von „Infrastructure as a Service“ (laaS), „Platform as a Service“ (PaaS), und/oder „Software as a Service“ (SaaS). laaS kann typischerweise physische oder virtuelle Datenverarbeitungseinheiten und/oder Zusatzeinrichtungen auf Grundlage von Dienstgegen-Gebühr bereitstellen, und auf die Clients/Benutzer Plattformen, Anwendungen und/oder Daten laden und/oder installieren und verwalten können. PaaS kann eine Datenverarbeitungsplattform und ein Lösungspaket als Dienst bieten, wie zum Beispiel eine Software-Entwicklungsplattform, Anwendungsdienste wie beispielsweise Team-Zusammenarbeit, Webdienst-Integration, Datenbankintegration und/oder Entwicklergemeinde-Unterstützung. SaaS kann Software-Lizenzierung als Anwendung für Kunden zur Verwendung als bedarfsorientierten Dienst bereitstellen. SaaS-Software-Anbieter können die Anwendung auf ihren eigenen Clouds hosten oder derartige Anwendungen von Clouds auf Cloud-Clients herunterladen, wobei die Anwendungen nach Verwendung oder nach Ablauf eines On-Demand-Vertrags deaktiviert werden.
  • Die Bereitstellung derartiger Dienste ermöglicht es einem Benutzer, auf so viele Datenverarbeitungsressourcen zuzugreifen, wie der Benutzer benötigt, ohne die Infrastruktur wie beispielsweise Hardware und/oder Software zu kaufen und/oder zu verwalten, die zum Bereitstellen der Dienste erforderlich wären. Zum Beispiel kann ein Benutzer stattdessen Zugriff über Abonnement, Kauf und/oder anderweitigen sicheren Zugriff erlangen. Somit kann Cloud Computing eine kostengünstige Möglichkeit zum Bereitstellen von informationstechnologischen Diensten sein. Ein fundamentaler Bedarf ist für eine Erweiterung der zugrundeliegenden Systeme und Infrastruktur vorhanden, die diese schnell wachsende Branche unterstützen und aufrechterhalten.
  • Daher besteht beim Stand der Technik ein Bedarf, sich mit dem oben genannten Problem zu beschäftigen.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Von einem ersten Aspekt aus betrachtet stellt die vorliegende Erfindung ein Verfahren zur Leistungsverwaltung in einem disaggregierten Datenverarbeitungssystem durch eine Prozessoreinheit bereit, aufweisend: ein Zuordnen einer Gruppe von ursprünglichen elektrischen Leistungspegeln zu einer Gruppe von Prozessorkernen in dem disaggregierten Datenverarbeitungssystem gemäß einer vorhergesagten gewünschten Arbeitslast, wobei sich die Gruppe von ursprünglichen Leistungspegeln zu einem ursprünglichen kollektiven vertraglich festgelegten Leistungspegel aggregiert; und ein dynamisches Zuordnen von elektrischer Leistung zu jeweiligen Prozessorkernen in der Gruppe von Prozessorkernen, um eine Kapazität zum Ausführen einer kollektiven geforderten Arbeitslast zu erzeugen, wobei die elektrische Leistung für die Gruppe von Prozessorkernen bis zu einem annähernd konstanten elektrischen Leistungspegel innerhalb eines Schwellenwerts des ursprünglichen kollektiven vertraglich festgelegten elektrischen Leistungspegels aufrechterhalten wird.
  • Von einem weiteren Aspekt aus betrachtet stellt die vorliegende Erfindung ein System zur Leistungsverwaltung in einem disaggregierten Datenverarbeitungssystem bereit, wobei das System aufweist: mindestens eine Prozessoreinheit, wobei die mindestens eine Prozessoreinheit: eine Gruppe von ursprünglichen elektrischen Leistungspegeln zu einer Gruppe von Prozessorkernen in dem disaggregierten Datenverarbeitungssystem gemäß einer vorhergesagten gewünschten Arbeitslast zuordnet, wobei die Gruppe von ursprünglichen Leistungspegeln sich zu einem ursprünglichen kollektiven vertraglich festgelegten Leistungspegel aggregiert und elektrische Leistung zu jeweiligen Prozessorkernen in der Gruppe von Prozessorkernen dynamisch zuordnet, um eine Kapazität zum Ausführen einer kollektiven geforderten Arbeitslast zu erzeugen, wobei die elektrische Leistung für die Gruppe von Prozessorkernen bis zu einem annähernd konstanten elektrischen Leistungspegel innerhalb eines Schwellenwerts des ursprünglichen kollektiven vertraglich festgelegten elektrischen Leistungspegels aufrechterhalten wird.
  • Von einem weiteren Aspekt aus betrachtet stellt die vorliegende Erfindung ein Computerprogrammprodukt zur Leistungsverwaltung in einem disaggregierten Datenverarbeitungssystem bereit, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium aufweist, das von einer Verarbeitungsschaltung lesbar ist und Anweisungen zum Ausführen durch die Verarbeitungsschaltung speichert, um ein Verfahren zum Ausführen der Schritte der Erfindung auszuführen.
  • Von einem weiteren Aspekt aus betrachtet stellt die vorliegende Erfindung ein Computerprogramm bereit, das auf einem computerlesbaren Medium gespeichert ist und in den internen Arbeitsspeicher eines digitalen Computers geladen werden kann, wobei es Softwarecode-Abschnitte zum Ausführen der Schritte der Erfindung aufweist, wenn das Programm auf einem Computer ausgeführt wird.
  • Es werden verschiedene Ausführungsformen zur Leistungsverwaltung in einem disaggregierten Datenverarbeitungssystem durch eine Prozessoreinheit bereitgestellt. In einer Ausführungsform weist ein Verfahren ein Zuordnen einer Gruppe von ursprünglichen elektrischen Leistungspegeln zu einer Gruppe von Prozessorkernen in dem disaggregierten Datenverarbeitungssystem gemäß einer vorhergesagten gewünschten Arbeitslast auf, wobei sich die Gruppe von ursprünglichen elektrischen Leistungspegeln zu einem ursprünglichen kollektiven vertraglich festgelegten elektrischen Leistungspegel aggregiert; und ein dynamisches Zuordnen von elektrischer Leistung zu jeweiligen Prozessorkernen in der Gruppe von Prozessorkernen, um eine Kapazität zum Ausführen einer kollektiven geforderten Arbeitslast zu erzeugen, wobei die elektrische Leistung für die Gruppe von Prozessorkernen bis zu einem annähernd konstanten elektrischen Leistungspegel innerhalb eines Schwellenwerts des ursprünglichen kollektiven vertraglich festgelegten elektrischen Leistungspegels aufrechterhalten wird.
  • Zusätzlich zu der vorgenannten beispielhaften Ausführungsform werden verschiedene andere Ausführungsformen von System und Computerprogrammprodukt bereitgestellt und sorgen für zugehörige Vorteile. Die vorgenannte Kurzdarstellung wurde bereitgestellt, um eine Auswahl von Konzepten in einer vereinfachten Form vorzustellen, die im Folgenden genauer in der „Ausführlichen Beschreibung“ beschrieben werden. Zweck dieser Kurzdarstellung ist weder, Schlüsselmerkmale oder wesentliche Merkmale des beanspruchten Erfindungsgegenstands zu identifizieren, noch ist beabsichtigt, sie als Hilfe beim Festlegen des Schutzumfangs des beanspruchten Erfindungsgegenstands zu verwenden. Der beanspruchte Erfindungsgegenstand ist nicht auf Umsetzungen beschränkt, die einige oder alle Nachteile beheben, die unter „Hintergrund“ angegeben wurden.
  • Figurenliste
  • Die vorliegende Erfindung wird im Folgenden nur zu Beispielzwecken unter Bezugnahme auf bevorzugte Ausführungsformen beschrieben, wie in den folgenden Figuren veranschaulicht:
    • 1 ist ein Blockschaubild, das eine Hardware-Struktur einer disaggregierten Datenverarbeitungsumgebung veranschaulicht, in der Aspekte der vorliegenden Erfindung verwirklicht werden können;
    • 2 ist ein weiteres Blockschaubild, das eine Hardware-Struktur einer disaggregierten Datenverarbeitungsumgebung veranschaulicht, in der Aspekte der vorliegenden Erfindung verwirklicht werden können;
    • 3 ist ein Ablaufplan, der ein Verfahren zur Leistungsverwaltung in einem disaggregierten Datenverarbeitungssystem gemäß Aspekten der vorliegenden Erfindung veranschaulicht;
    • 4 ist ein Blockschaubild, das eine allgemeine Übersicht einer Leistungsverwaltung in einem disaggregierten Datenverarbeitungssystem gemäß Aspekten der vorliegenden Erfindung veranschaulicht;
    • 5 ist ein Ablaufplan, der einen Leistungsverwaltungsalgorithmus zur Leistungsverwaltung in einem disaggregierten Datenverarbeitungssystem gemäß Aspekten der vorliegenden Erfindung veranschaulicht; und
    • 6 ist eine Tabelle, die einen Prioritätsplan zur Leistungsverwaltung in einem disaggregierten Datenverarbeitungssystem gemäß Aspekten der vorliegenden Erfindung veranschaulicht.
  • AUSFÜHRLICHE BESCHREIBUNG DER ZEICHNUNGEN
  • Datenverarbeitungsressourcen werden für gewöhnlich durch Anbieter auf festgelegten Konfigurationsebenen vorkonfiguriert. Ein Aspekt ist, dass jede einzelne Datenverarbeitungsressource, wie zum Beispiel Arbeitsspeichergröße, Anzahl der Zentraleinheiten (CPUs), Plattengröße usw. einen begrenzten Bereich hat. Ein anderer Aspekt ist, dass jede Datenverarbeitungsplattform eine begrenzte Anzahl von physischen Anpassungsoptionen hat. Die derzeitigen Arbeitslasten werden unter diesen Einschränkungen ausgeführt, was infolgedessen ein Grund dafür ist, dass Techniken wie Arbeitsspeicherauslagerung und Zwischenspeicherungsoptimierung in Datenverarbeitungsumgebungen verwendet werden.
  • Das Aufkommen von Cloud Computing verändert das Paradigma, wie Datenverarbeitungsressourcen verwendet werden, durch die Bereitstellung eines nutzungsorientierten Modells. Die öffentliche Cloud wurde von Dienstanbietern geschaffen, um denjenigen bei Bedarf Zugriff zu ermögliche, die derartige Datenverarbeitungsressourcen benötigen. Wie oben erwähnt, wird der Zugriff auf Cloud-Ressourcen über das Internet oder private Netzwerkverbindungen oder durch Zusammenlegung von fester, als Basis betrachteter Infrastruktur bereitgestellt, die wenn nötig durch bedarfsorientierte Ressourcen erweitert wird. Die zugrundeliegende Infrastruktur ist jedoch eine Gruppe von festgelegten Datenverarbeitungskonfigurationen, die im Fall von Bedarfsanpassung nach oben oder unten unflexibel sind.
  • Die zugrundeliegende Architektur der Infrastructure as a Service- (laaS) Cloud besteht im Allgemeinen aus herkömmlicher Hardware, die in Rechenzentren wie oben beschrieben verwendet wird. Benutzer greifen entweder direkt auf die Hardware zu, oder sie greifen auf darauf vorhandene virtuelle Maschinen zu. Aufgrund der festgelegten Natur von Gebäude-Servern als Anlagen, die einmal konfiguriert werden, wenn die Anlage erstellt wird, ist die dem Rechenzentrum zugrundeliegende fundamentale Architektur sehr starr und unflexibel. Daher ist es die Cloud-Software, die die Emulation zum Erstellen der flexiblen bedarfsorientierten Funktionalität bereitstellt, für die Cloud-Dienste bekannt sind. Diese Funktionalität ist jedoch ziemlich begrenzt, da viele Mechanismen, die sich zu einem bedarfsorientierten Dienst wandeln, von Software abhängen, die auf Server-Anlagen aufbaut, deren Architekturen aus den Anfängen der PC-Ära stammen.
  • Die virtuelle Maschine (VM) ist eine Software-Technik auf Grundlage einer Entität, die auf einem Teil eines Servers ausgeführt wird, möglicherweise zusammen mit anderen derartigen Entitäten, von denen derselbe Server gemeinsam genutzt wird. Sie stellt die Einheit für bedarfsorientierte Berechnung dar, wobei jede derartige Entität mit einer vorab festgelegten Anzahl von virtuellen CPUs und Arbeitsspeicher angegeben wird. Einmal definiert kann eine VM ihre Basisressourcen nicht mehr ändern, wie zum Beispiel Arbeitsspeicher hinzufügen oder virtuelle CPUs hinzufügen. Der Grund dafür ist, dass eine derartige VM die Hardware-Ressourcen einer festgelegten vorgefertigten Server-Anlage gemeinsam mit anderen VMs nutzt, und es nicht möglich ist, andere Benutzer zu verdrängen, um für die Ressourcenerweiterung des ersten Benutzers Raum zu schaffen. Während derartiges im Prinzip möglich ist (z.B. durch Migrieren anderer Benutzer (Live-VM-Migration) auf andere Server), würde eine derartige Operation zu einer übermäßigen Zunahme des Datenverkehrs führen und eine Überbelastung auf einem Rechenzentrum-Netzwerk erfordern. Außerdem kann die Bereitstellung von neuen VMs nach Bedarf eine vergleichsweise praxisferne Menge Zeit in Anspruch nehmen (z.B. Minuten, während reale Ereignisse eine Reaktion auf Ereignisse in Sekundenbruchteilen erfordern können). Somit gibt es das Konzept einer echten, realen und entsprechenden bedarfsorientierten Cloud-Infrastruktur nicht. Diese Situation kann Benutzer dazu zwingen, Ressourcen für Bedarfe im schlimmsten Fall bereitzustellen (maximale Prozessoranzahl/-geschwindigkeit, maximaler Arbeitsspeicher), und VMs beizubehalten, selbst wenn sie nicht gebraucht werden, nur um auf reale Ereignisse in relativer Zeit reagieren zu können.
  • Für Cloud-Dienste, die über Anwendungsprogramm-Schnittstellen (APIs) erhalten werden, greifen Benutzer nicht direkt auf das Betriebssystem zu, sondern geben Anforderungen über die APIs aus. Die Berechnung wird dann durch das zugrundeliegende Betriebssystem und die Hardware-Infrastruktur vorgenommen. Einige Anbieter stellen ein gewisses Skalierungsniveau und eine Elastizität bereit, die für Benutzer-APIs transparent sind. Das Skalierungsniveau wird jedoch durch den Anwendungstyp und durch die Kapazität der einzelnen Datenverarbeitungsressource begrenzt. Wenn eine Arbeitslast zum Beispiel einen hohen Bedarf an Arbeitsspeichernutzung erfordert, ist eine einzelne Aufstockung der Arbeitsspeichergröße nicht möglich. Daher ist die generelle Ressourcenauslastung unzureichend, und diese Lösung ist auch nicht kostengünstig.
  • In Anbetracht des Vorgenannten bieten disaggregierte Datenverarbeitungssysteme Flexibilität und Elastizität beim Konstruieren von softwareunabhängigen Datenverarbeitungssystemen zur Verwendung in der Cloud, um für Cloud-Nutzer oder „Tenants“ bedarfsbedarfsorientierte Flexibilität bereitzustellen. Als disaggregiertes Datenverarbeitungssystem wird ein System mit großen Pools von physischen Hardware-Ressourcen wie CPUs, Beschleuniger, Arbeitsspeichereinheiten und Speichereinheiten bezeichnet, deren Konnektivität mit jeder anderen einzelnen Hardware-Ressource dynamisch umgeschaltet werden kann, ohne dazu irgendwelche Hardware oder laufende Anwendungen abzuschalten. Einzelne Hardware-Ressourcen aus diesen Pools können ausgewählt werden, um Computersysteme nach Bedarf zusammenzustellen. Somit kann ein softwareunabhängiges System mit einer flexiblen Kapazität von einzelnen Datenverarbeitungsressourcen in einem disaggregierten System zusammengestellt werden, sodass Arbeitslasten auf Grundlage von Hardware-Ressourcenkonfigurationen berechnet werden können, die für die jeweiligen Arbeitslasten am besten geeignet sind. In einer Ausführungsform kann ein System zum Beispiel mit einer extrem hohen Kapazität von Arbeitsspeichergröße, aber mit einer mäßigeren Kapazität von CPU- und anderen Ressourcen für eine arbeitsspeicherintensive Arbeitslast aufgebaut werden.
  • In diesen disaggregierten Systemen können verschiedene Dienstgütevereinbarungen (SLAs) auf Anwendungsebene verwendet werden, um Hardware-Ressourcen bei Bedarf dynamisch bereitzustellen und sicherzustellen, dass ein Tenant den Datenverarbeitungsdienst erhält, den er gekauft hat, wobei ein Gesamtkosten- und Energieeffizienz-Modell sowohl für den Anbieter des Cloud-Diensts als auch den Tenant aufrechterhalten wird.
  • Aus einer Auslastungsperspektive von elektrischer Leistung haben moderne Rechenzentrenbetriebe die folgenden beiden wünschenswerten Ziele. Zunächst ist es in modernen Rechenzentren wünschenswert, die residenten Systeme soweit möglich wegen der hohen Kapitalinvestition in die Server, Racks, Kabel und Speicher sowie der Lizenzkosten der in solche Systeme integrierten Software usw. mit fast 100 % Komponentenauslastung zu betreiben. Daher ist ein Herunterfahren von Ausrüstung (d.h. Ruhe- oder Schlafmodus) nicht wünschenswert, da dies bedeuten würde, dass das gesamte investierte Kapital der Hardware und der dazugehörigen Software-Lizenzen verschwendet wird.
  • Zweitens ist es im Hinblick auf einen vorgegebenen, von dem Versorgungsunternehmen zugeordneten (vertraglich festgelegten) Bereich von elektrischer Leistung für ein Rechenzentrum äußerst wünschenswert, in diesem zugeordneten (vertraglich festgelegten) Leistungsbereich mit einigen kleinen Abweichungen zu arbeiten (z.B. +/- 5 % der zugeordneten Leistung). Leistung ist eine wertvolle Ressource, und Versorgungsunternehmen haben nur eine begrenzte Gesamtleistung, die sie erzeugen und über das Versorgungsnetz zum Bereitstellen transportieren können. Versorgungsunternehmen können die Leistungserzeugung nicht schnell anpassen, um schnelle und große Schwankungen von in Anspruch genommener Leistung auszugleichen. Daher ist es unerlässlich, dass ein bestimmter Leistungsnutzungsbereich, der vertraglich festgelegt ist, von dem Rechenzentrum in Anspruch genommen wird. Versorgungsunternehmen müssen elektrische Leistungserzeugung und Leistungsinanspruchnahme im Gleichgewicht halten, da ihre Generatoren sich zwar periodischen Anforderungen anpassen können, aber nicht an diese großen sprunghaften Änderungen der Leistungsinanspruchnahme anpassen lassen. Wenn das Rechenzentrum die vertraglich festgelegte Leistung unregelmäßig nicht ausschöpft, muss das Versorgungsunternehmen die erzeugte Extraleistung verbrennen, damit sie ihre Generatoren nicht beschädigen. Infolgedessen kann in Netzstromversorgungsverträgen festgelegt werden, dass große Abweichungen der Leistungsinanspruchnahme durch einen Kunden (z.B. einen Betreiber eines Rechenzentrums) zu kostspieligen Strafzahlungen in Form von zusätzlichen Gebühren führen können. Es ist daher nicht immer von Vorteil, schnell in den Schlafmodus zu wechseln und Leistung zu sparen, nur um dann schnell wieder auf Bedarf zu wechseln, um diese Leistung wieder zu nutzen.
  • Bedeutende Leistungsvermögens-, Durchsatz-, Auslastungs- und Kostenvorteile zeigen sich, wenn die Kombination der oben genannten beiden Ziele verwirklicht werden kann, wobei zu den Nutznießerparteien die Versorgungsunternehmen (Kostenvorteile), Rechenzentren/Cloud-Anbieter (Leistungsvermögens-, Auslastungs- und Kostenvorteile) und Endbenutzer/Cloud-Kunde zählen (Leistungsvermögens-, Durchsatz- und Kostenvorteile). Eine Verwirklichung der Kombination der beiden Ziele würde helfen, gleichzeitig die Auslastung von Hardware-Ressourcen, Leistungsvermögen und Durchsatz von Benutzer-Arbeitslasten zu erhöhen, während in dem zugeordneten Leistungsbereich gearbeitet wird, was zu niedrigeren Kosten für das Versorgungsunternehmen, den Betreiber des Rechenzentrums und den Endbenutzer führt.
  • Auf Grundlage der beiden oben genannten Überlegungen betrachtet die vorliegende Erfindung das Problem der Verwaltung der elektrischen Leistungszuordnung zu den Prozessorkernen auf Grundlage der Anforderungen der SLAs für die Arbeitslasten, die sie ausführen. Um dieses Problem anzugehen, muss der Durchsatz von Arbeitslasten optimiert werden, indem die Taktgeschwindigkeiten und Spannungen dynamisch neu angepasst werden, mit denen die Prozessorkerne (und damit Schaltungen, Transistortaktfrequenz) arbeiten. Durchsatz ist etwas anderes als Leistungsvermögen, da es möglich ist, ein höheres Leistungsvermögen pro Thread oder Kern zu erzielen, aber mit relativ viel mehr verwendeter Leistung im Vergleich zur Verwendung von mehr Kernen mit geringerem Leistungsvermögen (d.h. geringerer Taktgeschwindigkeit), aber weniger Leistung pro Kern, um einen höheren Gesamtdurchsatz zu erzielen.
  • In einer disaggregierten Datenverarbeitungsumgebung kann ein Kunde (Tenant) einen Server mit einer bestimmten Anzahl von Ressourcen bereitstellen, von denen eventuell nicht alle denselben Durchsatz (und damit dieselbe Taktgeschwindigkeit) erfordern, um jederzeit Arbeitslasten auszuführen. Für einige Arbeitslasten kann es von Nutzen sein, die Spannung neu anzupassen, wenn niedrigere/höhere Taktgeschwindigkeiten erforderlich sind, sodass die Leistungsinanspruchnahme besser auf den Durchsatz abgestimmt wird, mit dem der Prozessorkern arbeitet. Zu beachten ist, dass der Sprung auf ein höheres Leistungsvermögen (höhere Taktgeschwindigkeit) nichtlinear ist und somit mehr Leistung in Anspruch nimmt als ein Betrieb bei niedrigeren Taktgeschwindigkeiten. Wenn jedoch der Durchsatz das Ziel ist, kann derartiges durch niedrigere Taktgeschwindigkeiten mit mehr Kernen erzielt werden, wobei, während die verwendete Gesamtleistung kleiner ist, eine größere Nutzung von Ressourcen vorliegt (d.h. mehr Prozessorkerne).
  • Prozessoren, Server und Betriebssystem nach dem Stand der Technik haben die Fähigkeit, Spannung und Taktfrequenzen für jeden Prozessorkern auf Grundlage von festgelegten Richtlinien anzupassen, wie zum Beispiel einer standardisierten Richtlinie für fairen Anteil. Diese können jedoch keine derartigen Anpassungen auf Grundlage von bekannten, vorhergesagten oder angeforderten Arbeitslasterfordernissen vornehmen. Sie sind daher nicht fähig, SLA-Bedingungen zu berücksichtigen, wenn Änderungen am Durchsatz von Prozessorkernen vorgenommen werden. Zum Beheben derartiger Schwachpunkte schlägt die vorliegende Erfindung eine Technik zum Zuordnen von Leistung auf Grundlage von SLA-Zusagen für Arbeitslasten vor, wobei die Inanspruchnahme der von dem Versorgungsunternehmen gesamten vertraglich festgelegten Leistungszuordnung maximiert wird. Außerdem stellt die vorliegende Erfindung eine Technik zum Bestimmen der Gesamtleistung für ein Rechenzentrum bereit, für die von einem Versorgungsunternehmen für die nächste Vertragslaufzeit ein Vertrag auf Grundlage der Nutzungsmuster und Prognosen geschlossen werden soll.
  • Die folgenden Begriffe und Variablen werden durchgehend durch die Offenbarung verwendet, für die Definitionen zur Verdeutlichung und zum besseren Verständnis bereitgestellt werden:
    1. a. Total_Utilized: Eine Gesamtkapazität, ausgedrückt anhand der elektrischen Leistung, die aktuell über alle Arbeitslasten in dem Rechenzentrum verwendet wird.
    2. b. Total_Contracted: Eine Gesamtzuordnung von elektrischer Leistung, die von einem elektrischen Versorgungsunternehmen für das Rechenzentrum vertraglich festgelegt wird.
    3. c. Vertraglich festgelegte Abweichung: Ein elektrischer Leistungsbereich mit der akzeptablen Abweichung, wie zwischen dem Rechenzentrum und dem elektrischen Versorgungsunternehmen vereinbart (z.B.+/- 5 %) ohne anfallende Strafgebühren.
    4. d. Total_Available: Eine Gesamtverarbeitungskapazität des Rechenzentrums, ausgedruckt anhand der elektrischen Leistung, die Arbeitslasten neu zugeordnet werden kann. (Total_Available = Total_Contracted - Total_Utilized)
    5. e. Workload_Current_Allocated: Eine aktuelle Verarbeitungskapazität, ausgedrückt anhand von elektrischer Leistung, die jeder Arbeitslast zugeordnet werden kann.
    6. f. Workload_Predicted_Demand: Eine Ressourcen-Nutzungsvorhersage auf Grundlage eines erlernten Arbeitslastmodells.
    7. g. Workload_Resource_Overage: Eine Arbeitslastbedarfs- oder Überschusskapazität, ausgedrückt anhand von elektrischer Leistung anhand des vorhergesagten Bedarfs im Vergleich mit der aktuellen Ressourcenzuordnung. (Workload_Resource_Overage=Workload_Current_Allocated - Workload_Predicted_Demand für eine bestimmte Arbeitslast, wobei, wenn Workload_Resource_Overage > 0 ist, die Arbeitslast einen Überschuss an Verarbeitungskapazität hat, die anhand von elektrischer Leistung ausgedrückt wird. Andernfalls erfordert die Arbeitslast mehr Leistung als aktuell zugeordnet.)
    8. h. Workload_Allocated_Proportion: Eine Proportion von Verarbeitungskapazität, ausdrückt anhand von elektrischer Leistung, die aktuell einer spezifischen Arbeitslast zugeordnet ist, gegenüber der Gesamtleistung, die allen Arbeitslasten übergreifend zugeordnet ist.
    9. i. Total_Workload_Allocated: Eine Gesamtverarbeitungskapazität, ausgedrückt anhand von elektrischer Leistung, die allen Arbeitslasten übergreifend zugeordnet ist.
    10. j. Resource_Unit: Eine maximierte Ressourceneinheit. Die Ressourceneinheit weist die Verarbeitungskapazität auf, die anhand von elektrischer Leistung ausgedrückt wird (z.B. Megawatt). Beispiele für Resource_Units können in diesem Fall zusätzliche Verarbeitungskapazität, die aus einer Erhöhung der Leistung an die Prozessorkerne einer bestimmten Arbeitslast abgeleitet wird, oder Verarbeitungskomponenten sein, die einer bestimmten Arbeitslast dynamisch zugeordnet werden können.
    11. k. Time_Window: Ein Zeitfenster mit einer Dauer, für die die elektrische Leistung Total_Available maximiert wird. Jedes bestimmte Time_Window kann mit einer konfigurierbaren Granularität definiert werden (z.B. pro Sekunde, Minute, Stunde, Tag, Woche usw.).
  • Unter folgender Bezugnahme auf 1 wird ein Blockschaubild einer disaggregierten Datenverarbeitungsumgebung veranschaulicht, die eine Cloud-Umgebung 100 enthält. In der Cloud-Umgebung 100 befindet sich das disaggregierte Datenverarbeitungssystem, das physische Hardware-Ressourcen 200 aufweist. Physische Hardware-Ressourcen 200 können Klassifizierungen der Hardware-Ressourcen aufweisen, wie beispielsweise einen Pool für Speichereinheiten 202, einen Pool für Grafikverarbeitungs-(GPU) Einheiten 204, einen Pool für CPU-Einheiten 206, einen Pool für Arbeitsspeichereinheiten 208 und einen Pool für Netzwerkeinheiten 210. Die physischen Hardware-Ressourcen 200 stehen mit einem Leistungsverwaltungsmodul 250 in Kommunikation. Das Leistungsverwaltungsmodul 250 kann aus derartigen Komponenten wie einem Prädiktor für Arbeitslast-Ressourcenauslastung 258, einer Engine zur Leistungsmaximierung 260 und einer Leistungszuordnungseinrichtung 262 bestehen, die mit einer Arbeitslaststatistikdatenbank 254, einer Konfigurationsdatenbank 252, einem Überwachungssystem der Arbeitslast-Ressourcenauslastung 256 und einer Engine zur Leistungsbereitstellung 264 in Kommunikation stehen kann.
  • Wie ferner erörtert wird, speichert die Konfigurationsdatenbank 252 vordefinierte Werte von Variablen auf Rechenzentrumsebene (z.B. Leistung ausgedrückt in Total-_Contracted, Total_Utilized und Total_Available). Die Arbeitslaststatistikdatenbank 254 ist zuständig für die Aufnahme von Statistikinformationen (wie beispielsweise für eine eindeutige Arbeitslastkennung, zugeordnete Ressourcen (Workload_Current_Allocated), vorhergesagten Bedarf (Workload_Predicted_Demand), Ressourcenüberschuss (Workload_Resource_Overage), aktuelle Inanspruchnahme, durchschnittliche Auslastung und andere Laufzeitstatistiken, Arbeitslast-SLA-Typen, Geschäftslogik und Arbeitslastauswirkung) der erwarteten Arbeitslasten in dem Rechenzentrum.
  • Der Prädiktor für Arbeitslast-Ressourcenauslastung 258 modelliert Arbeitslast-Nutzungsmuster auf Grundlage von Kennzahlen, die aus dem Überwachungssystem für Arbeitslast-Ressourcenauslastung 256 gesammelt wurden, das für die Überwachung der Auslastung jeder Arbeitslast in dem System zuständig ist. Die Leistungszuordnungseinrichtung 262 erstellt Leistungszuordnungsanweisungen auf Grundlage von Berechnungen der Engine zur Leistungsmaximierung 260 und sendet die Leistungszuordnungsanweisungen an die Engine zur Leistungsbereitstellung 264. Die Engine zur Leistungsbereitstellung 264 ruft die von der Leistungszuordnungseinrichtung 262 empfangenen Anweisungen auf (d.h. erhöht oder verringert Leistung für Prozessorkerne einer bestimmten Arbeitslast oder migriert freigewordene Verarbeitungskomponenten zu einer bestimmten Arbeitslast). Die Engine zur Leistungsmaximierung 260 empfängt Eingaben vom Prädiktor für Arbeitslast-Ressourcenauslastung 258 und berechnet die verschiedenen Variablen wie vorher definiert.
  • Die Tenants 212A, 212B und 212n stehen in Kommunikation mit der Cloud-Umgebung 100, dem Leistungsverwaltungsmodul 250, der Bereitstellungskomponente 260 und den physischen Hardware-Ressourcen 200. Die Tenants 212A, 212B und 212n können mit der Cloud-Umgebung 100 kommunizieren, die über jedes signaltragende Medium bereitgestellt wird.
  • Es sollte beachtet werden, dass die in 1 veranschaulichten Elemente nur ein Beispiel für zugehörige Komponenten bereitstellen, die in der disaggregierten Datenverarbeitungsarchitektur enthalten sein können. Zum Beispiel kann das Leistungsverwaltungsmodul 250 andere Komponenten als den Prädiktor für Arbeitslast-Ressourcenauslastung 258, die Engine zur Leistungsmaximierung 260, die Leistungszuordnungseinrichtung 262, die Arbeitslaststatistikdatenbank 254, die Konfigurationsdatenbank 252, das Überwachungssystem für Arbeitslast-Ressourcenauslastung 256 und die Engine zur Leistungsbereitstellung 264 enthalten, wobei es innerhalb des Schutzumfangs der vorliegenden Erfindung bleibt. Außerdem können das Verwaltungsmodul 250 und die Komponenten darin physisch getrennte Entitäten aufweisen oder zu einer Entität kombiniert sein. Ferner können die Aufgaben des Leistungsverwaltungsmoduls 250 und damit die darin enthaltenen Komponenten ausgeführt werden, die aus physischen Komponenten, Computercode oder einen Kombination davon bestehen.
  • 2 ist ein Blockschaubild, das den Abschnitt der physischen Hardware-Ressourcen 200 von 1 veranschaulicht. In dem Pool für Speichereinheiten 202 sind Speichereinheiten 202A, 202B und 202n enthalten. In dem Pool für GPU-Einheiten 204 sind GPU-Einheiten 204A, 204B und 204n enthalten. In dem Pool für CPU-Einheiten 206 sind CPU-Einheiten 206A, 206B und 206n enthalten. In dem Pool für Arbeitsspeichereinheiten 208 sind Arbeitsspeichereinheiten 208A, 208B und 208n enthalten. Schließlich sind in dem Pool für Netzwerkeinheiten 210 Netzwerkeinheiten 210A, 2108 und 210n enthalten. Jede vorgenannte Hardware-Ressource kann mit einer oder mehreren zusätzlichen vorgenannten Hardware-Ressourcen über ein signaltragendes Medium in Kommunikation stehen.
  • In den physischen Hardware-Ressourcen 200 sind alle Hardware-Ressourcen, die mit durchgezogener Linie angezeigt werden (d.h. die Speichereinheit 202A, die GPU-Einheit 204A, die CPU-Einheit 206A, die Arbeitsspeichereinheit 208A und die Netzwerkeinheit 210A) zu einem oder mehreren Tenants (d.h. die Tenants 212A, 212B, 212n) zugewiesene Hardware-Ressourcen. Hardware-Ressourcen, die mit gestrichelter Linie angezeigt werden (d.h. die Speichereinheiten 202B, 202n, die GPU-Einheiten 204B, 204n, die CPU-Einheiten 206B, 206n, die Arbeitsspeichereinheiten 208B, 208n und die Netzwerkeinheiten 210B, 210n) sind nicht zugewiesene Hardware-Ressourcen, die bei Bedarf für eine Arbeitslast eines jeweiligen Tenants 212A bis n zur Verfügung stehen.
  • Alle jeweiligen Tenants 212A bis n können jeweiligen einzelnen Hardware-Ressourcen 200 in beliebigen Mengen zugewiesen werden. In einer Ausführungsform kann jedem jeweiligen Tenant 212A bis n eine beliebige Menge von jeweiligen einzelnen Hardware-Ressourcen 200 innerhalb eines Grenzwerts der gesamten Systemkapazität und/oder eine verfügbare Menge der jeweiligen Hardware-Ressourcen 200 zugewiesen werden. Zum Beispiel kann eine Arbeitsspeichereinheit 208A bis n, die aus dem Arbeitsspeicher-Pool einem jeweiligen Tenant 212A bis n zugeordnet wurde, mit einer Mindestzuordnungseinheit (z.B. ein Byte oder Wort) bis zu einem Grenzwert der gesamten Systemkapazität und/oder einer verfügbaren Menge der Arbeitsspeichereinheiten 208A bis n bereitgestellt werden.
  • In einer anderen Ausführungsform können jedem jeweiligem Tenant 212A bis n jeweilige einzelne Hardware-Ressourcen 200 innerhalb einer Mengenschritt-Größeneinschränkung zugewiesen werden. Zum Beispiel kann es erforderlich sein, die Arbeitsspeichereinheiten 208A bis n in mengenmäßigen Größen von vollen oder halben Arbeitsspeichereinheiten des Dual Inline Memory-Moduls (DIMM) zuzuordnen, um von der jeweiligen Arbeitsspeichereinheit 208A bis n volle Bandbreite für den Prozessor sicherzustellen, wenn Daten gelesen/geschrieben werden. Dies trifft insbesondere in einem disaggregierten System zu, da die Arbeitsspeichereinheit 208A bis n direkt über einen faseroptischen/optischen Schalter mit der Prozessor-Arbeitsspeichereinheit (zum Lesen/Schreiben von Arbeitsspeichertransaktionen) so verbunden ist, als wäre sie lokal mit dem Prozessor-Chip verbunden, aber stattdessen in ihrer Position um einen kleinen Abstand (z.B. 1 Meter) davon entfernt sein kann. Da das disaggregierte System nicht auf virtuellen Komponenten, sondern stattdessen auf physischen Komponenten beruht (d.h. tatsächlichen Chips statt Kernen oder VMs), kann die mengenmäßige Größeneinschränkung in einem anderen Beispiel erfordern, dass ein Minimum von einer Einheit einer Zentraleinheit (CPU) 206A bis n einem Tenant 212A bis n mit zusätzlichen CPU-Einheiten 206A bis n zugewiesen wird, die für den Tenant 212A bis n in Mengen von zwei, vier usw. bereitgestellt werden.
  • In verschiedenen hierin beschriebenen Ausführungsformen verwendet die vorliegende Erfindung vorhandene Vorhersagetechniken, um den Bedarf einer Arbeitslast zu schätzen, und ordnet verfügbare Leistung zu oder entfernt die zugeordnete Leistung der Arbeitslast (auf Grundlage einer Arbeitslastpriorität), die andernfalls verschwendet würde. Eine gesamte verfügbare Leistung wird überwacht und verfolgt. Die Leistung wird mit so geringen Abweichungen wie möglich von der vertraglich festgelegten Leistung für das Rechenzentrum aufrechterhalten. In einigen Ausführungsformen wird die gesamte verfügbare Leistung zu Arbeitslasten mit Bedarf auf Grundlage der Priorität der Arbeitslast zugeordnet, um für sie eine zusätzliche Durchsatzsteigerung bereitzustellen, wobei die gesamte Auslastung innerhalb des Bereichs der für ein derartiges Rechenzentrum vertraglich festgelegten Leistung gehalten wird. Zum Beispiel nimmt ein Erhöhen der Spannung von Prozessorkernen, die eine derartige priorisierte Arbeitslast ausführen, und damit ein Erhöhen der Taktgeschwindigkeit, zusätzliche Leistung in Anspruch, jedoch aus gutem Grund (z.B. große Datenanalysen, die ausgeführt werden können, sobald Arbeitslasten mit höherer Priorität keine Leistung in Anspruch nehmen). Falls in dem Rechenzentrum keine ausreichende Gesamtleistung verfügbar ist, die der maximalen vertraglich festgelegten Netzstromversorgung entspricht, während für die Arbeitslasten aufgrund des vorhergesagten Bedarfs zusätzliche Leistung erforderlich ist, entfernt das System die geschätzte Überschussleistung und/oder reduziert die Spannung, die einigen der Arbeitslasten (mit niedrigerer Priorität) zugeordnet ist, und ordnet sie zu höher priorisierten Arbeitslasten aufgrund ihres vorhergesagten Bedarfs zu.
  • Die Priorität der Arbeitslasten wird anhand ihrer SLAs oder anderer Geschäftsregeln bestimmt, die den Tenants 212A bis n zugewiesen sind. Durch Zuordnen der verfügbaren Überschussleistung und Steuern der verfügbaren Gesamtleistung gegen Null innerhalb der Abweichung von dem, was nominell zugeordnet wurde, hält das System die an dem Rechenzentrum in Anspruch genommene Gesamtleistung im Gleichgewicht und stimmt sie effizienter mit dem Leistungsbereich ab, der tatsächlich von dem Versorgungsunternehmen vertraglich festgelegt wurde
  • Die vorliegende Erfindung versucht daher, die Nutzung der Leistung, die durch Versorgungsunternehmen vertraglich festgelegt wurde, zu maximieren statt die Leistungsinanspruchnahme zu reduzieren, wobei SLAs oder andere Geschäftslogikanforderungen berücksichtigt werden, wenn die Verwendung der zugeordneten Leistung maximiert wird. Dies ist ein wichtiger Unterschied zum Stand der Technik, in dem primär nicht ausgelastete Server in den Ruhemodus versetzt oder heruntergefahren werden, um weniger Leistung in Anspruch zu nehmen. In einem anderen Stand der Technik wird Leistung auf Grundlage von hoher/geringer Nutzung angepasst, wobei der Schwerpunkt nicht auf der Maximierung der Inanspruchnahme der Leistung liegt, die von dem Versorgungsunternehmen unter Verwendung von Arbeitslasten mit opportunistischen SLAs zum Anpassen der Leistungsbereitstellung zugeordnet wird, wobei SLAs eingehalten werden. Außerdem und gleichzeitig verbessert die offenbarte Erfindung die Auslastung und Durchsatzkapazität der in einem Rechenzentrum verwendeten Hardware und Software.
  • Wie vorher erwähnt, wird diese Funktionalität durch eine Richtlinie auf Grundlage eines Leistungsverwaltungsdienstes erreicht, der eine Technik umsetzt, um die Abweichung der Leistungsinanspruchnahme innerhalb des Bereichs zu halten, der von dem Versorgungsunternehmen zugeordnet (vertraglich festgelegt) wurde, wobei eine derartige Leistungsverwendung und ihre Auslastung maximiert werden, wodurch der gewünschte Arbeitslastdurchsatz erreicht wird. Dies ist ausschließlich in einem disaggregierten Datenverarbeitungssystem erreichbar, da Verarbeitungskomponenten schnell von einer Arbeitslast auf eine andre umgeschaltet werden können, und wobei große disaggregierte Systeme die Fähigkeit haben, viele parallele Arbeitslasten zu steuern. Daher gibt es immer Arbeitslasten, die auszuführen sind, entweder im aktiven oder unterbrochenen Modus, sowie andere Arbeitslasten, die wiederaufzunehmen sind, die alle schnell innerhalb einer Reaktionszeit von Millisekunden angesteuert werden können.
  • Wenn ein Versorgungsunternehmen unter Verwendung des vorgenannten Beispiels 10 Megawatt Leistung mit einer akzeptablen Abweichung von ±5 % ohne Strafgebühren für eine derartige Abweichung von der Leistungsinanspruchnahme zugeordnet (vertraglich festgelegt) hat, wird dem Rechenzentrum ein Leistungsbereich von 9,5 bis 10,5 Megawatt zugeordnet. Obwohl der Bereich akzeptabel ist, würde ein Rechenzentrum mit hoher Kapitalinvestition es vorziehen, sich an der Obergrenze der Auslastung der Gesamtleistung zu bewegen (d.h. einer übermäßigen Nutzung statt einer zu geringen Nutzung), wodurch die gesamte zusätzlich verfügbare Leistung in dem Rechenzentrum gegen Null gesteuert wird, wobei ein Ziel zur Ausführung der erlaubten 10,5 Megawatt eingehalten wird.
  • Ein fundamentales Prinzip, das durch die Funktionalität der vorliegenden Erfindung erkannt wird, besteht darin, dass die Energie/Leistung, die von jedem Prozessor/Prozessorkern in Anspruch genommen wird (nicht nur in einem disaggregierten Daten-Datenverarbeitungssystem, sondern generell in der Datenverarbeitung), ein Maß für Arbeit und Auslastung zum Ausführen jeweiliger Arbeitslasten gegenüber einer maximalen Menge an Leistung oder Energie ist, die jeder einzelne Prozessor/Prozessorkern über einen bestimmten Zeitraum in Anspruch zu nehmen fähig ist. Diese maximale Menge an Leistung oder Energie, die von dem einzelnen Prozessor in Anspruch genommen werden kann, hängt von einer individuellen Spezifikation (Auslegung) des Chips selbst, der Menge an Wärme, die der Prozessor auf Grundlage seiner Kühlungsbilanz abzugeben fähig ist, und einer Menge an verfügbarer Leistung ab (z.B. eine Menge einer von dem Versorgungsunternehmen erhältlichen Leistung oder Spezifikationen der Eingangsleistung). Da sich zum Beispiel die Technologie für höchstintegrierte (VLSI) Chips weiterentwickelt und immer kleinere Transistoren in einem bestimmten Bereich eines Chips hergestellt werden können, sind mehr Funktionen möglich - obwohl jedoch diese Transistoren auch schneller umschalten und vielleicht auch mit niedrigeren Spannungen als vorherige größere Transistoren arbeiten können, arbeiten möglicherweise entweder nicht alle (nicht alle Transistoren in einem Chip schalten um) und/oder die verfügbare Energie oder Leistung bleibt aufgrund von Kühlungseinschränkungen, Leistungsbereitstellungskonzepten usw. konstant.
  • Anders ausgedrückt, da beim aktuellen Stand der Technik die Prozessorauslastung im Allgemeinen auf Grundlage des Zustands des Betriebssystems aller Prozesse berechnet wird, weisen die Prozessoren (Prozessorkerne) „ausgeführte“ gegenüber „inaktiven “ Prozesse auf, die über einen bestimmten Zeitraum ausgeführt werden. Wenn sich ein Prozessor jedoch in einem „ausgeführten“ Zustand befindet, hängt die Menge an Arbeit, die er ausführt (d.h. die Menge an Leistung oder Energie, die er in Anspruch nimmt), in hohem Maß von dem Code ab, der durch den Prozessor ausgeführt wird. Zum Beispiel weisen einige Codes eine hohe Anzahl von Gleitkommastellen auf, während andere Arbeitsspeichertransaktionen ausführen und (für einen Zeitraum, der kurz genug ist, dass ihn das Betriebssystem nicht messen kann) an Cache-Fehlgriffen verzögert werden, während der Arbeitsspeicher gelesen wird (selbst wenn Multithreading/Probleme von allen Kernen an die Arbeitsspeicher-Controller gesendet werden). Daher kann eine Eingabe/Ausgabe- (E/A) Operation eine längere Wartezeit haben, sodass der Prozess, wenn ein Kern/Prozess an einer E/A wartet, für gewöhnlich durch das Betriebssystem mit „I/O wait“ (E/A-Wartezeit) gekennzeichnet wird. Damit wird keine genaue Messung für die Menge an „Arbeit“ oder anderweitig einer grundlegenden Auslastung des Prozessors/Prozessorkerns bereitgestellt.
  • Die vorliegende Erfindung berechnet daher die Auslastung jedes Prozessors/Prozessorkerns oder vielmehr jeder funktionalen Subsystemkomponente anders. Die hierin bereitgestellte Funktionalität sorgt dafür, dass jeder aus einer Vielfalt von „Energiefaktoren“ in Echtzeit berechnet und gemessen werden kann, um eine Gesamtauslastung jeder Verarbeitungskomponente (z.B. in diesem Beispiel Prozessor/Prozessorkern) zu erhalten, indem eine berechnete aggregierte Arbeit von jedem der Energiefaktoren mit einer maximalen Leistungsmenge verglichen wird, die von dem jeweiligen Prozessor/Prozessorkern über einen bestimmten Zeitraum in Anspruch genommen werden soll. Das heißt, die Auslastung jedes Prozessors/Prozessorkerns wird nicht dadurch bestimmt, ob er Prozesse „ausführt“ oder „inaktiv“ ist, sondern unter Berücksichtigung dessen „welche“ Prozesse der Prozessor/die Prozessorkerne ausführen. Die berechneten Energiefaktoren können eine zugeordnete Spannung und Taktgeschwindigkeit des Prozessors/Prozessorkerns (oder eine Anpassung der zugeordneten Spannung und Taktgeschwindigkeit), eine in Anspruch genommene Leistungsmenge (entweder in Echtzeit oder über einen vorbestimmten Zeitrahmen), einen Prozesstyp, der ausgeführt wird (z.B. abhängig von Code, SLA oder anderen Faktoren) und/oder die spezifischen Prozessoranweisungen enthalten, die ausgeführt werden. Natürlich kann eine Mehrzahl anderer Faktoren oder Untergruppen von Faktoren berücksichtigt werden, wie dem Fachmann klar sein wird.
  • Außerdem muss beachtet werden, dass in einem Prozessorchip (der eine Sammlung von Prozessorkernen aufweist), der auf eine maximale Energie- (Leistungs-) Aufnahme auf Grundlage der erwähnten Faktoren (z.B. Leistungsaufnahme/Kühlungsauslegung der Baugruppe oder diesem Prozessorchip zugeordnete Leistung usw.) beschränkt ist, jeder der Kerne für seine spezifischen Arbeitslasten unterschiedliche Anweisungsgruppen ausführen kann und/oder ein verschiedenes Verhalten von Cachespeichertreffern haben kann (von perfekt bis schlecht), das die mehrteiligen Arbeitsspeichertransaktionen verzögert und von Kernen fordert, auf Arbeitsspeicher-Lesevorgänge zu warten (da die Kerngeschwindigkeit viel höher als die Arbeitsspeicherlatenz-Lesezeiten ist). Daher kann jeder Kern verschiedene Leistungspegel in Anspruch nehmen. Dies kann zu unterschiedlicher Auslastung der für den Prozessorchip als Ganzes (der mehrere Kerne mit jeweils anderer Geschwindigkeit und Spannung hat) bereitgestellten Leistung führen. Beim Versuch, diese Energie über den Prozessorchip in Anspruch zu nehmen, kann es verschiedenen Kernen möglich sein, mit einer höheren Spannung und höheren Taktgeschwindigkeiten zu arbeiten (der Grund, warum eine höhere Spannung notwendig ist - um mit einer höheren Taktgeschwindigkeit zu arbeiten), um die Energieauslastung so nahe wie möglich an 100 % zu halten.
  • Wenn ein bestimmter Prozessorchip (der Prozessorchip wird auch hier wieder in diesem Beispiel verwendet, wobei auf jede funktionale Komponente verwiesen werden kann) die ihm zugeordnete Energie aus irgendeinem Grund nicht verwenden kann, und nach einem Versuch, dass alle hierin bereitgestellten Prozesse, die diesem Prozessorchip zugeordnet worden sind, so viel Energie wie möglich in Anspruch nehmen, kann festgestellt werden, dass der Prozessor nicht ausgelastet ist, wenn für einen Messwert der Gesamtauslastung ein negatives Verhältnis bestimmt wird. Der Messwert der Gesamtauslastung für jede Komponente oder jedes Subsystem (z.B. Prozessor) kann berechnet werden als: (tatsächlich in Anspruch genommene Energie pro Chip - Mindestenergie pro Chip) / (maximale Energie pro Chip - Mindestenergie pro Chip), wobei die Mindestenergie pro Chip die Energie ist, die der Prozessorchip in Anspruch nimmt, selbst wenn die Kerne nichts verarbeiten, die maximale Energie pro Chip die maximale Gesamtenergie ist, die der Chip in der Kühlungsauslegung der Baugruppe verbrauchen darf, oder die für diesen Chip zulässige zugeordnete Energie und die tatsächlich in Anspruch genommene Energie die pro Chip in Anspruch genommene Gesamtenergie ist. Dies alles wird über ein Zeitfenster T gemessen, das von kurzer Dauer sein kann (z.B. einige Sekunden oder eine Minute).
  • Verschiedene Muster des Gesamtauslastungsmesswerts können verwendet werden, um Arbeitslasten auf Grundlage einer Berechnung des Gesamtauslastungsmesswerts für jede Komponente oder jedes Subsystem über einen vorbestimmten Zeitraum zu klassifizieren. Das bedeutet, dass die Gesamtauslastungsmesswerte für ein verarbeitendes Subsystem, ein Arbeitsspeicher-Subsystem, ein Beschleuniger-Subsystem und/oder ein Netzwerk-Subsystem als Teil der Leistungsverwaltung des disaggregierten Systems über den vorbestimmten Zeitraum zum Klassifizieren einer erfassten ähnlichen eingehenden Arbeitslast derselben Klasse betrachtet werden können.
  • Zum Beispiel können die Klassifizierungen enthalten: a) Cache-freundliche Arbeitslasten, die relativ wenig Energie vom Arbeitsspeicher-Subsystem und viel mehr Energie von einem Cachespeicher-Subsystem in Anspruch nehmen, wobei ein Kern(e)-Subsystem und/oder Beschleuniger-Subsystem immer noch Energie zum Ausführen einer Berechnung in Anspruch nehmen; b) Cache-unfreundliche Arbeitslasten, die relativ mehr Energie vom Arbeitsspeicher-Subsystem und viel weniger Energie von ihrem Cachespeicher-Subsystem in Anspruch nehmen, wobei ein Kern(e)-Subsystem oder Beschleuniger-Subsystem immer noch Energie zum Ausführen einer Berechnung in Anspruch nehmen; c) berechnungsgebundene Arbeitslasten, die relativ mehr Energie von ihren Kernen oder Beschleuniger-Subsystemen in Anspruch nehmen und sehr wenig von ihren Arbeitsspeicher- und/oder ihren Netzwerk-Subsystemen; und d) Eingabe/Ausgabe- (E/A) gebundene Arbeitslasten, die relativ mehr Energie von ihrem Netzwerk-Subsystem und relativ wenig Energie von ihren Kernen und dem Beschleuniger-Subsystem in Anspruch nehmen.
  • Diese Klassifizierungen können zum dynamischen Zuordnen von Leistung zu einzelnen Komponenten oder Subsystemen und/oder dynamischen Zuordnen einer Anzahl der einzelnen Komponenten oder Subsysteme zu den erfassten eingehenden Arbeitslasten verwendet werden, die ähnliche frühere Gesamtauslastungsmesswerte haben. Zum Beispiel wird eine frühere Arbeitslast x betrachtet, für die nach dem Erhalten des Gesamtauslastungsmesswerts aller Komponenten oder Subsysteme in dem disaggregierten System festgestellt wurde, dass sie eine berechnungsgebundene Arbeitslast ist. Wenn diese Arbeitslast x wiederkehrt (als die identische Arbeitslast oder eine ähnliche Arbeitslast), ist das disaggregierte System fähig zu bestimmen, dass die Arbeitslast x mehr Prozessorenergie oder mehr zugeordnete Prozessoren benötigt, um die Arbeitslast x effizient auszuführen. Das disaggregierte System ist auch fähig zu bestimmen, dass die Arbeitslast x nicht so viel Arbeitsspeicher und Netzwerkleistung oder eine geringere Anzahl von zugeordneten Arbeitsspeicher- und Netzwerkkomponenten benötigt. Somit ist das disaggregierte System fähig, in Echtzeit entweder eine Anzahl von Komponenten anzupassen, die einzelnen Arbeitslasten auf Grundlage ihrer Gesamtauslastungsmesswerte aus früheren Erfahrungen zugeordnet wurden, und/oder die Leistung (durch Erhöhen oder Verringern) anzupassen, die den zum Ausführen der Arbeitslast verwendeten einzelnen Komponenten zugeordnet ist. In anderen Ausführungsformen kann dieses Gesamtauslastungs-Messwertmuster zum dynamischen Zuweisen von Leistung und/oder Komponenten und Subsystemen zu einzelnen Benutzern, bestimmten Anwendungen oder einer Kombination davon verwendet werden.
  • Somit kann ein Berechnen der aggregierten Arbeit unter Verwendung einer Vielfalt von Energiefaktoren und ein Erhalten der Gesamtauslastung jedes der Prozessoren/Prozessorkerne (oder anderer Komponenten) verwendet werden, um Leistung zwischen Prozessoren/Prozessorkernen oder anderen Subsystemen neu zuzuordnen, um die Leistung im Gleichgewicht zu halten, oder ansonsten die Zuordnung von Komponenten oder Subsystemen aufzuheben, um einen selben Durchsatz unter Verwendung von weniger Energie im ganzen System unter Verwendung der im Folgenden beschriebenen Algorithmen zu erzielen.
  • 3 veranschaulicht ein Verfahren 300 zur Leistungsverwaltung in einem disaggregierten Datenverarbeitungssystem. Das Verfahren 300 kann gemäß der vorliegenden Erfindung in jeder der Umgebungen ausgeführt werden, die unter anderem in verschiedenen Ausführungsformen in 1 und 2 veranschaulicht wurden. Selbstverständlich können mehr oder weniger Operationen als diejenigen, die speziell in 3 beschrieben werden, im Verfahren 300 enthalten sein, wie einem Fachmann beim Lesen der vorliegenden Beschreibungen klar sein dürfte.
  • Jeder der Schritte des Verfahrens 300 kann von jeder geeigneten Komponente der Betriebsumgebung ausgeführt werden. Zum Beispiel kann das Verfahren 300 in verschiedenen Ausführungsformen teilweise oder ganz von einem Prozessor oder einer anderen Einheit mit einem oder mehreren integrierten Prozessoren ausgeführt werden. Der Prozessor, z.B. eine oder mehrere Verarbeitungsschaltungen, ein oder mehrere Chips und/oder ein oder mehrere Module, die in Hardware und/oder Software umgesetzt sind und bevorzugt mindestens eine Hardware-Komponente haben, können in jeder Einheit zum Ausführen von einem oder mehreren Schritten des Verfahrens 300 verwendet werden. Veranschaulichende Prozessoren enthalten eine Zentraleinheit (CPU), eine Grafikverarbeitungseinheit (GPU), eine anwendungsspezifische integrierte Schaltung (ASIC), ein feldprogrammierbares Gate-Array (FPGA) usw., Kombinationen davon oder eine andere geeignete Datenverarbeitungseinheit, die nach dem Stand der Technik bekannt ist, sie sind aber nicht darauf beschränkt.
  • Das Verfahren 300 beginnt (Schritt 302) mit einem Zuordnen einer Gruppe von ursprünglichen elektrischen Leistungspegeln zu einer Gruppe von Prozessorkernen in dem disaggregierten Datenverarbeitungssystem gemäß einer vorhergesagten gewünschten Arbeitslast, wobei sich die Gruppe von ursprünglichen Leistungspegeln zu einem ursprünglichen kollektiven vertraglich festgelegten Leistungspegel aggregiert (Schritt 304). Elektrische Leistung wird zu jeweiligen Prozessorkernen in der Gruppe von Prozessorkernen dynamisch zugeordnet, um eine Kapazität zum Ausführen einer kollektiven geforderten Arbeitslast zu erzeugen, wobei die elektrische Leistung für die Gruppe von Prozessorkernen bis zu einem annähernd konstanten elektrischen Leistungspegel innerhalb eines Schwellenwerts des ursprünglichen kollektiven vertraglich festgelegten elektrischen Leistungspegels aufrechterhalten wird (Schritt 306). Das Verfahren endet (Schritt 308).
  • In einigen Ausführungsformen kann das Leistungsverwaltungsmodul 250 Arbeitslasten in verschiedene Kategorien priorisieren, wobei jede Kategorie Bereiche von zulässiger Taktgeschwindigkeit und Spannung enthält (z.B. Hoch (Taktgeschwindigkeitsbereich a bis b); Mittel (Taktgeschwindigkeitsbereich c bis d); Niedrig (Taktgeschwindigkeitsbereich e bis f)). Das Leistungsverwaltungsmodul 250 kann ferner den Bereich jeder Kategorie (die Spannung und die Taktgeschwindigkeit der Prozessoren/Prozessorkerne) auf Grundlage einer Analyse eines Nutzungsmusters der Arbeitslasten und einer Prognose der Anforderungen an die Taktgeschwindigkeit anpassen (z.B. können einige Arbeitslasten saisonale oder periodische Ressourcenauslastungsmuster haben). Natürlich kann eine Menge anderer Kategorien und Prioritäten statt einer Priorität, einer Kategorie oder eines Bereichs von „Hoch“, „Mittel“ und „Niedrig“ abhängig von der aktuellen Umsetzung verwendet werden, wie dem Fachmann klar sein dürfte.
  • Weitere Aktionen können eine Neukategorisierung einer Arbeitslast auf Grundlage ihrer Nutzungsanforderungen und Prognose ausführen. Wenn zum Beispiel eine Arbeitslast mit niedriger Priorität immer einen Höchstwert des Taktgeschwindigkeitsbereichs anfordert, sollte sie neu als Arbeitslast mit mittlerer Priorität kategorisiert werden. Wenn im Gegensatz dazu eine Arbeitslast mit hoher Priorität einen niedrigeren Wert seines zulässigen Taktgeschwindigkeitsbereichs anfordert, kann sie neu als Arbeitslast mit mittlerer Priorität kategorisiert werden usw. Zusätzlich kann Leistung zu bestimmten Arbeitslasten auf Bedarfsgrundlage zugewiesen werden, um das Leistungsvermögen (Taktgeschwindigkeit) des Prozessors/Prozessorkerns zu erhöhen, indem die Leistung und damit die Taktgeschwindigkeit von anderen Arbeitslasten mit niedrigerer Priorität oder geringerem Bedarf gesenkt wird. Ferner können die Mechanismen des Leistungsverwaltungsmoduls 250 eine genauere Menge von vertraglich festgelegter Leistung für eine nächste Laufzeit aus einer Vorhersage/Prognose der Prioritätsverteilung bestimmen.
  • Unter Fortsetzung mit 4 wird ein Blockschaubild mit einer allgemeinen Übersicht 400 einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Historische Nutzungsdaten 410 werden durch das System analysiert, um den untersten/obersten Bereich der Taktgeschwindigkeit der Kategorien Hoch, Mittel, Niedrig 412 (oder anderweitig vordefiniert) zu schätzen. Das System passt den Bereich für die Kategorien Hoch, Mittel, Niedrig auf Grundlage der Änderungen neu an, die in den historischen Nutzungsdaten 410 beobachtet wurden. In einem Beispiel können die Bereiche für die Kategorien statisch definiert werden, wogegen in einem anderen Beispiel der Bereich auf Grundlage des historischen Nutzungsmusters 410 und der Bedarfsprognose automatisch geschätzt werden kann.
  • Das System verwendet die historischen Nutzungsdaten 410 zum Kategorisieren der Arbeitslasten in verschiedene Prioritäten von Taktgeschwindigkeit und Spannung 414. Ein Erstellen einer Rangordnung von Arbeitslastgruppen 420 wird auf Grundlage von SLA, Priorität, Ressourcenabhängigkeiten vorgenommen, um die Reihenfolge zu bestimmen, in der Ressourcen (Leistung) neu zugeordnet werden, 416. Verschiedene Faktoren können zum Bilden der Kriterien zum Gruppieren der Arbeitslasten berücksichtigt werden. Eine vorteilhafte Kriteriengruppe kann sich auf Arbeitslasten mit ergänzenden Ressourcennutzungsmustern konzentrieren, in denen eine Ressourcenbewegung nur minimale Auswirkung hat. Zum Beispiel kann eine Arbeitslast X mit hoher SLA ein Muster für hohe Nutzung haben und wird in den Bereich Hoch der Taktgeschwindigkeitskategorie kategorisiert, im Gegensatz zu einer Arbeitslast Y, die ebenfalls eine hohe SLA hat, aber ein Muster für geringe Nutzung haben kann, und in den Bereich Niedrig der Taktgeschwindigkeitskategorie kategorisiert wird. Eine Berücksichtigung dieser Arbeitslasten mit einem ergänzenden Ressourcennutzungsmuster zum neuen Zuordnen von elektrischer Leistung unterstützt eine Maximierung der Auslastung von elektrischer Leistung und minimiert damit die gesamte verfügbare Leistung, wobei die SLA erfüllt wird. Eine weitere Kriteriengruppe können Kriterien sein, für die der Arbeitslast-Verantwortliche eine Gruppe von Arbeitslasten angibt, für die ein Ziel eines Gruppenleistungsvermögens oder ein Ziel einer Gruppenenergieeinsparung vorhanden ist, wobei die Ziele der Gruppe wichtiger als die Ziele einer bestimmten Arbeitslast sind. Das System ordnet dann Leistung dynamisch neu zu, um die höhere Taktgeschwindigkeit von einer Arbeitslast zur anderen zu gestatten, um den Taktgeschwindigkeitsbedarf 418 zu erfüllen.
  • Des Weiteren können Anpassungen an die zugeordnete oder neu zugeordnete Spannung und Taktgeschwindigkeit jedes Prozessors/Prozessorkerns nach einem Erfassen ausgeführt werden, dass eine Eingangsspannungsquelle (z.B. Stromversorgung) reduziert worden ist. Beispielsweise während eines „Brownouts“ (Spannungsabfall) des Energieversorgungsnetzes, eines direkten Stromausfalls, der die Nutzung einer unterbrechungsfreien Stromversorgung (UPS) oder eines Generators erfordert, oder anderen Situationen, in denen die Eingangsleistung für das Rechenzentrum nicht bei voller Kapazität liegt, kann Leistung von den Prozessoren (durch Anpassen der Spannung und Taktgeschwindigkeit in diesen) die Arbeitslasten mit niedrigerer Priorität ausführen, zu Arbeitslasten mit höherer Priorität neu zugeordnet werden, was von SLA-Anforderungen der jeweiligen ausgeführten Arbeitslasten abhängt.
  • Dies ist der Fall, wenn die Stromversorgung nicht mehr bereitgestellt wird, wobei ein Rechenzentrum zunächst eine Zeitlang (z.B. einige Sekunden bis zu einer Minute) mit Batteriestrom arbeiten muss (um ein sachgemäßes Abschalten von Arbeitslasten mit SLAs ohne Option zum Fortsetzen der Ausführung während einer Energieknappheit zu ermöglichen), bis der bzw. die Notstromgeneratoren in dem Rechenzentrum anlaufen und eine bestimmte Leistung ins Netz bringen können (d.h. der bzw. die Generatoren können einen Teil der Gesamtstromversorgung erzeugen, die im normalen Betrieb nur zum Abdecken derjenigen Arbeitslasten und SLAs verwendet wird, für die vertraglich festgelegt ist, dass sie bei einer derartigen Stromunterbrechung ausgeführt werden).
  • Generatoren brauchen einige Zeit, um hochzufahren, und einige Zeit, um ihre Ausgangsleistung zu ändern, genauso wie eine bestimmte Verzögerung zu beobachten ist, wenn ein Auto beschleunigt wird, indem das Gaspedal ganz heruntergedrückt wird, bevor die volle Beschleunigung erreicht wird. Daher wird eine UPS oft unmittelbar nach einer Stromunterbrechung verwendet, um zu ermöglichen, dass das gesamte Rechenzentrum in einen Notstrommodus übergeht, Server und Dienste abschaltet, die nicht explizit für den Fall einer Energieknappheit vertraglich festgelegt wurden (z.B. durch Aufnahme eines Snapshots des Arbeitsspeicherabbilds und rasches Verschieben des Abbilds auf einen Flashspeicher, um einen Wiederaufnahmepunkt zu einem späteren Zeitpunkt zu erstellen). Nach einigen Sekunden (im Allgemeinen z.B. 10 bis 30 Sekunden) kann der Generator bzw. können die Generatoren ihre Leistungserzeugung stabilisieren, um eine Notstromversorgung für den Rest der Dienste und Ressourcenpools bereitzustellen, für die vertraglich festgelegt ist, dass sie weiterhin ausgeführt werden, oder anderweitig erfasst sind, um im Fall von Leistungsverknappung/eines Notfalls ausgeführt zu werden. Während der Notstromerzeugung besteht das Ziel darin, soviel Brennstoff wie möglich zu sparen, der zum Betreiben des bzw. der Notstromgeneratoren erforderlich ist, und wenn ein Dienst oder Ressourcenpool den Notstrom nicht verwendet oder benötigt, diesen abzuschalten, um ihn später innerhalb von Millisekunden auf Grundlage der disaggregierten Architektur neu zu starten. Für Dienste/Arbeitslasten/Ressourcenpools, für die vertraglich festgelegt ist, dass sie mit Notstrom laufen müssen, wäre die Geschwindigkeit zum Ausführen des Dienstes die minimal mögliche, um den Echtzeit-Durchsatz aufrechtzuerhalten, der von diesem Dienst und seiner Verarbeitung benötigt wird. Daher werden konstante Anpassungen von Taktgeschwindigkeit und Spannung benötigt, um Leistungsinanspruchnahme dieses Diensts/der Arbeitslast/des Ressourcenpools zu verringern und nur zu erhöhen, wenn der erfasste Durchsatz langsamer als derjenige ist, der für die Bereitstellung der Echtzeit-Verarbeitung erforderlich ist, wie vertraglich festgelegt.
  • Angesichts der Tatsache, dass diese Verarbeitung während der Erzeugung von Notstrom sprunghaft sein kann, wird der Akkubetrieb des Rechenzentrums als ein glättendes statistisches Mittel zum Abmildern der Abweichung zwischen der Zeit verwendet, die benötigt wird, um die Ausgangsleistung der lokalen Generatoren anzupassen, und der Zeit, die benötigt wird, um auf reale Ereignisse mit zusätzlichen Energieanforderungen für die Verarbeitung zu reagieren. In Zeiten einer Nutzung im Kleinstbereich wird die Zusatzleistung, die von den Stromgeneratoren erzeugt wird, in den Akkus gespeichert, bis der bzw. die Generatoren den Leistungsausgang auf einen niedrigeren Wert anpassen (und weniger Brennstoff verbrauchen), und umgekehrt stellt der Akku die momentan benötigten Zusatzleistung bereit, bevor der Generator mehr Ausgangsleistung erzeugen und mehr Brennstoff verbrauchen kann.
  • Abhängig von einer Menge elektrischer Leistung, die während der Reduzierung und/oder Unterbrechung der Stromversorgung entweder durch die UPS, den bzw. die Generatoren oder eine Kombination davon bereitgestellt wird, kann die Leistung in einigen Fällen (nach einem vorbestimmten Zeitraum auf Generatorleistung) von einem oder mehreren Prozessoren, die (gemäß einer SLA) Arbeitslasten mit niedrigerer Priorität ausführen, zu einer Arbeitslast mit höherer Priorität neu zugeordnet werden, sodass die Arbeitslast mit niedrigerer Priorität gestoppt oder vorübergehend ausgesetzt wird, bis die normale Stromversorgung wiederhergestellt ist.
  • Im anderen Fällen können bestimmte individuelle Komponenten oder Subsysteme (d.h. Prozessorkerne, Prozessoren usw.), Bereiche von Subsystemen (d.h. Pools von Prozessoren, Pools von Arbeitsspeicherkomponenten usw.) oder ganze zusammengestellte disaggregierte Systeme nicht mit Notstrom versorgt werden angesichts der Tatsache, dass die Komponenten, Bereiche oder disaggregierten Systeme Arbeitslasten mit SLA-Anforderungen ausführen, die keinen Notstrom während einer Unterbrechung enthalten. Während einer Stromversorgungsunterbrechung (oder bei Erfassen einer Stromversorgungsreduzierung über einen vorbestimmten Schwellenwert) kann zum Beispiel eine UPS in dem Rechenzentrum bestimmte Komponenten oder Systeme mit Leistung versorgt halten, bis ein oder mehrere Generatoren gestartet werden und damit beginnen, das Rechenzentrum, darunter die einzelnen Komponenten oder Systeme, mit Leistung zu versorgen. Nach einem vorbestimmten Zeitraum mit Betrieb auf Generatorleistung können die Systeme beginnen, sich systematisch abzuschalten (und damit auch den Strom) zu den einzelnen Komponenten oder Systemen abzuschalten. Dies kann disaggregierte Systeme umfassen, die granulare Komponenten abschalten wie einzelne Prozessoren oder Prozessorkerne, Pools von Subsystemen (z.B. Pools von Prozessoren, Arbeitsspeicherkomponenten usw.), oder kann ein Abschalten von einem oder mehreren vollständig zusammengestellten disaggregierten Systemen enthalten.
  • In einem anderen Beispiel können bestimmte „Bereiche“ des Rechenzentrums für ein Ausführen von Arbeitslasten mit SLAs von unterschiedlicher Priorität angegeben werden. Ein Bereich des Rechenzentrums (mit darin enthaltenen mehreren disaggregierten Systemen) kann zum Ausführen von SLA-Arbeitslasten mit hoher Priorität angegeben werden, ein Bereich kann zum Ausführen von SLA-Arbeitslasten mit mittlerer Priorität angegeben werden, und ein Bereich kann zum Ausführen von SLA-Arbeitslasten mit niedriger Priorität angegeben werden. Während der Stromversorgungsreduzierung oder -unterbrechung kann der Bereich des Rechenzentrums (und somit die darin enthaltenen mehreren disaggregierten Systeme), der die SLA-Arbeitslasten mit niedriger Priorität ausführt, nach Ablauf des vorbestimmten Zeitraums abgeschaltet und von der Generatorleistung genommen werden. Zu diesem Zweck kann der gesamte Bereich abgeschaltet und gleichzeitig von der Generatorleistung genommen werden, oder bestimmte disaggregierte Systeme in dem Bereich können zuerst abgeschaltet werden, gefolgt von anderen Systemen, gefolgt von weiteren Systemen in einem systemischen Prozess gemäß einer SLA-Hierarchie der Arbeitslasten, die ausgeführt werden. Natürlich, wie hierin erwähnt, sind die „hohe Priorität“, „mittlere Priorität“ und „niedrige Priorität“ nur repräsentativ für einige Beispiele, um die Erfindung klar darzulegen. In einer tatsächlichen Umsetzung kann eine Vielfalt von Prioritätsebenen, SLA-Überlegungen oder anderen Faktoren gemäß den speziellen Anforderungen der Umsetzung berücksichtigt werden.
  • Diese Arbeitslasten/SLAs können viele Anwendungsfälle umfassen. Zum Beispiel kann das Rechenzentrum Arbeitslasten haben, die sich für den Fall einer Notfall-Wiederherstellung an einem alternativen Standort für ein primäres Rechenzentrum befinden, die für gewöhnlich nicht ausgeführt werden, sondern von einem ersten Rechenzentrum in einem aktualisierten Zustand gehalten werden, die aber eventuell zu Ausführung aufgefordert werden, wenn ein Systemausfall sich auf dem Standort des primären (ersten) Rechenzentrums auswirkt. Ein weiterer Anwendungsfall kann aus Arbeitslasten mit SLAs mit im Allgemeinen hoher Priorität bestehen, für die eine Ausnahme besteht, dass sie in einer derartigen Notfall-Wiederherstellung oder Stromausfallsituation nicht ausgeführt werden.
  • Wenn daher eine Inanspruchnahme der Gesamtleistung eines Rechenzentrums während des normalen Betriebs bei angenommen 10 Megawatt liegt, ist eventuell nur 1 Megawatt der Notstromerzeugung erforderlich, was letztendlich dem Betreiber des Rechenzentrums und dem Kunden Kosten erspart. Unter Verwendung der hierin bereitgestellten Algorithmen und Methodiken zum Erhalten des Leistungsgleichgewichts ist es möglich, dass einige SLAs mit hoher Priorität tatsächlich nicht die gesamte Leistung in Anspruch nehmen, wie sie es normalerweise würden, da sie entweder weniger Arbeit erledigen und/oder diese bei geringeren Taktgeschwindigkeiten und Spannungen ausgeführt werden kann, um die erforderliche Notstromversorgung zu erhalten.
  • Des Weiteren kann unter Verwendung dieser Modelle und Verfahren die Inanspruchnahme der Gesamtleistung auf Grundlage von Nutzungsmuster und Prognose für eine nächste Laufzeit geschätzt werden, um eine exaktere Menge an elektrischer Leistung vertraglich festzulegen, um die Arbeitslast-Anforderungen des Rechenzentrums 424 zu erfüllen.
  • Im Folgenden wird eine weitere Ausführungsform unter Bezugnahme auf 5 offenbart. 5 veranschaulicht ein Verfahren 500 zur Leistungsverwaltung in disaggregierten Datenverarbeitungssystemen gemäß einer Ausführungsform der vorliegenden Erfindung. Das Verfahren 500 kann gemäß der vorliegenden Erfindung in jeder der Umgebungen ausgeführt werden, die unter anderem in verschiedenen Ausführungsformen in 1 und 2 veranschaulicht wurden. Selbstverständlich können mehr oder weniger Operationen als diejenigen, die speziell in 5 beschrieben werden, im Verfahren 500 enthalten sein, wie einem Fachmann beim Lesen der vorliegenden Beschreibungen klar sein dürfte.
  • Jeder der Schritte des Verfahrens 500 kann von jeder geeigneten Komponente der Betriebsumgebung ausgeführt werden. Zum Beispiel kann das Verfahren 500 in verschiedenen Ausführungsformen teilweise oder ganz von einem Prozessor oder einer anderen Einheit mit einem oder mehreren darin integrierten Prozessoren ausgeführt werden. Der Prozessor, z.B. eine oder mehrere Verarbeitungsschaltungen, ein oder mehrere Chips und/oder ein oder mehrere Module, die in Hardware und/oder Software umgesetzt sind, und bevorzugt mindestens eine Hardware-Komponente haben, können in jeder Einheit zum Ausführen von einem oder mehreren Schritten des Verfahrens 500 verwendet werden. Veranschaulichende Prozessoren enthalten eine Zentraleinheit (CPU), eine anwendungsspezifische integrierte Schaltung (ASIC), ein feldprogrammierbares Gate-Array (FPGA) usw., Kombinationen davon oder jede andere geeignete Datenverarbeitungseinheit, die nach dem Stand der Technik bekannt ist, sie sind aber nicht darauf beschränkt.
  • Zu Beginn (Schritt 502) wird ein Nutzungsmuster für jede Arbeitslast unter Verwendung bekannter Verfahren modelliert, wie zum Beispiel standardmäßige Techniken zur Regressionsmodellierung (Schritt 504). Wie erörtert, wird eine kleine Abweichung der Leistungsauslastung in dem vertraglich festgelegten elektrischen Leistungsbereich beibehalten, wobei das Ziel darin besteht, den Wert Total_Available in die Nähe von 0 zu steuern (sodass die maximal bereitgestellte Stromversorgung in Anspruch genommen wird), unter allen Umständen sollte jedoch der Wert Total_Available kleiner als Total_Contracted multipliziert mit Contracted_Variance sein. In einer herkömmlichen servergebundenen Umgebung kann es jedoch wünschenswert sein, eine Leistungsreserve beizubehalten, die SLAs mit hoher Priorität schnell zugeordnet werden kann, wenn sich sprunghafte Anforderungen ergeben, aber in einer disaggregierten Umgebung kann eine neue Zuordnung von Ressourcen schnell innerhalb von Millisekunden angesteuert werden.
  • In der Fortsetzung wird in jedem Time_Window t (Schritt 506) ein Leistungsverwaltungsalgorithmus 550 wie folgt berechnet:
  • Für jede Arbeitslast i (Schritt 510) wird der Wert Workload Resource_Overage; berechnet und in der Arbeitslaststatistikdatenbank 254 gespeichert (Schritt 512), ausgedrückt als:
  • - Workload_Resource_Overage, = Workload_Current_Allocatedi - Workload Predicted_Demandi
  • Der Wert Workload_Resource_Overage wird zum Beispiel auf Grundlage einer SLA und/oder einer Auswirkungsrichtlinie und/oder einer Geschäftslogik sortiert (Schritt 514). Eine Bestimmung wird vorgenommen, ob die Arbeitslast i einen Wert Workload_Resource_Overage > 0 oder einen Wert Workload_Resource_Overage < 0 hat (Schritt 516). Wenn die Arbeitslast i einen Wert Workload_Resource_Overage > 0 hat, werden Ressourcen von allen Arbeitslasten mit einem positiven Wert Workload_Resource_Overagei entfernt, wobei ein Überschuss an Ressourcen entsteht (Schritt 518), und der Wert Total_Available wird berechnet (Schritt 520), ausgedrückt als:
    • Für jede Arbeitslast i gilt:
      • - Wenn der Wert Workload_Resource_Overagei > 0 ist, ist der Wert Workload_Current_Allocatedi = Workload_Current_Allocatedi - Resource_Unit
      • - Total_Available = Total_Available + Resource_Unit
  • Wenn die Arbeitslast i in Schritt 516 einen Wert Workload_Resource_Overage < 0 hat, werden Ressourcen zu Arbeitslasten zugeordnet, die einen negativen Wert Workload_Resource_Overage haben, wodurch sie einen größeren Bedarf an Ressourcen haben (Schritt 522), und der Wert Total_Available wird berechnet (Schritt 524), ausgedrückt als:
    • Für jede Arbeitslast i gilt:
      • - Wenn der Wert Workload_Resource_Overage, < 0, ist der Wert
      • - Workload_Current_Allocated, = Workload_Current_Allocatedi + Resource Unit
      • - Total_Available = Total_Available - Resource_Unit
  • In der Fortsetzung wird im Anschluss eine Bestimmung vorgenommen, ob der Wert Total_Available > 0 (oder >> 0) ist oder der Wert Total_Available < 0 ist (Schritt 526). Wenn in Schritt 526 der Wert Total_Available > 0 (oder >> 0) ist, sind die Ressourcen auf die vorhandene Arbeitslast oder zusätzliche Arbeitslasten, die ausgeführt werden können, auf Grundlage der Proportion der vorhandenen Zuordnung oder manuellen Eingabe in Bezug auf Arbeitslasterweiterung auf Grundlage der angegebenen Richtlinie und der SLA (Schritt 528) proportional verteilt, ausgedrückt als:
    • Für jede Arbeitslast i gilt:
      • - Workload_Allocated_Proportioni = Workload_Current Allocated, / Total_Workload_Allocated
      • - Workload_Current_Allocatedi += Workload_Allocated_Proportioni * Total_Available
      • - Total_Available = 0
  • Wenn in Schritt 526 der Wert Total_Available unter 0 liegt, werden Ressourcen aus dem Wert Workload_Current_Allocatedi proportional entfernt, oder die Arbeitslast kann ausgesetzt werden auf Grundlage der Proportion der vorhandenen Zuordnung oder manuellen Eingabe in Bezug auf Arbeitslasterweiterung in der SLA (Schritt 530), ausgedrückt als:
    • Für jede Arbeitslast i gilt:
      • - Workload_Allocated_Proportioni = Workload_Current Allocatedi / Total_Workload_Allocated
      • - Workload_Current_Allocatedi -= Workload_Allocated_Proportioni * Total Available
      • - Total_Available = 0
  • Für jede Arbeitslast i wird das in Schritt 504 referenzierte Modell iterativ unter Verwendung des Leistungsverwaltungsalgorithmus 550 aktualisiert.
  • In einigen Ausführungsformen kann die Prioritätenreihenfolge verwendet werden, um zwischen Arbeitslasten zusätzliche Leistung zuzuordnen, wenn der Wert Total_Available > 0 ist, wie in der Tabelle in 6 veranschaulicht. Tabelle 600 zeigt ein Beispiel einer Prioritätenreihenfolge, die verwendet werden kann, um die zusätzliche Leistung zwischen Arbeitslasten in der Prioritätenreihenfolge 1 bis 4 zuzuordnen, wenn die gesamte verfügbare Leistung über Null liegt. Tabelle 600 veranschaulicht, dass eine erste Priorität auf einer kritischen vorhersagbaren SLA beruhen kann, eine zweite Priorität auf einer sprunghaften, aber kritischen SLA beruhen kann, eine dritte Priorität auf einer opportunistischen und vorhersagbaren SLA beruhen kann und eine vierte Priorität auf einer sprunghaften opportunistischen SLA-Arbeitslast beruhen kann. Dieselbe Reihenfolge gilt umgekehrt für die Bestimmung von Priorität zum Entfernen von Leistung, wenn der Wert Total_Available unter 0 liegt (d.h. von Arbeitslastprioritäten 4 bis 1). Natürlich wird einem Fachmann klar sein, dass es weitere SLA-Prioritäten neben den beschriebenen geben kann, welche die oben genannte Reihenfolge beim Zuordnen von Leistung in derselben Proportion modifizieren würden.
  • In anderen Ausführungsformen stellt die vorliegende Erfindung neuartige Mechanismen zum Messen der Gesamtauslastung von ganzen Rechenzentren bereit, indem aggregierende Leistungsmessungen von granulären Verarbeitungskomponenten wie einem Prozessorkern (d.h. einem Abschnitt eines Prozessors) bis hin zu Racks bereitgestellt werden, die mehrere Prozessoren aufweisen, bin hin zu und einschließlich aller Komponenten (z.B. Beschleuniger, Netzwerkkomponenten, Arbeitsspeicher, Cachespeicher usw.) in dem ganzen Rechenzentrum selbst. Statt diese Messung aus einem „Maschinenraum“ im Rechenzentrum zu erfassen, stellt diese Methodik zur Energiemessung die einzigartige Gelegenheit für Einzelpersonen bereit, die entweder keinen Zugriff haben oder die ansonsten beiläufigere Benutzer (keine Administratoren auf höchster Ebene) sind, Kennzahlen in Bezug auf eine tatsächliche Auslastung der Komponenten in dem Rechenzentrum zu erhalten, um eine bessere Gesamteffizienz und einen besseren Durchsatz derartiger Komponenten zu erzielen, und es somit Benutzern zu ermöglichen, die Sammlung der von ihnen gemieteten Ressourcen und die Art und Weise ihrer Optimierung neben den Betreibern des Rechenzentrums zu prüfen, die Ressourcen innerhalb der verschiedenen SLA-Prioritäten mit Überversorgung bereitstellen können, und trotzdem die verschiedenen SLA-Bedingungen mit zusätzlichem Umsatz erfüllen können, der auf derselben Kostenplattform generiert wird. Diese Mechanismen stehen im Gegensatz zum Erhalten von Temperatur- oder anderen komplizierten und einschneidenden Messwerten, um die Auslastung von Ressourcen und/oder des Rechenzentrums zu bestimmen, wie im Stand der Technik angewendet.
  • Wenn zum Beispiel ein Benutzer, der nicht der Eigentümer des Rechenzentrums ist, über die Auslastung des Rechenzentrums Bescheid wissen muss (wie oben aufgrund einer Auslastung auf Leistungsgrundlage und nicht aufgrund eines auf Betriebssystemgrundlage beruhenden Zustands einer Prozessorauslastung definiert), können virtuelle Messfühler implementiert werden, die Leistungsregister von verarbeitenden Komponenten oder Abschnitten davon (Prozessorkerne usw.) über mehrere verschiedene Server lesen. Ein derartiger Messfühler kann als die kleinstmögliche Entität einer virtuellen Maschine (VM) integriert werden, die bei einem Anbieter von Cloud-Diensten definiert werden kann.
  • Dieser Messfühler hat zwei Aspekte. Ein Messfühler liest normalerweise das Register der Leistungsinanspruchnahme des Prozessors/Servers (das die in Anspruch genommene Leistung aller Kerne für diesen Server aggregiert) in bestimmten Zeiträumen oder Zeitintervallen (z.B. eine Minute). Darin können auch Messwerte der Energie des Prozessorpakets, der Energie der Kerne, der Energie des Arbeitsspeichers, der Energie der Beschleuniger (z.B. GPU-Kerne oder FPGAs, sofern verfügbar) und der Energie der Netzwerkkomponenten enthalten sein.
  • Im Messfühlermodus wird eine derartige kleine VM über einen langen Zeitraum ausgeführt (Woche, Monat oder ähnliches) und sammelt die folgenden Daten: die jemals in dem Prozessor beobachtete maximale Energie; die jemals in dem Prozessor beobachtete Mindestenergie; und die im Lauf der Zeit beobachtete durchschnittliche Energie, indem die Unterschiede der Energiemesswerte berechnet werden, die jedes Mal gelesen werden, wenn der Messfühler solche für den Prozessor-Chip/Server gelesen hat. Wenn ein Messfühler sich zufällig in einem Server befindet, der immer ausgelastet ist, liest er immer die maximale Energie ab. Desgleichen liest ein Messfühler, der sich zufällig in einem inaktiven Server befindet, immer die Mindestenergie ab.
  • Als Nächstes wird übergreifend über alle Messfühler, die in dem Rechenzentrum ausgeführt werden, eine globale Mindest- und eine globale Maximalenergie für diejenigen Messfühler berechnet, die in demselben Typ eines Servers zugeordnet sind (wobei der Servertyp auf verschiedene Spezifikationen verweist, die für Server möglich sind, die von einem Betreiber eines Cloud-Dienstes bereitgestellt werden - zum Beispiel kann der Server in einem anderen Typ andere Prozessortypen haben oder ältere Generationen von Prozessoren im Vergleich zu neueren Genrationen usw. verwenden). Für alle demselben Typ von Servern zugeordneten Messfühler wird ein globales Maximum und Minimum an einem vorbestimmten Zeitpunkt berechnet, um die Gesamtauslastung des Rechenzentrums von allen Messfühlern zu erhalten, die in Server desselben Typs integriert sind.
  • Vorausgesetzt, dass eine statistisch relevante Anzahl von Messfühlern vorhanden ist, die jeweils verschiedene Server im Rechenzentrum überwachen (wie im Folgenden erörtert), kann eine Gesamtauslastung dieses Rechenzentrums als Energie- oder Leistungsauslastung berechnet werden als: (Mittelwert aller Messfühler (oder im Lauf der Zeit von jedem erfasste durchschnittliche Energie) - aus allen abgetasteten Servern berechnete globale Mindestleistung) / (aus allen abgetasteten Servern berechnete globale Maximalleistung - aus allen abgetasteten Servern berechnete globale Mindestleistung).
  • Zum Hinzufügen neuer Messfühler zu einer vorhandenen Gruppe von Messfühlern führt jeder aus der vorhandenen Gruppe von Messfühlern einen „Leistungsvirus“ aus (eine Gruppe von Anweisungen, die speziell zum Erzeugen einer maximalen Inanspruchnahme von Energie durch die winzige VM ausgelegt sind, die in einem Server zugeordnet ist). Das Start/Stopp-Zeitmuster des Leistungsvirus ist ein Schlüssel, der durch den neuen Überwachungsmessfühler-Kandidaten der zugeordneten VM erkannt werden muss. Der Leistungsvirus in allen vorhandenen VM-Messefühlern wird dann an Zeitpunkten ausgeführt, die als solche erfasst werden können (z.B. 10 Sekunden aus, 20 Sekunden ein, 20 Sekunden aus, 5 Sekunden ein usw.), um eine Kette von Spitzen nach oben und unten von erfassbaren Energieänderungen durch den neuen Messfühlerkandidaten in einer neuen winzigen VM auszubilden. Dieses Muster bzw. dieser Schlüssel wiederholt sich über einen längeren Zeitraum (z.B. etwa Minuten bis zu einer Stunde), um eine genaue Erfassung durch den neuen Messfühlerkandidaten zu ermöglichen.
  • Der neue Messfühlerkandidat liest dann die Energie, die der Prozessor-Chip oder der Server verwenden, die er zu beobachten fähig ist. Wenn irgendeine Korrelation mit den Leistungsvirusmustern der Ein/Aus-Zeiträume besteht, die andere (vorhandene) Messfühler erzeugen, wird der neue Messfühlerkandidat freigegeben, und eine willkürlichen Wartezeit wird abgewartet, bevor eine neue VM zugeordnet wird, in der der Prozess erneut beginnt. Wenn desgleichen der neue Messfühlerkandidat kontinuierlich eine maximale Energieabgabe ohne Änderungen beobachtet, wird der neue Messfühlerkandidat freigegeben, und nach einer willkürlichen Wartezeit wird ein neuer Messfühler mit einer neuen VM-Zuordnung bereitgestellt. Damit stellt der Prozess zum Hinzufügen neuer Messfühler sicher, dass nur eindeutige Messfühler, die auf verschiedenen Servern ausgeführt werden, zugeordnet wurden, bevor alle von ihnen zum Abtasten der Inanspruchnahme von Energie/Leistung eingeschaltet werden.
  • Die Zuordnung neuer Messfühler wird fortgesetzt und kann über einige Tage oder länger erfolgen, bis eine statistisch relevante Anzahl von Messfühlern auf Grundlage der bekannten oder geschätzten Größe eines Rechenzentrum-Standorts, an dem ein Cloud-Dienst ausgeführt wird, erfolgreich zugeordnet worden ist. Diese Anzahl wird von Statistiken nach dem Stand der Technik abgeleitet. Des Weiteren sollte die gesamte Zeit, die das Rechenzentrum auf diese Weise überwacht wird, auch lang genug sein, um die meisten Änderungen aufgrund von Wochentagen zu beobachten oder andere Ereignisse zu maskieren (z.B. Feiertage, Ferienzeiten im Sommer oder Starten eines neuen Rechenzentrums im Vergleich zu einem etablierten), was sich auf die gemessene durchschnittliche Auslastung auswirken kann.
  • In anderen Ausführungsformen kann ein Unternehmen, das Hunderte von Instanzen von Servern ausführt, die sich aus Ressourcen in dem disaggregierten System zusammensetzen (wobei „zusammensetzen“ bedeutet, dass ein System mittels Verkabelung zusammengestellt wird, in diesem Beispiel mittels optischen Schaltern, die Lichtwellenleiter verbinden, um Ende-zu-Ende-Verbindungen zwischen Subsystemen oder Ressourcen-Pools zu bilden), auf der vom Benutzer gemessenen Seite ebenfalls direkten Zugriff zum Ablesen der Inanspruchnahme von Energie von allen zugeordneten Servern haben und somit ebenfalls ein Arbeitslast-Leistungsvermögen und die Effizienz ihrer Verwendung auswerten. Dies kann für Benutzer von Vorteil sein, die möglicherweise zu bestimmten Zeiten Kosten reduzieren können, was von dem Muster der übergreifenden Inanspruchnahme von Energie über sämtliche ihrer zugeordneten Ressourcen und den verwendeten Subsystemen/Ressourcentypen und den Zeitpunkten usw. abhängt. Diese Funktionalität ist direkt auf die Verwendung von disaggregierten Systemen zurückzuführen. Zu beachten ist wiederum, dass diese Disaggregation von dem bedarfsorientierten Modell unabhängig ist, das im Allgemeinen durch Cloud Computing bereitgestellt wird. In dem bedarfsorientierten Modell können Benutzer mehr Ressourcen (VMs) bis zu einem Grenzwert der vorgefertigten physischen Server-Boxen erwerben, die letztlich eine Anzahl von VMs der Benutzer hosten. In der disaggregierten Auslegung werden die Ressourcen pro Benutzer nach Bedarf und in einem elastischeren Format zugeordnet, da die Ressourcen-Pools sehr groß sind und somit ein Hinzufügen von Prozessoren oder anderen Komponenten (z.B. eine Aufstockung oder ein SMP mit mehreren Sockets) nach Bedarf ohne Einschränkung dessen erfolgen kann, ob sich die Ressourcen physisch in derselben Server-„Box“ befinden.
  • Im Gegensatz dazu misst der Eigentümer oder Betreiber des Rechenzentrums die Leistungsinanspruchnahme für alle zusammengestellten Server und die fraglichen Ressourcen (z.B. Prozessoren, Arbeitsspeicher, Beschleuniger, Speicher, Kommunikationsvernetzung, Cachespeicher in jedem Prozessor und irgendwelche/alle funktionalen Subsysteme von Interesse). Ein derartiger Zugriff zum Messen der Leistungsinanspruchnahme für alle Subsysteme kann durch den Hypervisor oder das Steuernetzwerk erleichtert werden, auf das die Betreiber der Rechenzentren als Teil der Gesamtverwaltung des Rechenzentrums Zugriff haben.
  • Die aggregierten Energiemesswerte pro Zeitraum geben den Betreibern einen genauen Verwendungszustand und ein Betriebsprofil für alle Arbeitslasten an, die in dem Rechenzentrum ausgeführt werden. Dies kann unter Angabe von Prozessoren erfolgen, die Energie in Anspruch nehmen. Wenn Prozessoren zum Beispiel konstant unter einem niedrigen Auslastungsprozentsatz ausgeführt wurden, kann der Betreiber weitere zuzuordnende Arbeitslasten hinzufügen oder die Anzahl von Prozessoren in den Prozessor-Pools reduzieren, die für das Rechenzentrum verwendet werden usw.
  • Diese Methodik wird auch als Berücksichtigungshierarchie angewendet. Zum Beispiel können einige der „Bereiche“ in dem Rechenzentrum ausgelasteter sein als andere. Diese Bereiche sind Gebiete, auf denen Ressourcen-Pools in der dynamischen Server-Zusammensetzung gemeinsam genutzt werden können. Andere Bereiche werden möglicherweise weniger ausgelastet, daher kann ein Ausgleichen von Energie und Arbeitslasten zwischen Bereichen eine bessere Auslastung bieten und auf Dauer eine bessere Effizienz bereitstellen. Dies kann auch anhand von Inanspruchnahme von Arbeitsspeicherenergie im Vergleich mit Cache oder im Vergleich mit Beschleunigern (GPUs, FPGAs usw.) sichtbar sein, die alle zu einer besseren Entscheidung beim Abgleichen von Ressourcen in Bereichen und/oder dem gesamten Rechenzentrum beitragen, das gemessen wird.
  • Es ist wichtig, zu beachten, dass diese Mechanismen zusätzlich zu den erörterten Verfahren und Plänen bereitgestellt werden, die ein Benutzer ausführen kann, ohne Zugriff als Rechenzentrumsbetreiber zu haben (wobei der Benutzer auf die Inanspruchnahme von Energie über Messfühler/Leistungsvirus-VMs usw. Zugriff hat). Als Rechenzentrumsbetreiber besteht kein Bedarf, Messfühler oder Leistungsvirus-VMs zu verwenden, da der Betreiber jede Inanspruchnahme von Energie an jedem Ort und jedem Subsystem/jeder Funktionseinheit direkt messen kann, und ein derartiger Betreiber den Ort und die Kennungen aller zugehörigen Ressourcen kennt und direkt adressieren kann, ohne irgendwelche statistisch relevanten Abtastungen vorzunehmen, wie es bei einem Nichtbetreiber der Fall ist.
  • Bei der vorliegenden Erfindung kann es sich um eine Vorrichtung, ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) enthalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen enthalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination davon handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehört Folgendes: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. FlashSpeicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination davon. Ein durch einen Computer lesbares Speichermedium, wie hierin verwendet, soll nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. durch ein Glasfaserkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Veranschaulichungen von Ablaufplänen und/oder Blockschaltbildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Veranschaulichungen von Ablaufplänen und/oder der Blockschaltbilder sowie Kombinationen von Blöcken in den Veranschaulichungen von Ablaufplänen und/oder den Blockschaltbildern durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder den Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zum Umsetzen der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt auftreten. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen parallel ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufplandarstellung sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die angegebenen Funktionen oder Handlungen durchführen oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.

Claims (18)

  1. Verfahren zur Leistungsverwaltung in einem disaggregierten Datenverarbeitungssystem durch eine Prozessoreinheit, aufweisend: ein Zuordnen einer Gruppe von ursprünglichen elektrischen Leistungspegeln zu einer Gruppe von Prozessorkernen in dem disaggregierten Datenverarbeitungssystem gemäß einer vorhergesagten gewünschten Arbeitslast, wobei die Gruppe von ursprünglichen Leistungspegeln sich zu einem ursprünglichen kollektiven vertraglich festgelegten Leistungspegel aggregiert; und ein dynamisches Zuordnen von elektrischer Leistung zu jeweiligen Prozessorkernen in der Gruppe von Prozessorkernen, um eine Kapazität zum Ausführen einer kollektiven geforderten Arbeitslast zu erzeugen, wobei die elektrische Leistung für die Gruppe von Prozessorkernen bis zu einem annähernd konstanten elektrischen Leistungspegel innerhalb eines Schwellenwerts des ursprünglichen kollektiven vertraglich festgelegten elektrischen Leistungspegels aufrechterhalten wird.
  2. Verfahren nach Anspruch 1, wobei sich die gewünschte Arbeitslast aus jeweiligen Arbeitslasten zusammensetzt, die den jeweiligen Prozessorkernen zugehörig sind, wobei die den jeweiligen Prozessorkernen zugehörigen jeweiligen Arbeitslasten durch eine Mehrzahl von Tenants angefordert werden.
  3. Verfahren nach Anspruch 2, ferner enthaltend ein Überwachen von statistischen Informationen auf Grundlage eines den jeweiligen Prozessorkernen zugehörigen Arbeitslast-Durchsatzes zum Vorhersagen der gewünschten Arbeitslast.
  4. Verfahren nach Anspruch 2 oder 3, wobei eine Gruppe der Mehrzahl von Tenants Service Level Agreements (SLAs) (Dienstgütevereinbarungen) besitzt, und die elektrische Leistung den jeweiligen Prozessorkernen den SLAs entsprechend zugeordnet wird.
  5. Verfahren nach Anspruch 4, ferner enthaltend ein dynamisches Zuordnen der elektrischen Leistung gemäß einer Prioritätsebene der SLAs, wobei jeweilige SLAs eine höhere Priorität als andere SLAs haben.
  6. Verfahren nach einem der Ansprüche 2 bis 5, ferner enthaltend ein Verwenden eines Leistungsverwaltungsalgorithmus, um in einem Zeitfenster ein Leistungsmodell für jede der jeweiligen Arbeitslasten zu berechnen, die den jeweiligen Prozessorkernen zugehörig sind.
  7. Verfahren nach Anspruch 6, ferner enthaltend ein dynamisches Verteilen der elektrischen Leistung von einer der jeweiligen Arbeitslasten auf eine andere der jeweiligen Arbeitslasten unter Verwendung des Leistungsverwaltungsalgorithmus, wobei die elektrische Leistung dynamisch verteilt wird, um den annähernd konstanten elektrischen Leistungspegel innerhalb des Schwellenwerts des ursprünglichen kollektiven vertraglich festgelegten elektrischen Leistungspegels aufrechtzuerhalten.
  8. Verfahren nach Anspruch 7, ferner enthaltend ein iteratives Aktualisieren des Leistungsmodells unter Verwendung des Leistungsverwaltungsalgorithmus gemäß jeder jeweiligen Arbeitslast und im Anschluss an ein Ende des Zeitfensters.
  9. System zur Leistungsverwaltung in einem disaggregierten Datenverarbeitungssystem, wobei das System aufweist: mindestens eine Prozessoreinheit, wobei die mindestens eine Prozessoreinheit: eine Gruppe von ursprünglichen elektrischen Leistungspegeln zu einer Gruppe von Prozessorkernen in dem disaggregierten Datenverarbeitungssystem gemäß einer vorhergesagten gewünschten Arbeitslast zuordnet, wobei die Gruppe von ursprünglichen Leistungspegeln sich zu einem ursprünglichen kollektiven vertraglich festgelegten Leistungspegel aggregiert; und elektrische Leistung zu jeweiligen Prozessorkernen in der Gruppe von Prozessorkernen dynamisch zuordnet, um eine Kapazität zum Ausführen einer kollektiven geforderten Arbeitslast zu erzeugen, wobei die elektrische Leistung für die Gruppe von Prozessorkernen bis zu einem annähernd konstanten elektrischen Leistungspegel innerhalb eines Schwellenwerts des ursprünglichen kollektiven vertraglich festgelegten elektrischen Leistungspegels aufrechterhalten wird.
  10. System nach Anspruch 9, wobei sich die gewünschte Arbeitslast aus jeweiligen Arbeitslasten zusammensetzt, die den jeweiligen Prozessorkernen zugehörig sind, wobei die den jeweiligen Prozessorkernen zugehörigen jeweiligen Arbeitslasten durch eine Mehrzahl von Tenants angefordert werden.
  11. System nach Anspruch 10, wobei die mindestens eine Prozessoreinheit statistische Informationen auf Grundlage eines den jeweiligen Prozessorkernen zugehörigen Arbeitslast-Durchsatzes zum Vorhersagen der gewünschten Arbeitslast überwacht.
  12. System nach Anspruch 10 oder 11, wobei eine Gruppe der Mehrzahl von Tenants Service Level Agreements (SLAs) besitzt, und die elektrische Leistung den jeweiligen Prozessorkernen den SLAs entsprechend zugeordnet wird.
  13. System nach Anspruch 12, wobei die mindestens eine Prozessoreinheit die elektrische Leistung gemäß einer Prioritätsebene der SLAs dynamisch zuordnet, wobei jeweilige SLAs eine höhere Priorität als andere SLAs haben.
  14. System nach einem der Ansprüche 10 bis 13, wobei die mindestens eine Prozessoreinheit einen Leistungsverwaltungsalgorithmus verwendet, um in einem Zeitfenster ein Leistungsmodell für jede der jeweiligen Arbeitslasten zu berechnen, die den jeweiligen Prozessorkernen zugehörig sind.
  15. System nach Anspruch 14, wobei die mindestens eine Prozessoreinheit die elektrische Leistung von einer der jeweiligen Arbeitslasten auf eine andere der jeweiligen Arbeitslasten unter Verwendung des Leistungsverwaltungsalgorithmus dynamisch verteilt, wobei die elektrische Leistung dynamisch verteilt wird, um den annähernd konstanten elektrischen Leistungspegel innerhalb des Schwellenwerts des ursprünglichen kollektiven vertraglich festgelegten elektrischen Leistungspegels aufrechtzuerhalten.
  16. System nach Anspruch 15, wobei die mindestens eine Prozessoreinheit das Leistungsmodell unter Verwendung des Leistungsverwaltungsalgorithmus gemäß jeder jeweiligen Arbeitslast und im Anschluss an ein Ende des Zeitfensters iterativ aktualisiert.
  17. Computerprogrammprodukt zur Leistungsverwaltung in einem disaggregierten Datenverarbeitungssystem, wobei das Computerprogrammprodukt aufweist: ein durch einen Computer lesbares Speichermedium, das von einer Verarbeitungsschaltung lesbar ist und Anweisungen zur Ausführung durch die Verarbeitungsschaltung speichert, um ein Verfahren nach einem der Ansprüche 1 bis 8 auszuführen.
  18. Computerprogramm, das auf einem durch einen Computer lesbaren Medium gespeichert und in den internen Arbeitsspeicher eines digitalen Computers ladbar ist, das Softwarecode-Abschnitte aufweist, um das Verfahren nach einem der Ansprüche 1 bis 8 auszuführen, wenn das Programm auf einem Computer ausgeführt wird.
DE112017005131.2T 2016-10-10 2017-10-05 Leistungsverwaltung in disaggregierten datenverarbeitungsystemen Pending DE112017005131T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/289,272 2016-10-10
US15/289,272 US10401940B2 (en) 2016-10-10 2016-10-10 Power management in disaggregated computing systems
PCT/IB2017/056154 WO2018069797A1 (en) 2016-10-10 2017-10-05 Power management in disaggregated computing systems

Publications (1)

Publication Number Publication Date
DE112017005131T5 true DE112017005131T5 (de) 2019-08-01

Family

ID=61828934

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017005131.2T Pending DE112017005131T5 (de) 2016-10-10 2017-10-05 Leistungsverwaltung in disaggregierten datenverarbeitungsystemen

Country Status (6)

Country Link
US (1) US10401940B2 (de)
JP (1) JP6850344B2 (de)
CN (1) CN109791532B (de)
DE (1) DE112017005131T5 (de)
GB (1) GB2570075A (de)
WO (1) WO2018069797A1 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10671147B2 (en) * 2017-12-18 2020-06-02 Facebook, Inc. Dynamic power management for artificial intelligence hardware accelerators
WO2019139632A1 (en) 2018-01-11 2019-07-18 Lancium Llc Method and system for dynamic power delivery to a flexible datacenter using unutilized energy sources
US11031787B2 (en) 2018-09-14 2021-06-08 Lancium Llc System of critical datacenters and behind-the-meter flexible datacenters
US10976801B2 (en) * 2018-09-20 2021-04-13 Intel Corporation System, apparatus and method for power budget distribution for a plurality of virtual machines to execute on a processor
CN110955513B (zh) * 2018-09-27 2023-04-25 阿里云计算有限公司 一种服务资源的调度方法及系统
US10956230B2 (en) * 2018-10-01 2021-03-23 Vmware, Inc. Workload placement with forecast
CN109408230B (zh) * 2018-10-10 2021-07-20 中国科学院计算技术研究所 基于能耗优化的Docker容器部署方法及系统
US11128165B2 (en) 2019-02-25 2021-09-21 Lancium Llc Behind-the-meter charging station with availability notification
WO2020227811A1 (en) 2019-05-15 2020-11-19 Upstream Data Inc. Portable blockchain mining system and methods of use
US10963029B1 (en) * 2019-06-26 2021-03-30 Amazon Technologies, Inc. Power virus generation
US11868106B2 (en) 2019-08-01 2024-01-09 Lancium Llc Granular power ramping
US11397999B2 (en) 2019-08-01 2022-07-26 Lancium Llc Modifying computing system operations based on cost and power conditions
US10608433B1 (en) 2019-10-28 2020-03-31 Lancium Llc Methods and systems for adjusting power consumption based on a fixed-duration power option agreement
US11042948B1 (en) 2020-02-27 2021-06-22 Lancium Llc Computing component arrangement based on ramping capabilities
CN111414070B (zh) * 2020-03-06 2021-10-15 苏州浪潮智能科技有限公司 一种机箱功耗管理方法、系统及电子设备和存储介质
US11593177B2 (en) * 2020-03-18 2023-02-28 Vmware, Inc. Cost-savings using ephemeral hosts in infrastructure as a service environments based on health score
US11650654B2 (en) * 2020-04-14 2023-05-16 Microsoft Technology Licensing, Llc Managing power resources for pools of virtual machines
CN111784104A (zh) * 2020-05-25 2020-10-16 佛山市华全电气照明有限公司 一种智慧多功能杆上设备的用能动态分配管理方法及系统
CN114816025A (zh) * 2021-01-19 2022-07-29 联想企业解决方案(新加坡)有限公司 功率管理方法和系统
US20220318056A1 (en) * 2021-03-30 2022-10-06 Advanced Micro Devices, Inc. Dynamic system power load management
US11733902B2 (en) 2021-04-30 2023-08-22 International Business Machines Corporation Integrating and increasing performance of disaggregated memory in operating systems

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7134029B2 (en) 2003-11-06 2006-11-07 International Business Machines Corporation Computer-component power-consumption monitoring and control
US7379791B2 (en) 2004-08-03 2008-05-27 Uscl Corporation Integrated metrology systems and information and control apparatus for interaction with integrated metrology systems
US7308591B2 (en) 2004-12-16 2007-12-11 International Business Machines Corporation Power management of multi-processor servers
US7681054B2 (en) * 2006-10-03 2010-03-16 International Business Machines Corporation Processing performance improvement using activity factor headroom
US10339227B1 (en) 2007-06-08 2019-07-02 Google Llc Data center design
US7979729B2 (en) 2007-11-29 2011-07-12 International Business Machines Corporation Method for equalizing performance of computing components
US8001403B2 (en) * 2008-03-14 2011-08-16 Microsoft Corporation Data center power management utilizing a power policy and a load factor
US8301742B2 (en) 2008-04-07 2012-10-30 International Business Machines Corporation Systems and methods for coordinated management of power usage and runtime performance in performance-managed computing environments
CN102099790B (zh) * 2008-10-30 2012-12-19 株式会社日立制作所 信息处理系统的运用管理装置
US8402290B2 (en) * 2008-10-31 2013-03-19 Intel Corporation Power management for multiple processor cores
US9778718B2 (en) 2009-02-13 2017-10-03 Schneider Electric It Corporation Power supply and data center control
US8904394B2 (en) 2009-06-04 2014-12-02 International Business Machines Corporation System and method for controlling heat dissipation through service level agreement analysis by modifying scheduled processing jobs
US8478451B2 (en) * 2009-12-14 2013-07-02 Intel Corporation Method and apparatus for dynamically allocating power in a data center
US8627123B2 (en) * 2010-03-25 2014-01-07 Microsoft Corporation Managing power provisioning in distributed computing
US8489904B2 (en) * 2010-03-25 2013-07-16 International Business Machines Corporation Allocating computing system power levels responsive to service level agreements
US8832476B2 (en) 2010-09-28 2014-09-09 Google Inc. Power allotment distribution in a data center
US8645733B2 (en) 2011-05-13 2014-02-04 Microsoft Corporation Virtualized application power budgeting
US8843933B1 (en) 2011-05-25 2014-09-23 Vmware, Inc. System and method for managing a virtualized computing environment
US9933843B2 (en) 2011-12-22 2018-04-03 Schneider Electric It Corporation Systems and methods for reducing energy storage requirements in a data center
KR20130101693A (ko) 2012-03-06 2013-09-16 삼성전자주식회사 이종의 운영체제를 사용하는 가상화 시스템의 전력 관리 방법 및 장치
US9524012B2 (en) * 2012-10-05 2016-12-20 Dell Products L.P. Power system utilizing processor core performance state control
US9298247B2 (en) 2012-11-27 2016-03-29 International Business Machines Corporation Distributed power budgeting
US20140222225A1 (en) * 2013-02-06 2014-08-07 Gregory C. Rouse Energy management system and method
WO2014147700A1 (ja) 2013-03-18 2014-09-25 富士通株式会社 情報処理装置、情報処理装置の停止方法、及び情報処理装置の停止プログラム
US9557792B1 (en) 2013-05-31 2017-01-31 Amazon Technologies, Inc. Datacenter power management optimizations
KR20150001102A (ko) 2013-06-26 2015-01-06 한국전자통신연구원 가상 머신을 이용한 서버 전력 예측 장치 및 그 방법
US9477279B1 (en) 2014-06-02 2016-10-25 Datadirect Networks, Inc. Data storage system with active power management and method for monitoring and dynamical control of power sharing between devices in data storage system
US9921633B2 (en) * 2014-08-22 2018-03-20 Intel Corporation Power aware job scheduler and manager for a data processing system
US9645629B2 (en) 2014-09-25 2017-05-09 Microsoft Technology Licensing, Llc Providing energy consumption analytics of cloud based service
WO2016069038A1 (en) * 2014-10-30 2016-05-06 Hewlett Packard Enterprise Development Lp Policy based workload scaler
CN104715340A (zh) * 2015-03-30 2015-06-17 重庆工商职业学院 一种基于绿色能源的云计算能源管理系统及方法
US9971391B2 (en) 2015-12-23 2018-05-15 Intel Corporation Method to assess energy efficiency of HPC system operated with and without power constraints
US10237335B2 (en) 2016-06-15 2019-03-19 Advanced Micro Devices, Inc. Managing cluster-level performance variability without a centralized controller

Also Published As

Publication number Publication date
US20180101220A1 (en) 2018-04-12
JP2020502611A (ja) 2020-01-23
CN109791532B (zh) 2023-04-25
GB201906513D0 (en) 2019-06-26
GB2570075A (en) 2019-07-10
JP6850344B2 (ja) 2021-03-31
CN109791532A (zh) 2019-05-21
US10401940B2 (en) 2019-09-03
WO2018069797A1 (en) 2018-04-19

Similar Documents

Publication Publication Date Title
DE112017005131T5 (de) Leistungsverwaltung in disaggregierten datenverarbeitungsystemen
US10884821B2 (en) Measuring utilization of resources in datacenters
US10838482B2 (en) SLA-based power management in disaggregated computing systems
US10819599B2 (en) Energy consumption as a measure of utilization and work characterization in a system
DE102015105884B4 (de) Rechenknoten und Verfahren zur Migration einer virtuellen Maschine, Rechenzentrummanager zur Migration virtueller Maschinen, Maschinenlesbares Speichermedium und Rechenvorrichtungen
US10545560B2 (en) Power management and utilization detection of computing components
US20180101215A1 (en) Sla-based backup power management during utility power interruption in disaggregated datacenters
Lucas-Simarro et al. Scheduling strategies for optimal service deployment across multiple clouds
DE60221019T2 (de) Verwaltung von serverbetriebsmitteln für hostanwendungen
DE112011101633B4 (de) Virtualisierung und dynamische Ressourcenzuweisung berücksichtigendes Neuordnen von Speicherebenen
DE112011100143B4 (de) Optimieren der elektrischen Leistungsaufnahme in einem Rechenzentrum
DE102014113232A1 (de) Live-Migration virtualisierter Systeme
DE602004001904T2 (de) Verfahren und System zur Zuweisung von Ressourcen eines Computers
DE112020002189B4 (de) Container-basierte anwendungen
DE112021006130T5 (de) Automatisierte orchestrierung von containern durch bewerten von mikrodiensten
DE112011100094T5 (de) Verfahren und System zum Abstrahieren eines auf nichtfunktionalen Anforderungen beruhenden Einsatzes von virtuellen Maschinen
DE112018005268T5 (de) Priorisieren von anwendungen für eine diagonale skalierung in einer verteilten datenverarbeitungsumgebung
Wang et al. Research on virtual machine consolidation strategy based on combined prediction and energy-aware in cloud computing platform
DE112017000302T5 (de) Hierarchisches autonomes Kapazitätsmanagement
Breitgand et al. An adaptive utilization accelerator for virtualized environments
Rolia et al. Resource access management for a utility hosting enterprise applications
Alam et al. An NBDMMM algorithm based framework for allocation of resources in cloud
Dong Agent-based cloud simulation model for resource management
DE112021006333T5 (de) Optimieren von platzierungen von verarbeitungsprozessen auf mehreren plattformen als service auf grundlage von kosten und service levels
DE102013207603B4 (de) Effiziente Ausführung von Jobs in einem gemeinsamen Pool von Ressourcen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence