DE102013206172A1 - Beheben von Ressourcenüberlastung - Google Patents

Beheben von Ressourcenüberlastung Download PDF

Info

Publication number
DE102013206172A1
DE102013206172A1 DE102013206172A DE102013206172A DE102013206172A1 DE 102013206172 A1 DE102013206172 A1 DE 102013206172A1 DE 102013206172 A DE102013206172 A DE 102013206172A DE 102013206172 A DE102013206172 A DE 102013206172A DE 102013206172 A1 DE102013206172 A1 DE 102013206172A1
Authority
DE
Germany
Prior art keywords
virtual machine
hypervisor
virtual machines
resource
congestion
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.)
Ceased
Application number
DE102013206172A
Other languages
English (en)
Inventor
Salman A. Baset
Rafah A. Hosn
Ruchi Mahindru
HariGovind V. Ramasamy
Soumitra Sarkar
Chunqiang Tang
Norbert G. Vogl
Long Wang
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 DE102013206172A1 publication Critical patent/DE102013206172A1/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration

Abstract

Ein Verfahren, eine Vorrichtung und ein Herstellungsartikel zum Beheben von Überlastung in einer überbelegten Datenverarbeitungsumgebung. Das Verfahren beinhaltet Messen der Ressourcennutzung jeder der vielen virtuellen Maschinen in jedem von mindestens einem Hypervisor in einer Datenverarbeitungsumgebung, bei Erkennung einer Ressourcenüberlastung in einem von mindestens einem Hypervisor Ermitteln von mindestens einer Operation, die für mindestens eine der vielen virtuellen Maschinen im Hypervisor vorzunehmen ist, um die Ressourcenüberlastung zu beheben und dabei die Werte der im Betrieb befindlichen virtuellen Maschinen zu steigern, und Senden eines Befehls an den Hypervisor, um die mindestens eine Operation auszugeben.

Description

  • Gebiet der Erfindung
  • Ausführungsformen der Erfindung betreffen im Allgemeinen die Informationstechnologie und insbesondere das Verwalten virtueller Maschinen.
  • Hintergrund
  • Eine Ressourcen-Überbelegung in Datenverarbeitungs-Cloud-Systemen wird in Informationstechnologie(IT)-Diensten üblich. Zum Rosten separater Dienste in den Cloud-Systemen werden häufig virtuelle Maschinen (VM) provisioniert. Herkömmlicherweise werden diese VMs mit allen ihren zugeordneten Ressourcen provisioniert (z. B. Speicher und Zentraleinheit (CPU)), die bei den physischen Ressourcen garantiert sind. Eine Ressourcenzuordnung von mehr als der Menge, die durch die physischen Ressourcen garantiert werden kann, d. h. Ressourcen-Überbelegung, ermöglicht es, dass mehr VMs auf einem Hypervisor gehostet werden können. Da VMs häufig nicht die gesamten zugeordneten Ressourcen verbrauchen, kann eine Überbelegung die Ressourcen-Auslastung erhöhen und im Ergebnis die Kosten der Dienstebereitstellung verringern.
  • Jedoch bringt eine Überbelegung das Risiko der Ressourcenüberlastung im Hypervisor mit sich, bevor die gehosteten VMs die zugeordneten Ressourcen aufbrauchen, und die Ressourcenüberlastung, besonders die Speicherüberlastung, verschlechtert die Leistungsfähigkeit des Dienstes in hohem Maße.
  • Bestehende Ansätze, die den unerwünschten Folgen der Überbelegung abzuhelfen versuchen, sind unter anderem reine Migrationslösungen. Jedoch sind reine Migrationslösungen nicht ausreichend, um eine Überlastung in überbelegten Systemen zu beheben (bei diesen Systemen besteht die Möglichkeit, dass eine große Anzahl von Hypervisoren gleichzeitig nahe an der Überlastung ist), und der Migrationsaufwand kann in einem dichten überbelegten Hypervisor-Cluster groß sein.
  • Entsprechend besteht eine Notwendigkeit, einer Überlastung in überbelegten Datenverarbeitungsumgebungen abzuhelfen.
  • Kurzdarstellung
  • Nach einem Aspekt der vorliegenden Erfindung werden Techniken zum Beheben einer Ressourcenüberlastung bereitgestellt. Ein beispielhaftes computerimplementiertes Verfahren zum Beheben einer Überlastung in einer überbelegten Datenverarbeitungsumgebung kann Schritte des Messens der Ressourcen-Nutzung jeder der vielen virtuellen Maschinen in jedem von mindestens einem Hypervisor in einer Datenverarbeitungsumgebung, bei Erkennung einer Ressourcenüberlastung in einem von mindestens einem Hypervisor des Ermittelns von mindestens einer Operation, die für mindestens eine der vielen virtuellen Maschinen im Hypervisor vorzunehmen ist, um die Ressourcenüberlastung zu beheben und dabei die Werte der im Betrieb befindlichen virtuellen Maschinen zu steigern, und des Sendens eines Befehls an den Hypervisor, um die mindestens eine Operation auszugeben, beinhalten.
  • Nach einem weiteren Aspekt der Erfindung werden Techniken für ein automatisiertes Verfahren zur Überlastungsbehebung für eine virtualisierte Umgebung bereitgestellt. Ein beispielhaftes computerimplementiertes Verfahren beinhaltet die Schritte des Wiederherstellens aus einer Situation überlasteter Systemressourcen durch Auswählen einer Teilmenge der virtuellen Maschinen zum Migrieren und einer Teilmenge der virtuellen Maschinen zum Stilllegen und durch periodisches Auswählen einer Teilmenge der virtuellen Maschinen zum Migrieren und einer Teilmenge der virtuellen Maschinen zum Wiederinbetriebnehmen aus einer Vielzahl virtueller Maschinen im System, um die Anzahl der in Betrieb befindlichen virtuellen Maschinen und den Arbeitswert, der von den in Betrieb befindlichen virtuellen Maschinen erreicht wird, zu steigern.
  • Ein weiterer Aspekt der Erfindung oder ihrer Elemente kann in Form eines Herstellungsartikels realisiert werden, der computerlesbare Anweisungen materiell verkörpert, die implementiert bewirken, dass ein Computer eine Vielzahl von Verfahrensschritten ausführt, wie hier beschrieben. Ferner kann ein weiterer Aspekt der Erfindung oder ihrer Elemente in Form einer Vorrichtung mit einem Speicher und mindestens einem Prozessor realisiert werden, der mit dem Speicher gekoppelt und betriebsfähig ist, um die genannten Verfahrensschritte durchzuführen. Noch ein weiterer Aspekt der Erfindung oder ihrer Elemente kann in Form von Mitteln zum Durchführen der hier beschriebenen Verfahrensschritte oder Elementen davon realisiert werden; die Mittel können unter anderem (i) (ein) Hardware-Modul(e), (ii) (ein) Software-Modul(e) oder (iii) eine Kombination von Hardware- und Software-Modulen sein; jedes von (i) bis (iii) implementiert die hier dargelegten spezifischen Techniken, und die Software-Module werden in einem materiellen computerlesbaren Speichermedium (oder mehreren solcher Medien) gespeichert.
  • Diese und andere Objekte, Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden detaillierten Beschreibung ihrer veranschaulichenden Ausführungsformen ersichtlich, die in Verbindung mit den beigefügten Zeichnungen zu lesen ist.
  • Kurzbeschreibung der Zeichnungen
  • 1 ist ein Schaubild, das eine Beispielarchitektur des Systems zum Beheben von Überlastung in einer Cloud gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 2 ist ein Schaubild, das eine Implementierungsarchitektur des Systems zum Beheben von Überlastung in einer Ziel-Cloud gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 3 ist ein Schaubild, das einen Auswahlalgorithmus für die Stilllegung von VMs gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 4 ist ein Schaubild, das einen Auswahlalgorithmus für die Wiederinbetriebnahme von VMs gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 5 ist ein Ablaufplan, der Verfahren zum Beheben von Überlastung in einer überbelegten Datenverarbeitungseinheit gemäß einer Ausführungsform der Erfindung veranschaulicht;
  • 6 ist ein Systemschaubild eines beispielhaften Computersystems, in dem mindestens eine Ausführungsform der Erfindung implementiert werden kann.
  • Detaillierte Beschreibung
  • Wie hier beschrieben, beinhaltet ein Aspekt der vorliegenden Erfindung Beheben von Überlastung in überbelegten Datenverarbeitungsumgebungen. Mindestens eine Ausführungsform der Erfindung beinhaltet Bereitstellen eines Mechanismus zum Beheben von Überlastung, ohne vorauszusetzen, dass immer Ressourcen für die Migration verfügbar sind. Wie hier im Einzelnen erläutert, wird der Begriff eines Arbeitswerts verwendet, um die Wichtigkeit von VMs zu vergleichen, und das Problem der Überlastungsbehebung wird als Variante des Removable Online Multi-Knapsack Problems (ROMKP) (lösbares multiples Online-Rucksackproblem) formuliert. Ein Aspekt der Erfindung enthält einen Algorithmus zum Lösen dieses Optimierungsproblems.
  • Eine Ausführungsform der Erfindung kann beispielsweise in einer großen kommerziellen Cloud-Umgebung implementiert werden. Wenn keine ressourcenverfügbaren Hypervisoren vorhanden sind, beinhaltet mindestens eine Ausführungsform der Erfindung zeitweiliges Aussondern bestimmter Rechenvorgänge, d. h. Stilllegen einer oder mehrerer VMs, die als weniger wichtig ermittelt werden, um die laufende Überlastung zu beheben, so dass die übrigen VMs normal laufen. Nachdem eine Menge von VMs ihre Aufgaben abschließt und normal beendet oder Ressourcen freigibt, werden Ressourcen verfügbar und stillgelegte VMs werden wieder in Betrieb genommen, um ihre Aufgaben abzuschließen. Entsprechend beinhaltet ein Aspekt der Erfindung, wie hier im Einzelnen erläutert, Ermitteln, welche Operationen (Migration, Stilllegung oder Wiederinbetriebnahme) für welche VMs durchzuführen sind, um die Ressourcenüberlastung in überbelegten Datenverarbeitungssystemen, die unter Umständen keine ausreichenden Ressourcen haben, zu beheben und dabei die Werte der laufenden Dienste zu steigern (beispielsweise zu maximieren).
  • Ferner beinhaltet mindestens eine Ausführungsform der Erfindung Kombinieren von Erwägungen von Stilllegungs-, Wiederinbetriebnahme und Migrationsoperationen von VMs, um einen Algorithmus bereitzustellen, der diese Problemvariante behandelt. Entsprechend bezieht der Algorithmus Erwägungen der Kosten der Stilllegungs-, Migrations- und Wiederinbetriebnahmeoperationen ein und eine Gesamtoptimierung wird näherungsweise durch einen Heuristikalgorithmus angestrebt.
  • 1 ist ein Schaubild, das eine Beispielarchitektur des Systems zum Beheben von Überlastung in einer Cloud gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Veranschaulichend bildet 1 die miteinander verbundenen Hypervisoren 106 und 110 ab. Abbilder von VMs (zum Beispiel VM 102 und VM 104) werden in den Speicher gelegt, der von allen Hypervisoren gemeinsam genutzt wird. Entsprechend kann eine VM in jedem Hypervisor gestartet oder wieder in Betrieb genommen werden. Ein in jedem Hypervisor installierter Wächter (wie durch die Komponenten 108 und 112 bildlich dargestellt) misst periodisch die Ressourcennutzung aller VMs im Hypervisor und berichtet die Ressourcenmessung an die Behebungszentrumskomponente 114.
  • Wenn vom Wächter im Hypervisor eine Überlastung im Hypervisor erkannt wird, hat das Behebungszentrum Kenntnis über die Ressourcennutzung aller Hypervisoren in der Cloud und trifft Entscheidungen, welche VMs migriert oder stillgelegt oder wieder in Betrieb genommen werden sollen. Außerdem sendet das Behebungszentrum Befehle an die entsprechenden Hypervisoren, um Operationen auszugeben. Die Meldungsübertragungen zwischen den Wächtern und dem Behebungszentrum sind durch die gestrichelten Linien in 1 veranschaulicht.
  • Da sich die Ressourcennutzung einer VM mit der Zeit ändert und von Zeit zu Zeit eine Provisionierung und Deprovisionierung von VMs erfolgt, ändert sich die Ressourcennutzung in der Cloud ebenfalls. Entsprechend prüft das Behebungszentrum periodisch, ob ausreichende Ressourcen verfügbar werden, um stillgelegte VMs wieder in Betrieb zu nehmen.
  • Wie hier im Einzelnen erläutert, enthält ein Aspekt der Erfindung die Verwendung eines Begriffs „Arbeitswert”, um die Wichtigkeit einer VM zu definieren. Der Arbeitswert, wie hier verwendet, zielt darauf ab, den potenziellen Verlust der Dienste/Aufgaben in einer VM, der durch Stilllegen der VM verursacht wird, und/oder die Auswirkungen der Stilllegung einer VM auf die Ausführung anderer VMs zu messen. Diese Werte werden bei herkömmlichen Platzierungsverfahren für VMs nicht als Dienstfunktion gemessen, weil solche Ansätze VMs nicht stilllegen. Beispielsweise enthält der Arbeitswert die erwartete Arbeit, die von einer stillgelegten VM geleistet werden sollte, wenn sie nicht stillgelegt wäre, und die Dienstfunktionen bei diesen Verfahren berücksichtigen diesen Aspekt nicht.
  • Ein Ziel von mindestens einer Ausführungsform der Erfindung ist es, VMs stillzulegen, die den geringsten Arbeitswertbetrag leisten, und VMs wieder in Betrieb zu nehmen, die einen höheren Arbeitswert leisten. Wie hier beschrieben, dient ein analytisches Modell dazu, den Arbeitswert jeder VM zu bewerten, und macht sich eine vorhandene Analyse (beispielsweise Zeitreihe mit Saisonalität) von VM-Metriken zunutze, um den Arbeitswert zu berechnen/abzuschätzen. Eine solche Berechnung kann die Kenntnis von prognostizierten Arbeitslastmustern, Lebenszeit-Prognosen anhand der Vergangenheit oder des Typs der Arbeitslast, Kundenstil, etc. einbeziehen.
  • Auch beinhaltet mindestens eine Ausführungsform der Erfindung die Verwendung eines Abhängigkeitsmodells zum Bewerten des Arbeitswerts jeder VM. Dies kann beispielsweise die statische Abhängigkeit über die Konfigurationsanalyse, die dynamische Abhängigkeit und/oder die Verwendung anderer Heuristiken wie Preis der VM, aktuelle Arbeit der Zentraleinheit (CPU) etc. beinhalten.
  • Eine beispielhafte Ausführungsform des Arbeitswerts sind die Einnahmen oder der Preis. Wenn der Preis nicht als Arbeitswert verwendet wird, kann der Arbeitswert durch Dienstarten angegeben werden. Wenn eine VM, die kritische Dienste wie E-Mail und Network File System (NFS) (Netzwerk-Dateisystem) bereitstellt, stillgelegt wird, kann sie einen großen Verlust verursachen. Der potenzielle Verlust kann direkt aus der Kenntnis über die Dienste einer VM abgeschätzt werden oder durch Zunutzemachen analytischer Modelle, wenn eine solche direkte Kenntnis nicht vorliegt. Wenn beispielsweise eine VM einen Sicherungsdienst für eine Reihe von Maschinen bereitstellt und den Sicherungsdienst regelmäßig einmal wöchentlich durchführt, kann die Analyse der Zeitreihe mit Saisonalität angewandt werden, um die Regelmäßigkeit des Dienstes dieser VM zu erkennen und die Kritikalität dieser VM zu einer bestimmten Zeit zu prognostizieren. Arbeitslastmuster können ebenfalls prognostiziert und dazu verwendet werden, um die Wichtigkeit der Arbeit einer VM zu einer bestimmten Zeit zu ermitteln.
  • Außer dem Anwenden von Kenntnissen über Dienste, analytischen Modellen und Arbeitslastmustern zum Abschätzen des Arbeitswerts können Administratoren eine Berechnung des Arbeitswerts der VMS zu jeder beliebigen Zeit t vorgeben. Ein Beispiel zum Berechnen des Arbeitswerts ist nachstehend angegeben (die Parameter V1, V2, V3, und die Funktion V_Muster() sind richtig einzustellen):
    Figure 00070001
    Figure 00080001
  • Neben dem Verlust des Dienstes der stillgelegten VM kann die stillgelegte VM auch andere VMs beeinflussen, die von der stillgelegten VM abhängen. Als Beispiel hängt ein Aktienhandelsdienst in einem WebSphere-Anwendungsserver (WAS) von einem DB2-Server ab, und der WAS- und der DB2-Server liegen in zwei separaten VMs vor. Wenn die DB2-VM stillgelegt wird, erreicht die WAS-VM keinen Arbeitswert.
  • Außerdem kann mindestens eine Ausführungsform der Erfindung das Optimieren der Gesamtarbeitswerte in Betrieb befindlicher VMs in abhängigkeitsfreien Szenarien optimieren, wenn bestimmte VMs ausgewählt werden, um stillgelegt, migriert oder wieder in Betrieb genommen zu werden. In abhängigkeitsfreien Szenarien ist der Arbeitswert einer VM unabhängig von den Arbeitswerten anderer VMs. In einem solchen Szenario ist das Problem eine Variante des multiplen Knapsack-Problems (MKP), oder genauer eine Variante des Removable Online MKP (des behebbaren Online-MKP), weil VMs provisioniert, von Hypervisoren entfernt und von einem Hypervisor in einem anderen verlagert werden und VMs veränderliche Ressourcennutzungen und Arbeitswerte haben. Neben den Arbeitswerten werden die Kosten der Stilllegung und Migration einer VM bei der Behandlung dieses Problems ebenfalls berücksichtigt.
  • Als Beispiel sei eine Cloud-Datenverarbeitungsumgebung betrachtet, die m Hypervisoren aufweist: H1, H2, ..., Hm. Hi hat die Menge Ressourcen Ri (der Einfachheit dieses Beispiels halber sei angenommen, dass es einen Ressourcentyp gibt; es ist jedoch zu verstehen, dass mindestens eine Ausführungsform der Erfindung erweitert werden kann, um mehrere Ressourcentypen zu unterstützen). Ebenfalls sei angenommen, dass es n VMs gibt: VM1, VM2, ..., VMn. Die hier verwendeten Variablen sind wie folgt definiert:
  • uj
    durch VMj zu erreichender Arbeitswert
    rj
    von VMj verwendete Ressource
    Ri
    Ressource in Hi
    xi,j
    1: VMj in Betrieb in Hi; 0: sonst
    cqj
    Kosten des Stilllegens von VMj
    crj
    Kosten des Wiederinbetriebnehmens von VMj
    cmj
    Kosten des Migrierens von VMj
    μ
    Prozent-Schwellenwert für die Überlastungserkennung
    uj, rj und xi,j ändern sich mit der Zeit; entsprechend werden sie als Funktion der Zeit t bezeichnet: uj(t), rj(t) und xi,j(t). Formal ist Folgendes gegeben:
    Figure 00090001
    und das System erfährt eine Ressourcenüberlastung (wobei die Überlastung behoben wird) oder nicht (wobei stillgelegte VMs wieder in Betrieb genommen werden). Das heißt,
    Figure 00090002
  • Mindestens eine Ausführungsform der Erfindung versucht,
    Figure 00100001
    gewählt wird und damit sind
  • Figure 00100002
  • thrdq, thrdr, bzw. thrdm, sind die Schwellenwerte für die Kosten der Stilllegung, Wiederinbetriebnahme bzw. Migration. Diese Werte können durch das System ermittelt werden oder von Administratoren vorgegeben werden.
  • Ob VMj stillgelegt, wieder in Betrieb genommen, migriert oder nicht geändert werden soll, wird formal durch die Beziehung zwischen xi,j(t) und xi,j(t + 1) ausgedrückt, wie nachstehend dargestellt:
    Figure 00100003
    • (1) VMj ist stillzulegen ⇔ A = –1, B = 1
    • (2) VMj ist wieder in Betrieb zu nehmen ⇔ A = 1, B = 1
    • (3) VMj ist zu migrieren ⇔ A = 0, B = 2
    • (4) VMj ist nicht zu verändern ⇔ A = 0, B = 0
  • Diese Variante des ROMKP-Problems ist NP-hart. Mindestens eine Ausführungsform der Erfindung enthält einen entwickelten ROWM-Näherungsalgorithmus, um das Problem zu lösen. Im Algorithmus gibt es zwei Teile: den Teil Überlastungsbehebung, der entscheidet, welche VMs stillzulegen/zu migrieren sind, wenn bei einem Hypervisor eine Überlastung auftritt, und den Teil periodische Wiederinbetriebnahme, der entscheidet, welche stillgelegten VMs wieder in Betrieb genommen werden sollen, sobald die Ressourcen ausreichend werden.
  • Bei einer Überlastung (d. h. Ressourcennutzung über einem Schwellenwert thrd1) wird eine Menge VMs im überlasteten Hypervisor identifiziert, die migriert oder stillgelegt werden müssen, um die Überlastung zu beheben. Dann wird ein Test durchgeführt, um zu ermitteln, ob alle VMs in C (d. h. die VMs, die die meisten Ressourcen im überlasteten Hypervisor verbrauchen, so dass die übrigen VMs weniger als einen Schwellenwert thrd2 verbrauchen) zu einem anderen Hypervisor migriert werden können, indem ein Heuristikalgorithmus für das MKP angewandt wird. Der Test schlägt fehl, wenn ungenügende Ressourcen vorhanden sind. Entsprechend wird geplant, dass die VM mit dem niedrigsten Verhältnis von Arbeitswert zu Ressourcennutzung in der gesamten Cloud stillgelegt werden soll, und der Test wird erneut durchgeführt. Dieser Vorgang wird wiederholt, bis der Test bestanden wird.
  • Anschließend werden die für die Stilllegung vorgesehenen VMs in Q geprüft, um die VMs auszuwählen, die unnötigerweise für die Stilllegung vorgesehen sind. Nach diesen Schritten wird der endgültige Migrations- und Stilllegungsplan gewonnen. Die Schritte des Teils periodische Wiederinbetriebnahme sind ähnlich wie die Beschreibung des obigen Teils Überlastungsbehebung, außer dass ein Test durchgeführt wird, um zu ermitteln, ob alle stillgelegten VMs in C wieder in Betrieb genommen werden können.
  • Dieser Algorithmus hat die Zeitkomplexität von O(nlogn + nkm), wobei n die Anzahl der VMs in der Cloud, k die Anzahl der zu migrierenden/wieder in Betrieb zu nehmenden VMs und m die Anzahl der Hypervisoren ist. Es ist ein polynomialer Systemzeitaufwand und kann beispielsweise für Clouds mit Hunderten von Hypervisoren und Tausenden von VMs implementiert werden.
  • Als Beispiel kann mindestens eine Ausführungsform der Erfindung als MAPE(Monitor-Analyze-Plan-Execution (Wächter-Analyse-Plan-Ausführung))-Schleife auf einer großen Cloud-Plattform implementiert werden. 2 ist ein Schaubild, das eine Implementierungsarchitektur des Systems zur Behebung von Überlastung in einer Ziel-Cloud gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Die schattierten Komponenten in 2 sind die Komponenten, die zur Ziel-Cloud hinzugefügt werden, um die Überlastungsbehebung zu unterstützen. Die unschattierten Komponenten in 2 sind die Komponenten der Cloud selbst.
  • Der Cloud-Manager 214 ist ein Software-Paket, das für die Provisionierung, Deprovisionierung, Migration und sonstige Verwaltungsoperationen für VMs 202 verantwortlich ist. Das Datendepot 212 speichert die Messdaten, die periodisch von den Wächtern 206 in den Hypervisoren 204 gemeldet werden. Ein Kunde kann Befehle an den Cloud-Manager ausgeben, gewünschte Operationen über ein Portal 216 durchzuführen. Eine REST(REpresentation State Transfer (Darstellungszustandsübertragung)-Anwendungsprogrammierschnittstelle (API) wird zwischen dem Portal und dem Cloud-Manager genutzt, um bestimmte Operationen im Cloud-Manager zu verlangen. Außerdem kann eine Nachrichtenwarteschlangen-Komponente 218 zwischen den Cloud-Manager und das Portal implementiert werden.
  • Verglichen mit der in 1 veranschaulichten grundlegenden Überlastungsbehebung enthält das in 2 abgebildete System eine Behebungsdatenbank (DB) 208, um die Persistenz zu unterstützen. Die Datenbank speichert Ereignisse, die vom Hypervisor-Wächter generiert werden (beispielsweise ein Ereignis „Ressourcenüberlastung”, ein Ereignis „Überlastung behoben”, etc.), den Status der vom Cloud-Manager durchgeführten Aktionen (beispielsweise „Migration erfolgreich”, „Wiederinbetriebnahme einer VM fehlgeschlagen” etc.) und die aktuellen Zustände aller verwalteten VMs (beispielsweise „normaler Betrieb”, „überlastet”, „stillgelegt” etc.). Das Behebungszentrum 210 ist ein Prozess, der auf einem separaten Computer abläuft, der periodisch die Behebungs-DB abfragt, um neue, von der DB empfangene Ereignisse zu verarbeiten. Beim Verarbeiten dieser Ereignisse ruft das Behebungszentrum Leistungsdaten aus dem Datendepot 212 ab, da diese Daten in den Behebungsalgorithmen benötigt werden. Wenn die Entscheidung, welche VMs migriert, stillgelegt und/oder wieder in Betrieb genommen werden sollen, getroffen wird, werden Befehle zum Cloud-Manager gesendet, um die Entscheidung auszuführen.
  • 3 ist ein Ablaufplan, der einen Auswahlalgorithmus für die Stilllegung von VMs gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. In Schritt 302 gilt Q = {die VMs, die für die Stilllegung durch diesen Algorithmus vorgesehen sind; zuerst leer}. In Schritt 304 gilt C = {die VMs, die die meisten Ressourcen im überlasteten Hypervisor verbrauchen, so dass die übrigen VMs weniger als einen Schwellenwert (beispielsweise 85%) der physischen Ressourcen verbrauchen}. Schritt 306 beinhaltet das Sortieren aller in Betrieb befindlichen VMs in allen Hypervisoren nach ihrem Verhältnis U/R in aufsteigender Reihenfolge. Schritt 308 beinhaltet das Testen, um zu ermitteln, ob die VMs in C zu anderen Hypervisoren migriert werden können (VMs in Q gelten als stillgelegt), ohne eine Ressourcennutzung über einem Soll-Schwellenwert (beispielsweise 85%) zu verursachen und zu annehmbaren Migrationskosten. Kriterien für akzeptable Migrationskosten können von Systemadministratoren nach ihrer Erfahrung und Fachkenntnis vorgegeben werden; Kriterien wie beispielsweise weniger als 80% der Netzwerkbandbreite während eines bestimmten Zeitraums. Außerdem wird ein MKP-Heuristikalgorithmus der besten Anpassung (Best-Fit-Algorithmus) während des Tests angewandt. Wenn der Test erfolgreich ist (wie in Schritt 310 ermittelt), wird die Arbeit ausgeführt und der Algorithmus geht zu Schritt 316 über; andernfalls geht der Algorithmus zu Schritt 312 über.
  • In Schritt 312 gilt Q = Q + {die VM mit dem nächstkleineren U/R-Wert und mit annehmbaren Stilllegungskosten}. Schritt 314 beinhaltet Ermitteln, ob die Überlastung behoben ist. Wenn ja, geht der Algorithmus zu Schritt 316 über; andernfalls kehrt der Algorithmus zu Schritt 308 zurück. Entsprechend wird der Migrationsplan erfolgreich als M erstellt, und Schritt 316 beinhaltet Entfernen der VMs, die durch Schritt 312 unnötig in Q hinzufügt wurden, aus Q. <M, Q> ist das endgültige Ergebnis.
  • 4 ist ein Schaubild, das einen Auswahlalgorithmus für die Wiederinbetriebnahme von VMs gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. In Schritt 402 gilt Q = {die VMs, die für die Stilllegung durch diesen Algorithmus vorgesehen sind; zuerst leer}. In Schritt 404 gilt C = {die stillgelegten VMs}. Schritt 406 beinhaltet das Sortieren aller sowohl in Betrieb befindlichen als auch stillgelegten VMs in allen Hypervisoren nach ihrem Verhältnis U/R in aufsteigender Reihenfolge. Schritt 408 beinhaltet das Testen, um zu ermitteln, ob die VMs in C in den Hypervisoren wieder in Betrieb genommen werden können (VMs in Q gelten als stillgelegt), ohne eine Ressourcennutzung über einem Schwellenwert (beispielsweise 85%) zu verursachen und zu annehmbaren Wiederinbetriebnahmekosten. Außerdem wird ein MKP-Heuristikalgorithmus der besten Anpassung (Best-Fit-Algorithmus) während des Tests angewandt.
  • Schritt 410 ermittelt, ob der Test erfolgreich war. Bei Erfolg wird die Arbeit ausgeführt und der Algorithmus geht zu Schritt 414 über. Andernfalls geht der Algorithmus zu Schritt 412 über. In Schritt 412 gilt Q = Q + {die VM mit dem nächstkleineren U/R-Wert und mit annehmbaren Stilllegungskosten}. Anschließend kehrt der Algorithmus zu Schritt 408 zurück.
  • Der Wiederinbetriebnahmeplan wird erfolgreich als M erstellt, und Schritt 414 beinhaltet das Entfernen der VMs, die durch Schritt 412 unnötig in Q hinzufügt wurden, aus Q. <M, Q> ist das endgültige Ergebnis.
  • 5 ist ein Ablaufplan, der Verfahren zum Beheben einer Überlastung in einer überbelegten Datenverarbeitungsumgebung gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Schritt 502 beinhaltet Messen der Ressourcennutzung jeder der vielen virtuellen Maschinen in jedem von mindestens einem Hypervisor in einer Datenverarbeitungsumgebung.
  • Bei Erkennen einer Ressourcenüberlastung in einem von mindestens einem Hypervisor werden die Schritte 504 und 506 durchgeführt. Schritt 504 beinhaltet das Ermitteln von mindestens einer Operation, die für mindestens eine der vielen virtuellen Maschinen im Hypervisor vorzunehmen ist, um die Ressourcenüberlastung zu beheben und dabei die Werte der in Betrieb befindlichen virtuellen Maschinen zu steigern oder zu maximieren. Wie hier im Einzelnen erläutert, kann die Operation mindestens eines von Migration, Stilllegung oder Wiederinbetriebnahme enthalten.
  • Das Ermitteln von mindestens einer vorzunehmenden Operation kann das Berechnen eines Arbeitswerts von jeder virtuellen Maschine beinhalten, wobei der Arbeitswert mindestens ein Maß des potenziellen Verlusts von Diensten in der virtuellen Maschine, der durch das Stilllegen der virtuellen Maschine verursacht wird, und/oder ein Maß einer Auswirkung der stillgelegten virtuellen Maschine auf die Ausführung von mindestens einer anderen virtuellen Maschine enthält. Der Arbeitswert jeder virtuellen Maschine kann eine Kombination von mindestens einem Faktor enthalten, darunter die Lebensdauer der virtuellen Maschine, der Preis, die Einnahmen, der Dienstleistungsvertrag, die Auslastung der Zentraleinheit, die Abhängigkeit der virtuellen Maschine und die Arbeitslastprognose.
  • Zusätzlich kann das Ermitteln einer vorzunehmenden Operation das Identifizieren von mindestens einer stillzulegenden virtuellen Maschine mit einem niedrigsten Arbeitswert und/oder mindestens einer zur Optimierung wieder in Betrieb zu nehmenden virtuellen Maschine mit einem höheren Arbeitswert beinhalten. Ferner kann das Ermitteln von mindestens einer vorzunehmenden Operation kontinuierliches Messen und Zunutzemachen des Arbeitswerts und des Ressourcenverbrauchs jeder virtuellen Maschine beinhalten. Mindestens eine Ausführungsform der Erfindung kann außerdem das Verwenden eines Verhältnisses von Arbeitswert zu Ressourcenverbrauch beinhalten, um zu ermitteln, ob eine von einer Migrations-, Stilllegungs- oder Wiederinbetriebnahmeoperation in einer virtuellen Maschine vorzunehmen ist.
  • Schritt 506 beinhaltet das Senden eines Befehls an den Hypervisor, um die mindestens eine Operation auszugeben. Zusätzlich können die in 5 abgebildeten Techniken periodisches Ermitteln beinhalten, ob ausreichende Ressourcen für eine stillgelegte virtuelle Maschine verfügbar werden, um wieder in Betrieb genommen zu werden.
  • Wie hier ebenfalls im Einzelnen erläutert, beinhaltet mindestens eine Ausführungsform der Erfindung ein automatisiertes Überlastungsbehebungsverfahren für eine virtualisierte Umgebung. Ein solches Verfahren beinhaltet das Wiederherstellen aus einer Systemressourcen-Überlastungssituation durch Auswählen einer Teilmenge der virtuellen Maschinen zum Migrieren und einer Teilmenge der virtuellen Maschinen zum Stilllegen aus einer Vielzahl virtueller Maschinen im System. Außerdem kann eine solche Ausführungsform der Erfindung periodisches Auswählen einer Teilmenge der virtuellen Maschinen zum Migrieren und einer Teilmenge der virtuellen Maschinen zum Wiederinbetriebnehmen beinhalten, um die Anzahl der in Betrieb befindlichen virtuellen Maschinen und den Arbeitswert, der von den in Betrieb befindlichen virtuellen Maschinen erreicht wird, zu steigern. Wie hier im Einzelnen erläutert, berücksichtigt jede Auswahl zum Migrieren, Stilllegen und Wiederinbetriebnehmen eine Arbeitswertmetrik, die von jeder virtuellen Maschine beigesteuert wird. Die Arbeitswertsmetrik kombiniert einen oder mehrere Faktoren, darunter virtuelle Lebensdauer, Preis, Einnahmen, Dienstleistungsvertrag, Auslastung der Zentraleinheit, Abhängigkeit der virtuellen Maschine und Arbeitslastprognose.
  • Zusätzlich wird in mindestens einer Ausführungsform der Erfindung ein Problem als eine Variante eines Removable Online Multiple Knapsack Problems (ROMKP) formuliert. Ein solches formuliertes Problem beinhaltet das Berücksichtigen von Objektarbeitswerten und Ressourcennutzungen, die sich zusätzlich zur Ankunft neuer Objekte mit der Zeit verändern, was Knapsack-Operationen gestattet, darunter Entfernen eines oder mehrerer Objekte aus einem Knapsack, Bewegen eines oder mehrerer Objekte von einem Knapsack zu einem anderen und Zurücklegen eines oder mehrerer Objekte in einen Knapsack. Ein solches Problem beinhaltet auch das Berücksichtigen der Kosten der Knapsack-Operationen beim Treffen von Entscheidungen.
  • Eine Lösung für die Variante des ROMKP-Problems kann kontinuierliches Messen und Zunutzemachen des Arbeitswerts und der Ressourcennutzung jeder virtuellen Maschine beinhalten, wobei ein Verhältnis von Arbeitswert zu Ressourcennutzung als Kriterium verwendet wird, um eine Entscheidung zum Auswählen einer Migrations-, Stilllegungs- oder Wiederinbetriebnahmeoperation für eine oder mehrere virtuelle Maschinen zu treffen und Kosten für jede Migrations-, Stilllegungs- und/oder Wiederinbetriebnahmeoperation zu berechnen und die Kosten als Vorgabe bei der Formulierung des Problems zu verwenden. Außerdem ist bei mindestens einer Ausführungsform der Erfindung der Arbeitswert für eine virtuelle Maschine als 1/(Ressourcennutzung) definiert, wenn die virtuelle Maschine während eines gegebenen jüngsten Zeitraums P nicht stillgelegt war, und unendlich, wenn die virtuelle Maschine während des Zeitraums P stillgelegt war.
  • Die in 5 abgebildeten Techniken können auch wie hier beschrieben das Bereitstellen eines Systems beinhalten, wobei das System unterscheidbare Software-Module enthält, wobei jedes der unterscheidbaren Software-Module auf einem materiellen computerlesbaren, beschreibbaren Speichermedium verkörpert ist. Alle Module (oder eine beliebige Teilmenge davon) können sich beispielsweise auf demselben Medium befinden, oder jedes kann sich auf einem anderen Medium befinden. Die Module können eine beliebige oder alle der in den Figuren dargestellten Komponenten enthalten. Nach einem Aspekt der Erfindung können die Module beispielsweise in einem Hardware-Prozessor laufen. Die Verfahrensschritte können dann ausgeführt werden, indem die unterscheidbaren Software-Module des Systems verwendet werden, die wie oben beschrieben auf einem Hardware-Prozessor ausgeführt werden. Ferner kann ein Computerprogrammprodukt ein materielles computerlesbares, beschreibbares Speichermedium mit Programmcode enthalten, der so angepasst ist, dass er ausgeführt wird, um mindestens einen hier beschriebenen Verfahrensschritt durchzuführen, darunter die Bereitstellung des Systems mit den unterscheidbaren Software-Modulen.
  • Zusätzlich können die in 5 abgebildeten Techniken über ein Computerprogrammprodukt implementiert werden, das einen computernutzbaren Programmcode enthalten kann, der in einem computerlesbaren Speichermedium in einem Datenverarbeitungssystem gespeichert ist, und wobei der computernutzbare Programmcode über ein Netzwerk von einem entfernt angeordneten Datenverarbeitungssystem heruntergeladen wurde. Außerdem kann nach einem Aspekt der Erfindung das Computerprogrammprodukt computernutzbaren Programmcode enthalten, der in einem computerlesbaren Speichermedium in einem Server-Datenverarbeitungssystem gespeichert ist, und wobei der computernutzbare Programmcode zur Verwendung in einem computerlesbaren Speichermedium mit dem entfernt angeordneten System über ein Netzwerk auf ein entfernt angeordnetes Datenverarbeitungssystem heruntergeladen wird.
  • Wie für den Fachmann ersichtlich, können Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt ausgeführt werden. Entsprechend können Aspekte der vorliegenden Erfindung die Form einer lediglich aus Hardware bestehenden Ausführungsform, einer lediglich aus Software bestehenden Ausführungsform (darunter Firmware, residente Software, Mikro-Code etc.) oder einer Software- und Hardware-Aspekte kombinierenden Ausführungsform annehmen, die hier alle generell als „Schaltung”, „Modul” oder „System” bezeichnet werden können. Ferner können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem computerlesbaren Medium mit darauf verkörpertem computerlesbarem Programmcode verkörpert ist.
  • Ein Aspekt der Erfindung oder ihrer Elemente kann in Form einer Vorrichtung mit einem Speicher und mindestens einem Prozessor implementiert werden, der mit dem Speicher gekoppelt und betriebsfähig ist, um die genannten Verfahrensschritte durchzuführen.
  • Außerdem kann ein Aspekt der vorliegenden Erfindung Software nutzen, die auf einem Universal-Computer bzw. einer Universal-Workstation läuft. Auf 6 Bezug nehmend, kann eine solche Implementierung beispielsweise einen Prozessor 602, einen Speicher 604 und eine Eingabe/Ausgabe-Schnittstelle verwenden, die beispielsweise durch eine Anzeige 606 und eine Tastatur 608 gebildet wird. Der Ausdruck „Prozessor” wie hier verwendet soll jede beliebige Verarbeitungseinheit einschließen, wie beispielsweise eine Einheit mit einer CPU (Zentraleinheit) und/oder anderen Formen einer verarbeitenden Schaltung. Ferner kann sich der Ausdruck „Prozessor” auf mehr als einen einzelnen Prozessor beziehen. Der Ausdruck „Speicher” soll einen mit einem Prozessor oder einer CPU verbundenen Speicher einschließen, wie beispielsweise einen RAM (Schreib-Lese-Speicher), einen ROM (Nur-Lese-Speicher), eine feste Speichereinheit (z. B. Festplatte), eine Wechselspeichereinheit (z. B. Diskette), einen Flash-Speicher und Ähnliches. Außerdem soll die Wortverbindung „Eingabe/Ausgabe-Schnittstelle” wie hier verwendet beispielsweise einen Mechanismus zum Eingeben von Daten in die Verarbeitungseinheit (z. B. Maus) und einen Mechanismus für das Bereitstellen von Ergebnissen, die mit der Verarbeitungseinheit verbunden sind (z. B. Drucker) einschließen. Der Prozessor 602, der Speicher 604 und die Eingabe/Ausgabe-Schnittstelle wie beispielsweise die Anzeige 606 und die Tastatur 608 können miteinander verbunden sein, z. B. über einen Bus 610 als Teil der Datenverarbeitungseinheit 612. Geeignete Verbindungen, z. B. über den Bus 610, können auch für eine Netzwerkschnittstelle 614 wie beispielsweise eine Netzwerkkarte, die als Schnittstelle zu einem Computernetzwerk bereitgestellt werden kann, und für eine Medienschnittstelle 616 wie beispielsweise ein Disketten- oder CD-ROM-Laufwerk, die als Schnittstelle zu den Medien 618 bereitgestellt werden kann, bereitgestellt werden.
  • Entsprechend kann Computer-Software mit Anweisungen oder Programmcode zum Durchführen der Verfahren der Erfindung wie hier beschrieben in zugehörigen Speichereinheiten (z. B. ROM, fester oder Wechselspeicher) gespeichert werden und, sobald nutzungsbereit, in Teilen oder im Ganzen (z. B. in den RAM) geladen und durch eine CPU implementiert werden. Eine solche Software könnte unter anderem Firmware, residente Software, Mikro-Code und Ähnliches sein, ohne darauf beschränkt zu sein.
  • Ein Datenverarbeitungssystem, das zum Speichern und/oder Ausführen von Programmcode geeignet ist, enthält mindestens einen Prozessor 602, der über einen Systembus 610 direkt oder indirekt mit Speicherelementen 604 gekoppelt ist. Die Speicherelemente können unter anderem ein lokaler Speicher, der während der eigentlichen Implementierung des Programmcodes verwendet wird, ein Massenspeicher und Zwischenspeicher sein, die eine vorübergehende Speicherung von mindestens etwas Programmcode bereitstellen, um die Anzahl der Male zu verringern, die der Programmcode während der Implementierung aus dem Massenspeicher abgerufen werden muss.
  • Eingabe/Ausgabe- bzw. E/A-Einheiten (darunter Tastaturen 608, Anzeigen 606, Zeigeeinheiten und Ähnliches, ohne darauf beschränkt zu sein) können entweder direkt (wie z. B. über den Bus 610) oder über zwischengeschaltete E/A-Steuereinheiten (der Übersichtlichkeit halber weggelassen) mit dem System gekoppelt sein.
  • Netzwerkadapter wie die Netzwerkschnittstelle 614 können ebenfalls mit dem System gekoppelt werden, damit das Datenverarbeitungssystem über zwischengeschaltete private oder öffentliche Netzwerke mit anderen Datenverarbeitungssystemen oder entfernt angeordneten Druckern oder Speichereinheiten gekoppelt werden kann. Modems, Kabelmodem und Ethernet-Karten sind nur einige der aktuell erhältlichen Arten von Netzwerkadaptern.
  • Wie hier einschließlich der Ansprüche verwendet, beinhaltet ein „Server” ein physisches Datenverarbeitungssystem (z. B. System 612, wie in 6 dargestellt), auf dem ein Serverprogramm läuft. Es ist anzumerken, dass ein solcher physischer Server eine Anzeige und eine Tastatur beinhalten kann oder nicht.
  • Wie angemerkt, können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem computerlesbaren Medium mit darauf verkörpertem Programmcode verkörpert ist. Auch kann jede Kombination eines oder mehrerer computerlesbarer Medien verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann, ohne darauf beschränkt zu sein, beispielsweise ein(e) elektronische(s), magnetische(s), optische(s), elektromagnetische(s), Infrarot- oder Halbleiter-System, -Vorrichtung oder -Einheit oder eine beliebige geeignete Kombination der vorgenannten sein. Spezifischere Beispiele (eine nicht erschöpfende Liste) computerlesbarer Speichermedien wären u. a. folgende: eine elektrische Verbindung mit einem oder mehreren Drähten, eine tragbare Computerdiskette, eine Festplatte, ein Schreib-Lese-Speicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine Magnetspeichereinheit oder jede beliebige Kombination der vorgenannten. Im Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes materielle Medium sein, das ein Programm zur Verwendung durch oder in Zusammenhang mit einem/r Anweisungsausführungssystem, -vorrichtung oder -einheit enthalten oder speichern kann.
  • Ein computerlesbares Signalmedium kann ein verbreitetes Datensignal mit darin verkörpertem computerlesbarem Programmcode aufweisen, beispielsweise im Basisband oder als Teil einer Trägerwelle. Ein solches verbreitetes Signal kann jede beliebige einer Vielfalt von Formen annehmen, einschließlich, ohne darauf beschränkt zu sein, elektromagnetisch, optisch oder jede geeignete Kombination davon. Ein computerlesbares Signalmedium kann jedes computerlesbare Medium sein, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem/r Anweisungsausführungssystem, -vorrichtung oder -einheit übermitteln, verbreiten oder transportieren kann.
  • Programmcode, der auf einem computerlesbaren Medium verkörpert ist, kann unter Verwendung eines geeigneten Mediums, einschließlich, ohne darauf beschränkt zu sein, drahtloser, drahtgebundener, Lichtwellenleiterkabel-, HF-Medien etc. oder jeder beliebigen geeigneten Kombination der vorgenannten übertragen werden.
  • Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder beliebigen Kombination von mindestens einer Programmiersprache geschrieben sein, darunter eine objektorientierte Programmiersprache wie Java, Smalltalk, C++ oder Ähnliche und herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C” oder ähnliche Programmiersprachen. Der Programmcode kann gänzlich auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als autonomes Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder gänzlich auf einem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Szenario kann der entfernt angeordnete Computer über jede Art von Netzwerk an den Computer des Benutzers angeschlossen werden, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann mit einem externen Computer erfolgen (beispielsweise über das Internet mit Hilfe eines Internetdienstanbieters).
  • Aspekte der vorliegenden Erfindung sind hier unter Bezugnahme auf Ablaufplandarstellungen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist anzumerken, dass jeder Block der Ablaufplandarstellungen und/oder Blockschaubilder und Kombinationen von Blöcken in den Ablaufplandarstellungen und/oder Blockschaubildern durch Computerprogrammanweisungen realisiert werden können. Diese Computerprogrammanweisungen können einem Prozessor eines Universal-Computers, eines speziellen Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zur Erzeugung einer Maschine vermittelt werden, so dass die Anweisungen, die über den Prozessor des Computers oder eine andere programmierbare Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zur Realisierung der im Block bzw. den Blöcken des Ablaufplans und/oder Blockschemas spezifizierten Funktionen/Handlungen erzeugen.
  • Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, so dass die im computerlesbaren Medium gespeicherten Anweisungen einen Fertigungsartikel erzeugen, einschließlich Anweisungen, die die im Block bzw. in den Blöcken des Ablaufplans und/oder Blockschaubilds spezifizierten Funktionen/Handlungen realisieren. Entsprechend beinhaltet ein weiterer Aspekt der Erfindung einen Herstellungsartikel, der materiell computerlesbare Anweisungen verkörpert, die implementiert bewirken, dass ein Computer eine Vielzahl von Verfahrensschritten ausführt, wie hier beschrieben.
  • Die Computerprogrammanweisungen können auch in einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um die Durchführung einer Reihe von Funktionsschritten auf dem Computer, einer anderen programmierbaren Datenverarbeitungsvorrichtung oder anderen Einheiten zum Erzeugen eines auf einem Computer realisierten Prozesses zu bewirken, so dass die Anweisungen, die auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zur Realisierung der im Block bzw. in den Blöcken des Ablaufplans und/oder Blockschaubilds spezifizierten Funktionen/Handlungen bereitstellen.
  • Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und Funktion möglicher Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Diesbezüglich kann jeder Block im Ablaufplan oder in den Blockschaubildern ein Modul, eine Komponente, ein Segment oder einen Teil von Programmcode darstellen, das/die/der mindestens eine ausführbare Anweisung zur Realisierung der spezifizierten Logikfunktion(en) aufweist. Es ist ebenfalls anzumerken, dass bei manchen alternativen Realisierungen die im Block genannten Funktionen in anderer als der in den Figuren genannten Reihenfolge auftreten können. Beispielsweise können zwei aufeinanderfolgend dargestellte Blöcke je nach beteiligter Funktionalität sogar im Wesentlichen gleichzeitig ausgeführt werden oder die Blöcke können manchmal in umgekehrter Reihenfolge ausgeführt werden. Es ist auch anzumerken, dass jeder Block der Blockschaubilder und/oder Ablaufplandarstellung und Kombinationen aus Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch spezielle Systeme auf der Grundlage von Hardware, die die spezifizierten Funktionen oder Handlungen ausführen, oder Kombinationen aus spezieller Hardware und Computeranweisungen realisiert werden können.
  • Es ist anzumerken, dass jedes der hier beschriebenen Verfahren einen zusätzlichen Schritt des Bereitstellens eines Systems beinhalten kann, das unterscheidbare Software-Module aufweist, die auf einem computerlesbaren Speichermedium verkörpert sind; die Module können beispielsweise jede beliebige oder alle der hier im Einzelnen erläuterten Komponenten beinhalten. Die Verfahrensschritte können dann unter Verwendung der oben beschriebenen unterscheidbaren Software-Module und/oder Teilmodule des Systems in einem Hardware-Prozessor 602 ausgeführt werden. Ferner kann ein Computerprogrammprodukt ein computerlesbares Speichermedium mit Programmcode enthalten, der so angepasst ist, dass er implementiert wird, um mindestens einen hier beschriebenen Verfahrensschritt durchzuführen, darunter die Bereitstellung des Systems mit den unterscheidbaren Software-Modulen.
  • Auf jeden Fall ist anzumerken, dass die hier veranschaulichten Komponenten in verschiedenen Formen von Hardware, Software oder Kombinationen davon realisiert werden können, z. B. anwendungsspezifische integrierte Schaltkreise (ASICs), funktionale Schaltung, ein in geeigneter Weise programmierter digitalen Universal-Computer mit zugehörigem Speicher und Ähnliches. Anhand der Lehren der hier bereitgestellten Erfindung kann ein Fachmann andere Realisierungen der Komponenten dieser Erfindung in Betracht ziehen.
  • Die hier verwendete Terminologie dient nur dem Zweck, besondere Ausführungsformen zu beschreiben, und soll die Erfindung nicht einschränken. Wie hier verwendet, sollen die Singularformen „ein”, „eine” und „der, die, das” auch die Pluralformen einschließen, sofern es der Kontext nicht anders angibt. Es ist ferner anzumerken, dass die Ausdrücke „aufweist” und/oder „aufweisend”, wenn sie in dieser Spezifikation verwendet werden, das Vorhandensein der genannten Merkmale, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten angeben, aber nicht das Vorhandensein oder Hinzufügen eines/r anderen Merkmals, Ganzzahl, Schrittes, Operation, Elements, Komponente und/oder Gruppe davon ausschließen.
  • Die entsprechenden Strukturen, Materialien, Handlungen und Äquivalente aller Mittel oder aus Schritt plus Funktion bestehender Elemente in den nachstehenden Ansprüchen sollen jede Struktur, jedes Material oder jede Handlung für die Durchführung der Funktion in Verbindung mit anderen beanspruchten Elementen, wie im Besonderen beansprucht, einschließen. Die Beschreibung der vorliegenden Erfindung wurde zum Zweck der Veranschaulichung und Beschreibung dargestellt, soll aber nicht erschöpfend oder auf die Erfindung in der offenbarten Form beschränkt sein. Viele Modifikationen und Variationen werden für den Fachmann offensichtlich sein, ohne vom Umfang und Geist der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung am besten zu beschreiben, und um andere Fachleute zu befähigen, die Erfindung für verschiedene Ausführungsformen mit verschiedenen Modifikationen nachzuvollziehen, die für den besonders betrachteten Gebrauch geeignet sind.
  • Mindestens ein Aspekt der vorliegenden Erfindung kann eine vorteilhafte Wirkung wie beispielsweise das Beheben einer Hypervisor-Überlastung bereitstellen, ohne vorauszusetzen, dass immer eine Ressource für die Migration vorhanden ist.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zweck der Veranschaulichung dargestellt, sollen aber nicht erschöpfend oder auf die offenbarten Ausführungsformen beschränkt sein. Viele Modifikationen und Variationen werden für den Fachmann offensichtlich sein, ohne vom Umfang und Geist der beschriebenen Ausführungsformen abzuweichen. Die hier verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber am Markt befindlichen Technologien am besten zu erläutern oder Fachleute zu befähigen, die hier offenbarten Ausführungsformen zu verstehen.

Claims (15)

  1. Verfahren zum Beheben von Überlastung in einer überbelegten Datenverarbeitungsumgebung, wobei das Verfahren aufweist: Messen der Ressourcennutzung jeder der vielen virtuellen Maschinen in jedem von mindestens einem Hypervisor in einer Datenverarbeitungsumgebung; bei Erkennen einer Ressourcenüberlastung in einem von mindestens einem Hypervisor: Ermitteln von mindestens einer Operation, die für mindestens eine der vielen virtuellen Maschinen im Hypervisor vorzunehmen ist, um die Ressourcenüberlastung zu beheben und dabei die Werte der in Betrieb befindlichen virtuellen Maschinen zu steigern; und Senden eines Befehls an den Hypervisor, um die mindestens eine Operation auszugeben; wobei mindestens einer der Schritte durch eine Computereinheit durchgeführt wird.
  2. Verfahren nach Anspruch 1, wobei die mindestens eine Operation mindestens eines von Migration, Stilllegung oder Wiederinbetriebnahme aufweist und/oder wobei das Ermitteln von mindestens einer vorzunehmenden Operation das Berechnen eines Arbeitswerts von jeder virtuellen Maschine im Hypervisor aufweist, wobei der Arbeitswert mindestens ein Maß des potenziellen Verlusts von Diensten in der virtuellen Maschine, der durch das Stilllegen der virtuellen Maschine verursacht wird, und/oder ein Maß einer Auswirkung der stillgelegten virtuellen Maschine auf die Ausführung von mindestens einer anderen virtuellen Maschine aufweist.
  3. Verfahren nach Anspruch 2, wobei Ermitteln von mindestens einer auszuführenden Operation Identifizieren von mindestens einer virtuellen Maschine mit einem niedrigsten Arbeitswert zum Stilllegen und/oder mindestens einer virtuellen Maschine mit einem höheren Arbeitswert zum Wiederinbetriebnehmen für die Optimierung aufweist.
  4. Verfahren nach Anspruch 2, wobei der Arbeitswert jeder virtuellen Maschine eine Kombination von mindestens einem Faktor aufweist, darunter die Lebensdauer der virtuellen Maschine, der Preis, die Einnahmen, der Dienstleistungsvertrag, die Auslastung der Zentraleinheit, die Abhängigkeit der virtuellen Maschine und die Arbeitslastprognose.
  5. Verfahren nach Anspruch 2, wobei Ermitteln von mindestens einer auszuführenden Operation kontinuierliches Messen und Ausnutzen des Arbeitswerts und des Ressourcenverbrauchs jeder virtuellen Maschine aufweist.
  6. Verfahren nach Anspruch 5, ferner aufweisend: Verwenden eines Verhältnisses von Arbeitswert zu Ressourcenverbrauch, um zu ermitteln, ob eine Migrations-, Stilllegungs- oder Wiederinbetriebnahmeoperation in einer virtuellen Maschine auszuführen ist.
  7. Verfahren nach Anspruch 1, ferner aufweisend: periodisches Ermitteln, ob ausreichende Ressourcen verfügbar werden, damit eine stillgelegte virtuelle Maschine wieder in Betrieb genommen werden kann.
  8. Herstellungsartikel, der ein computerlesbares Speichermedium mit materiell darauf verkörperten computerlesbaren Anweisungen aufweist, die implementiert bewirken, dass ein Computer eine Vielzahl von Verfahrensschritten ausführt, aufweisend: Messen der Ressourcennutzung jeder der vielen virtuellen Maschinen in jedem von mindestens einem Hypervisor in einer Datenverarbeitungsumgebung; bei Erkennen einer Ressourcenüberlastung in einem von mindestens einem Hypervisor: Ermitteln von mindestens einer Operation, die für mindestens eine der vielen virtuellen Maschinen im Hypervisor vorzunehmen ist, um die Ressourcenüberlastung zu beheben und dabei die Werte der in Betrieb befindlichen virtuellen Maschinen zu steigern; und Senden eines Befehls an den Hypervisor, um die mindestens eine Operation auszugeben.
  9. System zum Beheben von Überlastung in einer überbelegten Datenverarbeitungsumgebung, aufweisend: mindestens ein unterscheidbares Software-Modul, von denen jedes unterscheidbare Software-Modul auf einem materiellen computerlesbaren Medium verkörpert ist; einen Speicher; und mindestens einen mit dem Speicher gekoppelten Prozessor, der betriebsfähig ist zum: Messen der Ressourcennutzung jeder der vielen virtuellen Maschinen in jedem von mindestens einem Hypervisor in einer Datenverarbeitungsumgebung; bei Erkennen einer Ressourcenüberlastung in einem von mindestens einem Hypervisor: Ermitteln von mindestens einer Operation, die für mindestens eine der vielen virtuellen Maschinen im Hypervisor vorzunehmen ist, um die Ressourcenüberlastung zu beheben und dabei die Werte der in Betrieb befindlichen virtuellen Maschinen zu steigern; und Senden eines Befehls an den Hypervisor, um die mindestens eine Operation auszugeben.
  10. Automatisiertes Überlastungsbehebungsverfahren für eine virtualisierte Umgebung, wobei das Verfahren aufweist: Wiederherstellen aus einer Systemressourcen-Überlastungssituation durch Auswählen einer Teilmenge der virtuellen Maschinen zum Migrieren und einer Teilmenge der virtuellen Maschinen zum Stilllegen aus einer Vielzahl virtueller Maschinen im System; und periodisches Auswählen einer Teilmenge der virtuellen Maschinen zum Migrieren und einer Teilmenge der virtuellen Maschinen zum Wiederinbetriebnehmen, um die Anzahl der in Betrieb befindlichen virtuellen Maschinen und den Arbeitswert, der von den in Betrieb befindlichen virtuellen Maschinen erreicht wird, zu steigern.
  11. Verfahren nach Anspruch 10, wobei jede Auswahl zum Migrieren, Stilllegen und Wiederinbetriebnehmen eine Arbeitswertmetrik berücksichtigt, die von jeder virtuellen Maschine beigesteuert wird.
  12. Verfahren nach Anspruch 11, wobei die Arbeitswertsmetrik einen oder mehrere Faktoren kombiniert, darunter virtuelle Lebensdauer, Preis, Einnahmen, Dienstleistungsvertrag, Auslastung der Zentraleinheit, Abhängigkeit der virtuellen Maschine und Arbeitslastprognose.
  13. Verfahren nach Anspruch 12, wobei ein Problem als eine Variante eines Removable Online Multiple Knapsack Problem (ROMKP) formuliert ist, aufweisend: Berücksichtigen von Objekt-Arbeitswerten und Ressourcennutzungen, die sich zusätzlich zur Ankunft neuer Objekte mit der Zeit verändern; Gestatten von Knapsack-Operationen mit Entfernen eines oder mehrerer Objekte aus einem Knapsack, Bewegen eines oder mehrerer Objekte von einem Knapsack zu einem anderen und Zurücklegen eines oder mehrerer Objekte in einen Knapsack; und Berücksichtigen der Knapsack-Operationen bei der Entscheidungsfindung.
  14. Verfahren nach Anspruch 13, wobei eine Lösung für die Variante des ROMKP-Problems aufweist: kontinuierliches Messen und Zunutzemachen des Arbeitswerts und des Ressourcenverbrauchs jeder virtuellen Maschine; Heranziehen eines Verhältnisses von Arbeitswert zu Ressourcennutzung als Kriterium, um eine Entscheidung zum Auswählen einer Migrations-, Stilllegungs- oder Wiederinbetriebnahmeoperation für eine oder mehrere virtuelle Maschinen zu treffen; und Berechnen der Kosten für jede Migrations-, Stilllegungs- und/oder Wiederinbetriebnahmeoperation und Verwenden der Kosten als Vorgabe bei der Formulierung des Problems.
  15. Verfahren nach Anspruch 11, wobei der Arbeitswert einer virtuellen Maschine definiert ist als: 1/(Ressourcennutzung), wenn die virtuelle Maschine während eines gegebenen jüngsten Zeitraums P nicht stillgelegt war; und unendlich, wenn die virtuelle Maschine während des Zeitraums P stillgelegt war.
DE102013206172A 2012-04-23 2013-04-09 Beheben von Ressourcenüberlastung Ceased DE102013206172A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/453,019 2012-04-23
US13/453,019 US8839243B2 (en) 2012-04-23 2012-04-23 Remediating resource overload

Publications (1)

Publication Number Publication Date
DE102013206172A1 true DE102013206172A1 (de) 2013-10-24

Family

ID=49290323

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013206172A Ceased DE102013206172A1 (de) 2012-04-23 2013-04-09 Beheben von Ressourcenüberlastung

Country Status (3)

Country Link
US (1) US8839243B2 (de)
CN (1) CN103377281B (de)
DE (1) DE102013206172A1 (de)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US8752047B2 (en) 2010-05-28 2014-06-10 Bromium, Inc. Automated management of virtual machines to process untrusted data based on client policy information
US9244705B1 (en) * 2010-05-28 2016-01-26 Bromium, Inc. Intelligent micro-virtual machine scheduling
US9116733B2 (en) 2010-05-28 2015-08-25 Bromium, Inc. Automated provisioning of secure virtual execution environment using virtual machine templates based on requested activity
US10095530B1 (en) 2010-05-28 2018-10-09 Bromium, Inc. Transferring control of potentially malicious bit sets to secure micro-virtual machine
US9386021B1 (en) 2011-05-25 2016-07-05 Bromium, Inc. Restricting network access to untrusted virtual machines
US8972980B2 (en) 2010-05-28 2015-03-03 Bromium, Inc. Automated provisioning of secure virtual execution environment using virtual machine templates based on requested activity
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
US10546118B1 (en) 2011-05-25 2020-01-28 Hewlett-Packard Development Company, L.P. Using a profile to provide selective access to resources in performing file operations
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US9027024B2 (en) * 2012-05-09 2015-05-05 Rackspace Us, Inc. Market-based virtual machine allocation
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9659074B1 (en) * 2012-06-27 2017-05-23 EMC IP Holding Company LLC VFA statistics
US9323577B2 (en) * 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US10346148B2 (en) 2013-08-12 2019-07-09 Amazon Technologies, Inc. Per request computer system instances
US9280372B2 (en) 2013-08-12 2016-03-08 Amazon Technologies, Inc. Request processing techniques
US9348634B2 (en) 2013-08-12 2016-05-24 Amazon Technologies, Inc. Fast-booting application image using variation points in application source code
US9705755B1 (en) 2013-08-14 2017-07-11 Amazon Technologies, Inc. Application definition deployment with request filters employing base groups
US10430614B2 (en) 2014-01-31 2019-10-01 Bromium, Inc. Automatic initiation of execution analysis
US20150263894A1 (en) * 2014-03-14 2015-09-17 Avni Networks Inc. Method and apparatus to migrate applications and network services onto any cloud
US9680708B2 (en) 2014-03-14 2017-06-13 Veritas Technologies Method and apparatus for cloud resource delivery
US9405572B2 (en) * 2014-04-07 2016-08-02 International Business Machines Corporation Optimized resource allocation and management in a virtualized computing environment
CN104980297A (zh) * 2014-04-14 2015-10-14 中兴通讯股份有限公司 虚拟机资源的变更方法、装置及虚拟网络功能设备
US11182185B2 (en) * 2014-06-27 2021-11-23 Vmware, Inc. Network-based signaling to control virtual machine placement
US9747136B2 (en) * 2014-12-09 2017-08-29 Vmware, Inc. Methods and systems that allocate cost of cluster resources in virtual data centers
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US9792138B2 (en) * 2015-02-18 2017-10-17 Red Hat Israel, Ltd. Virtual machine migration to hyper visors with virtual function capability
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US10129170B2 (en) * 2015-04-30 2018-11-13 International Business Machines Corporation Automated split of work in a cloud environment
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US9923785B1 (en) * 2015-06-24 2018-03-20 EMC IP Holding Company LLC Resource scaling in computing infrastructure
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US10678603B2 (en) * 2016-09-01 2020-06-09 Microsoft Technology Licensing, Llc Resource oversubscription based on utilization patterns in computing systems
US10469513B2 (en) 2016-10-05 2019-11-05 Amazon Technologies, Inc. Encrypted network addresses
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US10296367B2 (en) 2017-02-03 2019-05-21 Microsoft Technology Licensing, Llc Resource management for virtual machines in cloud computing systems
US10423455B2 (en) * 2017-02-03 2019-09-24 Microsoft Technology Licensing, Llc Method for deploying virtual machines in cloud computing systems based on predicted lifetime
US10776428B2 (en) 2017-02-16 2020-09-15 Nasdaq Technology Ab Systems and methods of retrospectively determining how submitted data transaction requests operate against a dynamic data structure
US10789097B2 (en) * 2017-02-16 2020-09-29 Nasdaq Technology Ab Methods and systems of scheduling computer processes or tasks in a distributed system
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
JP6681377B2 (ja) * 2017-10-30 2020-04-15 株式会社日立製作所 リソースの割り当てを最適化するシステム及び方法
CN108259584A (zh) * 2017-12-30 2018-07-06 广东技术师范学院 一种云存储服务方的任务策略控制方法
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
US11550606B2 (en) * 2018-09-13 2023-01-10 Intel Corporation Technologies for deploying virtual machines in a virtual network function infrastructure
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US11455234B2 (en) 2018-11-21 2022-09-27 Amazon Technologies, Inc. Robotics application development architecture
US11836577B2 (en) 2018-11-27 2023-12-05 Amazon Technologies, Inc. Reinforcement learning model training through simulation
US11429762B2 (en) 2018-11-27 2022-08-30 Amazon Technologies, Inc. Simulation orchestration for training reinforcement learning models
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
US11943285B2 (en) * 2019-03-22 2024-03-26 International Business Machines Corporation Metering computing resources in cloud computing environments

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2419702A (en) 2004-10-29 2006-05-03 Hewlett Packard Development Co Virtual overlay infrastructures which can be suspended and later reactivated
CN1809051A (zh) * 2005-01-19 2006-07-26 华为技术有限公司 一种ip电信网中应对设备过载的处理方法
US20070260702A1 (en) * 2006-05-03 2007-11-08 University Of Washington Web browser architecture for virtual machine access
US7673113B2 (en) 2006-12-29 2010-03-02 Intel Corporation Method for dynamic load balancing on partitioned systems
US7836332B2 (en) * 2007-07-18 2010-11-16 Hitachi, Ltd. Method and apparatus for managing virtual ports on storage systems
US9384062B2 (en) * 2008-12-27 2016-07-05 Vmware, Inc. Artificial neural network for balancing workload by migrating computing tasks across hosts
US8214829B2 (en) * 2009-01-15 2012-07-03 International Business Machines Corporation Techniques for placing applications in heterogeneous virtualized systems while minimizing power and migration cost
US7904540B2 (en) 2009-03-24 2011-03-08 International Business Machines Corporation System and method for deploying virtual machines in a computing environment
EP2309387A1 (de) 2009-10-06 2011-04-13 Alcatel Lucent Verfahren zum Migrieren eines virtuellen Rechners, entsprechendes Computerprogrammprodukt und Datenspeicherungsvorrichtung dafür
US8627123B2 (en) 2010-03-25 2014-01-07 Microsoft Corporation Managing power provisioning in distributed computing
CN102662754A (zh) * 2012-04-20 2012-09-12 浙江大学 一种支持多场景的虚拟机调度装置和方法

Also Published As

Publication number Publication date
US20130283266A1 (en) 2013-10-24
CN103377281B (zh) 2016-08-03
CN103377281A (zh) 2013-10-30
US8839243B2 (en) 2014-09-16

Similar Documents

Publication Publication Date Title
DE102013206172A1 (de) Beheben von Ressourcenüberlastung
DE112012000444B4 (de) Verfahren, System und Computerprogrammprodukt zum Ermitteln einer optimalen Datenverarbeitungsumgebung zum Ausführen eines Abbildes sowie Verfahren zum Implementieren eines entsprechenden Systems
EP3180695B1 (de) Systeme und verfahren zur automatischen skalierung eines grossdatensystem
DE112012000797B4 (de) Mehrfach-Modellierungsparadigma für eine Vorhersageanalytik
DE112011100143B4 (de) Optimieren der elektrischen Leistungsaufnahme in einem Rechenzentrum
DE112017006164T5 (de) Differenzvergleich von ausführbaren Datenflussdiagrammen
DE112011101633B4 (de) Virtualisierung und dynamische Ressourcenzuweisung berücksichtigendes Neuordnen von Speicherebenen
DE112020002213T5 (de) Ermittlung von Bildeffekten
DE112011100094T5 (de) Verfahren und System zum Abstrahieren eines auf nichtfunktionalen Anforderungen beruhenden Einsatzes von virtuellen Maschinen
DE112016003249T5 (de) Container-Bereitstellung auf Abhängigkeitsgrundlage
DE102017217968A1 (de) Generieren eines Verschiebungsprotokolls für virtuelle Maschinen
DE112012004999T5 (de) Beschleunigungselement zur Cloud-Bereitstellung
DE112018005011T5 (de) Ausführen eines kognitiven lern-workflows
DE112020007085T5 (de) Verfahren und vorrichtung für arbeitslast- rückkopplungsmechanismus, der eine geschlossener-regelkreis-architektur ermöglicht
DE112012003496T5 (de) Schnelles Bereitstellen von virtuellen Maschinen auf der Grundlage von mehrdimensionalen Benutzeranforderungsmustern in einer Cloud
DE102021109767A1 (de) Systeme und methoden zur vorausschauenden sicherheit
DE102019131291B4 (de) Gleichzeitige ausführung von dienstleistungen
DE102021109511A1 (de) Container-as-a- service (caas)-controller für die überwachung von clustern und die implementierung von autoscaling-richtlinien
US20100198776A1 (en) System and method for dependency and root cause discovery
DE112020002987T5 (de) Bereitstellen von mikrodiensten über eine dienstinfrastruktur hinweg
DE112017001376T5 (de) Erkennen und Vorhersagen von Engpässen in komplexen Systemen
DE112020003744T5 (de) Durch dienstqualitätskriterien vorgegebenes automatisiertes betriebsdatenmanagement
DE102021130957A1 (de) Empfehlungen zur stabilität von software-aktualisierungen
DE102012204167A1 (de) Vorauslaufende genäherte Berechnungen
DE112021005636T5 (de) Migrieren von komplexen legacy-anwendungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final