DE102016204680A1 - Auswählen von Strategien zum Zuordnen von Ressourcen und Lösen von Ressourcenkonflikten - Google Patents

Auswählen von Strategien zum Zuordnen von Ressourcen und Lösen von Ressourcenkonflikten Download PDF

Info

Publication number
DE102016204680A1
DE102016204680A1 DE102016204680.2A DE102016204680A DE102016204680A1 DE 102016204680 A1 DE102016204680 A1 DE 102016204680A1 DE 102016204680 A DE102016204680 A DE 102016204680A DE 102016204680 A1 DE102016204680 A1 DE 102016204680A1
Authority
DE
Germany
Prior art keywords
schedulers
resources
workload
scheduler
allocating
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
DE102016204680.2A
Other languages
English (en)
Inventor
Marcelo Amaral
Yurdaer N. Doganata
Iqbal I. Mohomed
Merve Unuvar
Asser N. Tantawi
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.)
Barcelona Supercomputing Center
International Business Machines Corp
Original Assignee
Barcelona Supercomputing Center
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 Barcelona Supercomputing Center, International Business Machines Corp filed Critical Barcelona Supercomputing Center
Publication of DE102016204680A1 publication Critical patent/DE102016204680A1/de
Pending 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/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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration

Abstract

Techniken zum Verwalten von Arbeitslasten in Cloud-Datenverarbeitungsinfrastrukturen werden bereitgestellt. Bei einem Aspekt wird ein Verfahren zum Zuordnen von Datenverarbeitungsressourcen in einem Datenzentrum-Cluster bereitgestellt. Das Verfahren beinhaltet die Schritte: Erzeugen mehrerer paralleler Scheduler; und automatisches Auswählen eines Verfahrens zum Zuordnen von Ressourcen für jeden der Scheduler anhand eines Arbeitslast-Profils und/oder Forderungen des Benutzers und/oder eines Zustands des Datenzentrum-Clusters, wobei ein optimistisches Verfahren zum Zuordnen von Ressourcen für wenigstens einen ersten oder mehrere der Scheduler ausgewählt wird und ein pessimistisches Verfahren zum Zuordnen von Ressourcen für wenigstens einen zweiten oder mehrere der Scheduler ausgewählt wird. Infolge des optimistischen Zuordnens von Ressourcen können Konflikte entstehen. Verfahren zum Lösen derartiger Konflikte werden außerdem bereitgestellt.

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf Cloud-Datenverarbeitungsinfrastrukturen und insbesondere auf Techniken zum Verwalten von Arbeitslasten in Cloud-Datenverarbeitungsinfrastrukturen unter Verwendung von parallelen Schedulern und automatisiertes Zuordnen von Ressourcen und einen Strategie-Selektor zur Konfliktlösung.
  • Hintergrund der Erfindung
  • Durch Cloud-Datenverarbeitungsinfrastrukturen wurde die Ausführung von gemischten Arbeitslasten in demselben Server vorangetrieben, indem sie eine bessere Ressourcennutzung und eine höhere Effektivität unterstützen. Es ist jedoch immer noch ein Problem, heterogene Arbeitslasten in demselben Cluster unterzubringen, z.B. wann sie zu planen sind, wo sie zu platzieren sind und wie ihre Ressourcen zuzuordnen sind. Außerdem wird bei bestimmten Arbeitslasten deren Ressourcennutzung bei Bedarf vergrößert, was die Problemlösung weiter erschwert.
  • Gegenwärtige Lösungen zur Cluster-Verwaltung können in drei Haupt-Scheduler-Architekturen klassifiziert werden: (1) Monolithisch, (2) Two-Level und (3) Shared-State. Monolithische Scheduler verwenden lediglich einen einzigen zentralisierten Scheduling-Algorithmus (Algorithmus der Zeitablaufsteuerung) für alle Jobs (Aufträge), wie beispielsweise ein High Performance Computing-(HPC-)Scheduler. Ein Two-Level-Scheduler enthält einen einzelnen aktiven Ressourcen-Manager, der Ressourcen mehreren parallelen unabhängigen Scheduler-Frameworks anbietet, die Ressourcen akzeptieren oder ablehnen. Siehe z.B. Hindman et al., "Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center," Tagungsberichte der 8. USENIX-Konferenz zu Entwurf und Umsetzung vernetzter Systeme (NSDI ’11), S. 295 bis 308 (März/April 2011). Shared-state-Architekturen enthalten mehrere parallele Scheduler, die in Form von Transaktionen auf die Cluster-Ressourcen gleichzeitig zugreifen. Siehe z.B. M. Schwarzkopf et al., "Omega: flexible, scalable schedulers for large compute clusters," Tagungsberichte der 8. Europäischen ACM-Konferenz zu Computersystemen (EuroSys ’13), S. 351 bis 364 (April, 2013) (nachfolgend “Schwarzkopf”). Es gibt nennenswerte Kompromisse zwischen diesen drei Scheduler-Architekturen. Ein monolithischer Scheduler besitzt beispielsweise die totale Kontrolle über den Cluster und könnte die beste globale Platzierung planen, er ist jedoch durch Hinzufügen einer neuen Strategie und einer spezifizierten Umsetzung schwer zu diversifizieren und könnte möglicherweise nicht auf die Cluster-Größe skaliert werden. Two-Level-Scheduler sind flexibler als monolithische Scheduler, da sie eine Scheduler-Parallelverarbeitung bereitstellen, sie vermindern jedoch die Sichtbarkeit von Ressourcen und bewirken, dass Entscheidungen, die auf einer ganzheitlichen Betrachtung der Cluster-Ressourcen beruhen, schwieriger auszuführen sind (wie beispielsweise Planen einer lokalen Platzierung für Arbeitslasten oder Ausführen von Arbeitslast-Migrationen anhand von Leistungsfähigkeit, Energieeffizienz und Sicherheit). Wenn Ressourcen für die Scheduler vorab zugeordnet werden, können darüber hinaus ungenutzte Ressourcen vergeudet werden. Shared-State hat die globale Übersicht über die Cluster-Ressourcen, um sämtliche ganzheitliche Entscheidungen zu treffen, und ist gut skalierbar. Ein Shared-State-Scheduler ist jedoch sehr anfällig auf Wettbewerb um Ressourcen, und es besteht keine Möglichkeit, für bestimmte Arbeitslasten eine Ressourcen-Zuordnung zu garantieren.
  • Gegenwärtig sind keine Techniken bekannt, die sämtliche Vorteile der oben genannten Architekturen kombinieren und die oben beschriebenen Nachteile beseitigen. Bei aktuellen Ansätzen werden sämtliche Ressourcen vorab zugeordnet wie bei dem monolithischen und dem Two-Level-Ansatz, oder sie konkurrieren um Ressourcen wie bei dem Shared-State-Ansatz.
  • Des Weiteren bringen komplexe Scheduler Probleme mit sich wie beispielsweise Skalierbarkeit, Wartungsfreundlichkeit und flexible Anpassung. Um sich diesem Problem zu widmen, ist bei dem Shared-State-Ansatz (siehe z.B. Schwarzkopf) nicht lediglich ein monolithischer Scheduler mit der gesamten Logikschaltung der Arbeitslast vorhanden, sondern der komplexe Scheduler wird in viele kleinere Scheduler unterteilt. Einerseits könnte dieser Shared-State-Ansatz nützlich sein, indem er eine globale Ansicht des Clusters für den Arbeitslast-Einsatz bereitstellt, um möglicherweise den besten globalen Einsatz auszuführen. Er könnte außerdem die Skalierbarkeit verbessern, indem er auf Arbeitslast-Anforderungen parallel reagiert, und er könnte die Reaktionszeit (infolge einer verminderten Komplexität) verringern. Wenn andererseits mehrere Scheduler gleichzeitig versuchen, dieselbe Ressource zu beanspruchen, wird lediglich eine erfolgreich sein, und die anderen müssen den Scheduling-Prozess wieder neu beginnen. Wenn Konflikte zu häufig auftreten, werden sich daher Scheduling-Dauer und Reaktionszeit vergrößern.
  • Bestimmte Techniken klassifizieren Arbeitslasten, erkennen Konflikte oder wählen allgemeine Strategien aus. Siehe z.B. J. Bobba et al., "Performance Pathologies in Hardware Transactional Memory," Tagungsberichte des 34. Internationalen Jahressymposiums zur Computer-Architektur (ISCA ’07), S. 81 bis 91 (Juni 2007); M.F. Spear et al., "Conflict Detection and Validation Strategies for Software Transactional Memory," Tagungsberichte der 20. Internationalen Konferenz zur Verteilten Datenverarbeitung (DISC ’06), S. 179 bis 193 (2006); bzw. C. Delimitrou et al., "Paragon: QoS-Aware Scheduling for Heterogeneous Datacenters," Tagungsberichte der 18. Internationalen Konferenz zur Architektur-Unterstützung für Programmiersprachen und Betriebssysteme (ASPLOS) (März 2013). Gegenwärtig gibt es jedoch kein Lösungskonzept, bei dem alle diese Faktoren gemeinsam berücksichtigt werden, um beruhend auf dem Zustand der Infrastruktur die Lösung von Arbeitslast-Konflikten zu verbessern oder zu automatisieren. Darüber hinaus werden bei gegenwärtigen Lösungskonzepten die spezifischen Möglichkeiten nicht berücksichtigt, die sich aus Arbeitslast-Kollisionen in einem Shared-State-Cluster ergeben, beispielsweise Anwendungs-Störungen, Server-Überlastung usw.
  • Des Weiteren wird bei den meisten gegenwärtigen Lösungskonzepten zur Konflikterkennung und Strategieauswahl lineares Programmieren verwendet, bei dem ein umfangreicher Datensatz für Vorhersagen oder maschinelles Lernen erforderlich ist, das auf einer enormen Datenmenge für die Testphase beruht, wobei keine der Möglichkeiten für praxistaugliche Anwendungen infrage kommt. Außerdem sind die meisten gegenwärtigen Techniken zur Konflikterkennung und Strategieauswahl bei fehlenden Einträgen nicht geeignet. In dieser Hinsicht gibt es einige Ansätze, die Algorithmen der Matrix-Faktorzerlegung zur Klassifizierung und eine Funktion der logarithmischen Wahrscheinlichkeit kombinieren, um Vorhersagen für fehlende Einträge auszufüllen. Bei diesen Ansätzen wird jedoch keine Strategie zur Konfliktlösung ausgewählt, die auf einer Arbeitslast-Klassifizierung in Bezug auf Intensität der Ressourcennutzung der Zentraleinheit (CPU), des Speichers, des Netzwerks, des Plattenspeichers; Arbeitslast-Ausführungsdauer; und Erkennen von möglichen nicht-deterministischen und deterministischen Konflikten beruht.
  • Demzufolge sind verbesserte Techniken zum Verwalten von Arbeitslasten bei Datenzentrum-Clustern, darunter verbesserte Techniken zur Konflikterkennung und Strategieauswahl, erwünscht.
  • Zusammenfassung der Erfindung
  • Die vorliegende Erfindung stellt Techniken zum Verwalten von Arbeitslasten bei Cloud-Datenverarbeitungsinfrastrukturen bereit. Bei einem Aspekt der Erfindung wird ein Verfahren zum Zuordnen von Datenverarbeitungsressourcen in einem Datenzentrum-Cluster bereitgestellt. Das Verfahren beinhaltet die Schritte: Erzeugen mehrerer paralleler Scheduler; und automatisches Auswählen eines Verfahrens zum Zuordnen von Ressourcen für jeden der Scheduler anhand eines oder mehrerer Arbeitslast-Profile, Forderungen des Benutzers und eines Zustands des Datenzentrum-Clusters, wobei ein optimistisches Verfahren zum Zuordnen von Ressourcen für wenigstens einen ersten oder mehrere der Scheduler ausgewählt wird und ein pessimistisches Verfahren zum Zuordnen von Ressourcen für wenigstens einen zweiten oder mehrere der Scheduler ausgewählt wird.
  • Bei einem anderen Aspekt der Erfindung wird ein weiteres Verfahren zum Zuordnen von Datenverarbeitungsressourcen in einem Datenzentrum-Cluster bereitgestellt. Das Verfahren beinhaltet die Schritte: Erzeugen mehrerer paralleler Scheduler; und automatisches Auswählen eines Verfahrens zum Zuordnen von Ressourcen für jeden der Scheduler anhand eines oder mehrerer Arbeitslast-Profile, Forderungen des Benutzers und eines Zustands des Datenzentrum-Clusters, wobei ein optimistisches Verfahren zum Zuordnen von Ressourcen für wenigstens einen ersten oder mehrere der Scheduler ausgewählt wird und ein pessimistisches Verfahren zum Zuordnen von Ressourcen für wenigstens einen zweiten oder mehrere der Scheduler ausgewählt wird; Empfangen neuer Arbeitslasten; Klassifizieren der neuen Arbeitslasten; anhand des Klassifizierens der neuen Arbeitslasten Festlegen, ob i) die neuen Arbeitslasten einem vorhandenen Scheduler zugewiesen werden oder ii) ein oder mehrere neue Scheduler erzeugt werden und die neuen Arbeitslasten dem einen oder den mehreren neuen Schedulern zugewiesen werden; Identifizieren von Konflikten in Scheduler-Entscheidungen; und Auswählen von Lösungsstrategien für die Konflikte.
  • Ein vollständigeres Verständnis der vorliegenden Erfindung sowie weiterer Merkmale und Vorteile der vorliegenden Erfindung wird durch Bezugnahme auf die nachfolgende genaue Beschreibung und die Zeichnungen erhalten.
  • Kurzbeschreibung der Zeichnungen
  • 1 ist ein schematisches Schaubild, das eine beispielhafte Verfahrensweise zum Zuordnen von Datenverarbeitungsressourcen in einem Datenzentrum-Cluster unter Verwendung eines Selektors zum automatischen Zuordnen von Ressourcen gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 2 ist ein Schaubild, das eine beispielhafte Umsetzung des Selektors zum automatischen Zuordnen von Ressourcen gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 3 ist ein Schaubild, das mögliche Typen des Zuordnens von Ressourcen für Scheduler gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 4A ist ein Schaubild, das veranschaulicht, wie eine Dienstgüte (quality-of-service, QoS) für einen vorgegebenen Arbeitslast-Typ verbessert werden kann, indem die Anzahl von Schedulern gemäß einer Ausführungsform der vorliegenden Erfindung vergrößert wird;
  • 4B ist ein Schaubild, das veranschaulicht, wie die Leistungsfähigkeit eines Datenzentrums für einen vorgegebenen Arbeitslast-Typ verbessert werden kann, indem die Anzahl von Schedulern gemäß einer Ausführungsform der vorliegenden Erfindung vergrößert wird;
  • 5 ist ein Schaubild, das eine beispielhafte Verfahrensweise zum automatischen Auswählen von Konfliktlösungsstrategien bei einem optimistischen parallelen Arbeitslast-Einsatz gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht; und
  • 6 ist ein Schaubild, das eine beispielhafte Vorrichtung zum Ausführen einer oder mehrerer der hier dargestellten Verfahrensweisen gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
  • Genaue Beschreibung bevorzugter Ausführungsformen
  • Es werden hier Techniken zum automatischen Auswählen eines optimistischen oder eines pessimistischen Verfahrens zum Zuordnen von Ressourcen für parallele Scheduler anhand eines Arbeitslastprofils, Forderungen des Benutzers und Datenzentrum-Zuständen bereitgestellt (d.h., die vorliegenden Techniken können zum Verwalten der Zustände mehrerer Datenzentren verwendet werden). Die vorliegenden Techniken garantieren insbesondere eine pessimistische, vollständige Vorab-Zuordnung von Ressourcen, eine halbpessimistische, teilweise Vorab-Zuordnung von Ressourcen oder eine optimistische, Zuordnung von Ressourcen ohne Vorab-Zuordnung, wobei Vorab-Zuordnung Blockieren der Ressourcen bedeutet (d.h. Halten der Ressourcen, um in der Lage zu sein, die Ressourcen einer Arbeitslast zuzuweisen). Um die Ressourcen, die in der Zuordnungsphase nicht vorab zugeordnet werden (d.h. infolge eines optimistischen Zuordnens von Ressourcen), kann zum Zeitpunkt der Festlegung ein Bewerben stattfinden, da parallele Scheduler vorhanden sind, die sich möglicherwiese untereinander um dieselben Ressourcen bewerben. Der Wettbewerb um Ressourcen kann, nachdem er erkannt wurde, anhand einer Strategie und von hier bereitgestellten Techniken zum Lösen von Konflikten, die auftreten können, gelöst werden. Der Benutzer kann optional von optimistischem zum halbpessimistischen oder aber zum pessimistischen Zuordnen von Ressourcen anhand der Leistungsfähigkeit oder des Zustands des Datenzentrums umschalten. Außerdem verbessern die vorliegenden Techniken die Ressourcennutzung, da sämtliche Scheduler nicht vorab zugeordnet werden müssen (und dadurch ein Blockieren freier Ressourcen verhindert wird). Die vorliegenden Techniken können auf das Zuordnen von Mehrfach/Hybrid-Cloud-Ressourcen erweitert werden.
  • Auf der Grundlage der Umsetzung paralleler Scheduler können die vorliegenden Techniken die Vorteile von Architekturen mit monolithischen, Two-Level- und Shared-State-Schedulern wirksam einsetzen, wobei sie ihre oben beschriebenen Nachteile nicht enthalten. Die Erfindung beruht insbesondere auf einem Hybrid-Verfahren, das beinhalten könnte: Scheduler, die bei einem pessimistischen Ansatz sämtliche Ressourcen vorab zuordnet; Scheduler, die bei einem halbpessimistischen Ansatz einen Teil der Ressourcen vorab zuordnen; und/oder Scheduler, die bei einem optimistischen Ansatz die Ressourcen untereinander gemeinsam nutzen. Vorab-Zuordnen bedeutet Reservieren der Ressourcen. Der Typ des Zuordnens von Ressourcen durch den Scheduler kann gemäß Arbeitslast-Profil, Forderungen des Benutzers und/oder Datenzentrum-Zuständen untereinander austauschbar sein. Die Entscheidung zum Auswählen eines oder eines anderen Typs des Zuordnens von Ressourcen durch den Scheduler kann darauf beruhen, welche Garantie der Ressourcenzuordnung und welche Scheduler-Skalierfähigkeit bereitgestellt werden (beispielsweise anhand der Flexibilität des Schedulers, unterschiedliche Anforderungen zu berücksichtigen und diese Anforderungen einhalten zu können). Durch die Entscheidung anhand des Arbeitslast-Profils wird ein Zuordnen von Ressourcen für eine bestimmte Klasse von Arbeitslasten sichergestellt. Durch die Entscheidung anhand von Forderungen des Benutzers wird ein Zuordnen von Ressourcen gemäß der Dienstgütevereinbarung (SLA) sichergestellt. Durch die Entscheidung anhand des Datenzentrum-Zustands wird das Wettbewerb-Problem der Scheduler bei einem Mangel an Ressourcen beseitigt. Außerdem verbessern die vorliegenden Techniken die Ressourcennutzung, indem nicht zugelassen wird, dass sämtliche Scheduler die Ressourcen vorab zuordnen, wodurch ein Blockieren einer freien Ressource vermindert wird.
  • Zu einigen bemerkenswerten Vorteilen der vorliegenden Lehren gehören 1) automatisches Erzeugen von Scheduler-Instanzen mit pessimistischem, vollständigen Vorab-Zuordnen von Ressourcen, halbpessimistischem, teilweisen Vorab-Zuordnen von Ressourcen oder optimistischem Zuordnen von Ressourcen ohne Vorab-Zuordnung; 2) adaptives Auswählen des Typs des Zuordnens von Ressourcen anhand Arbeitslast-Profil, Forderungen des Benutzers und Zustand von Datenzentrum/Cluster; 3) dynamisches Umschalten von optimistischem zu halbpessimistischem Zuordnen von Ressourcen anhand i) einer Benutzer-Entscheidung (manuell oder automatisch – d.h., wie in einer Benutzeranforderung festgelegt) und/oder ii) einer Änderung des Datenzentrum-Zustands; und 4) Erweitern auf mehrere Clouds/Hybrid-Verfahren mit derselben Logikschaltung, um nur einige Beispiele zu nennen.
  • Somit kann gemäß den vorliegenden Techniken eine Skalierbarkeit des Datenzentrums durch die Verwendung mehrerer paralleler Scheduler erreicht werden. Ein garantiertes Zuordnen von Ressourcen ist für eine vorgegebene Menge von Schedulern möglich. Manuelle oder automatisierte Auswahl von pessimistischem, halbpessimistischem oder optimistischem Zuordnen von Ressourcen ist möglich. Zudem wird ein Vergeuden von Ressourcen auf ein Mindestmaß beschränkt, das auftritt, wenn Scheduler freie Ressourcen zurückhalten. Im Vergleich dazu werden bei herkömmlichen Lösungen zum Zuordnen von Cluster-Ressourcen entweder alle Ressourcen für Scheduler vorab zugeordnet oder es werden gar keine Ressourcen für Scheduler zugeordnet. Darüber hinaus können die Scheduler, die Ressourcen nicht vorab zuordnen, ein Zuordnen von Ressourcen nicht garantieren. Schließlich gibt es keine Möglichkeit, von pessimistischem zu halbpessimistischem oder optimistischem Zuordnen von Ressourcen für Scheduler umzuschalten.
  • Eine genaue Beschreibung der vorliegenden Techniken wird im Folgenden bereitgestellt. Wie oben hervorgehoben beruhen die vorliegenden Techniken zum Zuordnen von Ressourcen auf einem Hybrid-Verfahren, das (mehrere parallele) Scheduler bei pessimistischen, halbpessimistischen oder optimistischen Ansätzen zum Zuordnen von Ressourcen enthält. Bei dem pessimistischen Ansatz werden sämtliche Ressourcen vorab zugeordnet, um den Einsatz zu garantieren. Bei dem halbpessimistischen Ansatz wird lediglich ein Teil der Ressourcen vorab zugeordnet, so dass eine Verfügbarkeit von nur einem Teil der Ressourcen sichergestellt werden kann. Bei dem optimistischen Ansatz werden keine Ressourcen vorab zugeordnet, und die Ressourcen werden erst zum Zeitpunkt der Festlegung der Transaktion zugeordnet. Die Entscheidung, welcher von diesen Ansätzen ausgewählt wird, könnte durch Analysieren einer Arbeitslast-Klasse, der Benutzer-SLA und/oder des Datenzentrum-Zustands getroffen werden. Beispielsweise könnten einerseits Arbeitslasten oder Benutzer Priorität besitzen, und für diese Arbeitslasten/Benutzer werden Scheduler vorzugsweise stets Ressourcen vorab zuordnen. Mit Priorität ist beispielsweise gemeint, dass einige Arbeitslasten (mit hoher Priorität) möglicherweise eine geringere Toleranz in Bezug auf Latenzzeit aufweisen und es somit erforderlich ist, dass sie vor anderen Arbeitslasten mit geringerer Priorität platziert werden, die gleichzeitig mit der Arbeitslast mit hoher Priorität oder vor dieser eingetroffen sind. Andererseits könnten durch Prozesse der Vorab-Zuordnung von Ressourcen Verzögerungen auftreten, und ein optimistischer paralleler Ansatz könnte eine schnelle Zuordnung bewirken, was weniger Konflikte zur Folge hat. Vorab-Zuordnung, teilweise Vorab-Zuordnung und nachträgliche Zuordnung könnten gemäß den Benutzer- und Arbeitslast-Zielstellungen und dem Datenzentrum-Zustand anhand des Fehlens von oder des Mangels an Ressourcen untereinander austauschbar sein. Wie oben hervorgehoben bringt Vorab-Zuordnen Reservieren von Ressourcen mit sich, bevor ein Platzieren erfolgt, wodurch garantiert wird, dass diese Ressourcen an die Anforderungen vergeben werden. Beim nachträglichen Zuordnen sind die Ressourcen, bei denen sich der Scheduler für ein Verwenden entscheidet, nicht garantiert, was bedeutet, dass sie möglicherweise von anderen Anforderungen verwendet werden, während der Scheduler die Entscheidung trifft.
  • Die Verfahrensweise 100 von 1 stellt einen schematischen Überblick der vorliegenden Techniken für eine beispielhafte Ausführungsform bereit, die eine Datenzentrum-Cloud beinhaltet. Eine Benutzereingabe wird im Schritt 102 bereitgestellt. Gemäß einer beispielhaften Ausführungsform kann ein Benutzer im Schritt 102 eine Eingabe bezüglich Forderungen des Benutzers (wie beispielsweise Dienstgüte (QoS)), Arbeitslast-Profil (z.B. Arbeitslast-Typ, welche Arbeitslasten Priorität erhalten sollten, usw.) bereitstellen. Jede geeignete QoS-Angabe, die in der Technik zum Bewerten einer Arbeitslast-Leistungsfähigkeit (d.h. aus Sicht des Benutzers) bekannt ist, kann gemäß den vorliegenden Techniken verwendet werden.
  • Die Benutzer-Eingabedaten werden einem automatischen Selektor zum Zuordnen von Ressourcen bereitgestellt. Wie oben angegeben berücksichtigen die vorliegenden Techniken zum Zuordnen von Ressourcen außerdem den Zustand des Datenzentrums. Daher werden im Schritt 104 außerdem Überwachungsdaten der Leistungsfähigkeit des Datenzentrums dem automatischen Selektor des Zuordnens von Ressourcen bereitgestellt. Beim Überwachen der Leistungsfähigkeit des Datenzentrums werden Daten in Bezug auf den Zustand des Datenzentrums wie beispielsweise CPU-Nutzung, Speichernutzung usw. gesammelt. Das Überwachen kann über eine Überwachungseinheit der Leistungsfähigkeit des Datenzentrums erfolgen. Die Überwachungseinheit der Leistungsfähigkeit des Datenzentrums kann diese Angaben zu einem Selektor des Typs des Zuordnens von Ressourcen leiten, wo die Scheduling-Entscheidung getroffen wird. Siehe z.B. die Überwachungseinheit 218 der Leistungsfähigkeit des Datenzentrums und den Selektor 206 des Typs des Zuordnens von Ressourcen in 2, die nachfolgend beschrieben wird. Eine Möglichkeit zum Bewerten dieser Daten besteht darin, Bedingungen für den Nutzungsgrad zuzuweisen, damit der Ressourcen-Manager Aktionen unternehmen kann. Wenn z.B. die CPU-Nutzung unter einen Wert von x % fällt, kann der Scheduler ein optimistischeres Scheduling ausführen, um eine größere Anzahl von Anforderungen den Ressourcen schneller zuzuweisen.
  • Im Schritt 106 legt der Selektor des Typs des Zuordnens von Ressourcen die Anzahl von Schedulern und ihre Einrichtung automatisch fest. Gemäß einer beispielhaften Ausführungsform wählt der Selektor des Typs des Zuordnens von Ressourcen insbesondere ein Verfahren zum Zuordnen von Ressourcen (optimistisch, pessimistisch oder halbpessimistisch) für jeden der (mehreren parallelen) Scheduler (anhand der Daten, die im Schritt 102 und im Schritt 104 gesammelt werden) automatisch aus.
  • 2 ist ein logischer Ablaufplan, der veranschaulicht, wie der automatische Selektor des Zuordnens von Ressourcen gemäß einer beispielhaften Ausführungsform wirkt. Wie in 2 gezeigt klassifiziert ein Arbeitslast-Klassifizierer 204 eine neue Arbeitslast 202. Wie oben beschrieben berücksichtigt der vorliegende Prozess des Zuordnens von Ressourcen eine Benutzereingabe 201 (sowie den Zustand des Datenzentrums, der beispielsweise durch Überwachen der Leistungsfähigkeit des Datenzentrums ermittelt wird). Anhand der Arbeitslast-Klassifizierung vom Arbeitslast-Klassifizierer 204 legt ein Selektor 206 des Typs des Zuordnens von Ressourcen die Anzahl von Schedulern und deren Einrichtung fest. Das beinhaltet Entscheiden, ob neue Scheduler hinzugefügt werden müssen und/oder vorhandene Scheduler entfernt werden müssen und welches Modell des Zuordnens von Ressourcen zu verwenden ist. Beispielhafte Funktionsmodelle und regelgestützte Mechanismen, die für diesen Zweck umgesetzt werden können, werden nachfolgend beschrieben. Eine weitere Möglichkeit zum Lösen dieses Problems, die vorstellbar ist, kann im Verwenden eines Algorithmus zum maschinellen Lernen zum Auswählen des Typs des Zuordnens von Ressourcen bestehen.
  • Die Ressourcen werden anschließend dementsprechend den Schedulern zugeordnet – über eine Einrichtung 208 zum pessimistischen Zuordnen von Ressourcen, eine Einrichtung 210 zum halbpessimistischen Zuordnen von Ressourcen und eine Einrichtung 212 zum optimistischen Zuordnen von Ressourcen. Die Scheduler, die vorab zugeordnete Ressourcen enthalten (d.h. die Scheduler mit pessimistischen Typen des Zuordnens von Ressourcen), werden keine Konflikte und deshalb keine Probleme beim Festlegen der Entscheidungen aufweisen. Andererseits nehmen die Scheduler, die keine vorab zugeordneten Ressourcen enthalten, oder wenigstens ein Teil von ihnen (d.h. die Scheduler mit optimistischen bzw. halb-pessimistischen Typen des Zuordnens von Ressourcen) eine Momentaufnahme der gegenwärtig verfügbaren Ressourcen auf und planen anhand dieser die Entscheidungen. Nachdem die Entscheidung getroffen wurde, versuchen die Scheduler (d.h. über eine Einrichtung 214 zum Versuchen des Zuordnens von Ressourcen) die Entscheidung in Abhängigkeit von Wettbewerbsbedingungen zwischen den anderen gleichzeitigen Schedulern durchzusetzen. Wie in 2 gezeigt kann das einen Konflikt zur Folge haben. Wenn ein Konflikt erkannt wird (d.h. über einen Konflikt-Identifizierer 216), werden der Konflikt und seine Charakteristiken in dem Datenzentrum-Zustand gespeichert (d.h. über die Überwachungseinheit 218 der Leistungsfähigkeit des Datenzentrums). Wie oben angegeben sammelt die Überwachungseinheit der Leistungsfähigkeit des Datenzentrums Daten bezüglich des Zustands des Datenzentrums wie beispielsweise CPU-Nutzung, Speichernutzung usw., die er zu dem Selektor des Typs des Zuordnens von Ressourcen leitet, wo die Scheduling-Entscheidung erfolgt.
  • 3 ist eine Darstellung, die die möglichen Typen des Zuordnens von Ressourcen für Scheduler (S1, Si, ..., Sn) veranschaulicht. In 3 werden die folgenden Annahmen gemacht:
    • – R ist die Menge aller Datenzentrum-Ressourcen;
    • – Ai ist die vorab zugeordnete Ressource eines Schedulersi, wobei i 0 bis n Scheduler darstellt;
    • – Bi ist die nachträglich zugeordnete Ressource eines Schedulersi, wobei i 0 bis n Scheduler darstellt;
    • – ∩ n / i=1 Ai = 0;
    • – Ai ⊆ Bi;
    • – U n / i=1 Ai ⊆ R; und
    • – U n / i=1 Bi ⊆ R.
  • Wenn der Datenzentrum-Cluster einen monolithischen Scheduler enthält, gilt i = 1 und Ai = Bi = R. Wenn der Datenzentrum-Cluster mehrere Scheduler enthält, bei denen sämtliche Ressourcen vorab zugeordnet werden (pessimistisch), gilt U n / i=1 Ai = R und Bi = Ai. Wenn bei dem Scheduler lediglich ein Teil der Ressourcen vorab zugeordnet wird (halbpessimistisch), gilt Ai < Bi. Wenn schließlich der Scheduler keine vorab zugeordneten Ressourcen enthält (optimistisch), gilt Ai = 0. Wenn ein Scheduler erzeugt wird, sind Ai und Bi entsprechend Arbeitslast-Profil, Forderungen des Benutzers und Zustand des Datenzentrum-Cluster definiert. Die Größe von Ai und Bi könnte sich außerdem anhand von Benutzer-Entscheidungen oder einer Rückmeldung (z.B. bezüglich der Leistungsfähigkeit des Datenzentrums) von dem Datenzentrum-Cluster ändern. Wenn sich Ai ändert, enthält der Scheduler mehr oder weniger vorab zugeordnete Ressourcen, und wenn sich Bi ändert, bewirbt sich der Scheduler in stärkerem oder geringerem Maße um Ressourcen.
  • Wie oben hervorgehoben könnten sich die Forderungen des Benutzers auf Angaben beziehen, die auf einem üblichen QoS-Maß für die Arbeitslast-Leistungsfähigkeit beruhen, das in der Technik bekannt ist. Siehe beispielsweise US-Patentanmeldung Nr. 2015/0012634 durch Zhu et al. mit dem Titel “Performance Interference Model for Managing Consolidated Workloads in Qos-Aware Clouds” (die eine geeignete auf der Zeit beruhende QoS-Angabe beschreibt). Die Forderungen des Benutzers könnten sich außerdem auf Angaben beziehen, die auf der Anzahl von stornierten Scheduler-Entscheidungen, dem Datendurchsatz von Schedulern (d.h. dem Durchsatz wie beispielsweise die Anzahl von Informationsbits, die pro Zeiteinheit an ein Ziel geliefert werden), der Dauer des Einsetzens der Arbeitslast, der Anzahl von Schedulern usw. beruhen. Das Arbeitslast-Profil beschreibt diese Angaben plus spezifischere Angaben, die beruhen auf: Prioritätsangaben, Umfang von geforderten garantierten Ressourcen, Umfang einer flexiblen Ressourcenzuordnung (ein Teil der Arbeitslast könnte anderweitig verwendet werden) usw. Die Maßzahlen des Datenzentrum-Zustands beziehen sich auf: die Anzahl von stornierten Scheduler-Entscheidungen, die Anzahl von verfügbaren Ressourcen, die Ressourcen-Nutzung als Funktion von vorab zugeordneten Ressourcen usw. Die Anzahl von Schedulern ist eine gute Möglichkeit zum Steuern des Datendurchsatzes: je mehr Scheduler vorhanden sind, desto mehr Anforderungen werden pro Zeiteinheit verarbeitet (Durchsatz), Konflikte können jedoch bewirken, dass einige Anforderungen fehlschlagen, deshalb kann der Datendurchsatz abfallen. Einige Benutzer könnten die Anzahl von Schedulern angeben, die der Cloud-Anbieter verwenden soll, damit sich der Durchsatz vergrößert.
  • Alle diese Maßzahlen werden (z.B. durch den Selektor 206 des Typs des Zuordnens von Ressourcen – siehe 2) verwendet, um bei einem Scheduler über ein pessimistisches, halbpessimistisches oder optimistisches Zuordnen von Ressourcen zu entscheiden. Außerdem werden die Angaben verwendet, um den Grad der Skalierbarkeit durch Erzeugen neuer paralleler Scheduler zu definieren. Diese Entscheidungen beruhen auf Kompromissen zwischen Scheduler-Skalierbarkeit, Scheduler-Leistungsfähigkeit, garantiertem Zuordnen von Ressourcen von Schedulern und Ressourcen-Nutzung des Clusters. Eine Skalierbarkeit bezieht sich insbesondere darauf, dass mehr parallele Scheduler vorhanden sind. Eine Scheduler-Leistungsfähigkeit bezieht sich auf die Scheduler-Reaktionszeit, stornierte Entscheidungen und globale Betrachtung der Ressourcen, um den Einsatz besser zu planen. Ein garantiertes Zuordnen von Ressourcen von Schedulern bezieht sich direkt auf eine Ressourcennutzung von Datenzentren. Insbesondere kann ein Scheduler Ressourcen vergeuden, indem lediglich wenige der Ressourcen in einem vorab zugeordneten Pool verwendet werden, wodurch die beste Cluster-Nutzung verhindert wird. Da einige Scheduler Ressourcen vergeuden, kann der Cluster nicht wie gefordert skaliert werden. Die gemeinsam genutzte Ressource könnte dieses Problem lösen, es sind jedoch die Probleme des Wettbewerbs um Ressourcen vorhanden. Somit wird durch diese Kompromisse der Typ des Zuordnens von Ressourcen des Schedulers definiert. Unter Verwendung dieser Kompromisse kann beispielsweise eine optimierte Lösung als ein Funktionsmodell definiert werden. Eine beispielhafte optimierte Lösung, die unter Verwendung eines Funktionsmodells festgelegt wurde, wird nachfolgend angegeben.
  • Wie oben angegeben können möglicherweise Funktionsmodelle und/oder auf Regeln beruhende Mechanismen zum Entscheiden verwendet werden, ob neue Scheduler hinzugefügt werden müssen und/oder vorhandene Scheduler entfernt werden müssen und welches Modell der Ressourcenzuordnung zu verwenden ist. Ein beispielhaftes Funktionsmodell und auf Regeln beruhende Mechanismen werden nachfolgend beschrieben.
  • Funktionsmodell: der Benutzer beginnt mit einer Menge von Anforderungen zusammen mit Arbeitslast-Charakteristiken, die er durch Betrachten des Systemzustands erhält. Die vorliegenden Techniken entscheiden über die Größe von n, B und A.
    Benutzer-Parameter (QoS, Arbeitslast, usw.) -> Anforderungen
    QoS (gewünschte Anzahl von Rückweisungen, Menge der Konflikte, usw.)
    Arbeitslast (Anzahl virtueller Maschinen (vms), Beschränkungen, Abruf, usw.)
    Parameter des Datenzentrums (Lage des Datenzentrums (ID), Anzahl freier Maschinen, Anzahl von Konflikten)
    Parameter des Zuordnens von Ressourcen (A, B, n)
    F (Benutzer, Datenzentrum, Parameter des Zuordnens von Ressourcen) = Hauptzielsetzung
    Hauptzielsetzung = Gewichtung 1·Benutzer-Zielsetzung (obj) + Gewichtung 2·Datenzentrum-Zielsetzung (obj)
    Benutzer-Zielsetzung = normiert (SLA definiert, QoS usw.)
    Datenzentrum-Zielsetzung = normiert (starke Maschinennutzung, usw.)
    Für einen vorgegebenen Wert der Hauptzielsetzung können Benutzer-Parameter, Datenzentrum-Parameter und gewünschte Parameter des Zuordnens von Ressourcen aus der Funktion F abgeleitet werden.
  • Beispiel: Ein Benutzer könnte einen Wert QoS spezifizieren, so dass weniger als 10 % Konflikte auftreten und eine speicherintensive Arbeitslast mit einer Menge von Transaktionen vorhanden ist. Das Datenzentrum kann sich in einem Zustand befinden, bei dem 3 parallele Scheduler des Typs Shared-State mit A = B vorhanden sind, somit gilt A_i = B_i, wobei i = 1, 2, 3. Das Datenzentrum hat beispielsweise 40% freie Maschinen (vms), wenn die neue Anforderung eintrifft.
    F (0,1, Speicher, viele Transaktionen, 0,4, (A_i = B_i, n = 3)) = gewünschter Zielwert Benutzer-Zielsetzung = 1 – Konflikte = 1 – 0,1 = 0,9
    Datenzentrum-Zielsetzung = keine
    Gewünschte Zielsetzung = 0,9, somit
    F (0,1, Speicher, viele Transaktionen, 0,4, (A_i = B_i, n = ?)) = 0,9
    Löse F für (A_i = B_i, n = ?)), und finde die Werte A_i, B_i und n.
  • Gemäß den vorliegenden Techniken können somit die Werte A_i, B_i und n leicht ermittelt und optimistisch, pessimistisch und halbpessimistisch mit den Teilmengen von A, B und n definiert werden. Auf Regeln beruhendes Modell: Dabei handelt es sich um ein einfacheres Modell, bei dem Regeln in Bezug auf Benutzer-QoS, Arbeitslast-Typen und Datenzentrum-Zustand definiert sind. Wenn beispielsweise ein Benutzer einen geringen Wert QoS in Bezug auf die Menge der Konflikte erkennt, kann er die Anzahl von Schedulern verkleinern und A = B einstellen. Wenn bei einem Datenzentrum eine geringe Leistungsfähigkeit auftritt, können die Anzahl von Schedulern vergrößert und A < B eingestellt werden. Die 4A und 4B zeigen diese Verhaltensweisen jeweils für einen Arbeitslast-Typ.
  • Wie oben angegeben klassifiziert der vorliegende automatische Selektor zum Zuordnen von Ressourcen neue Arbeitslasten (d.h. über den Arbeitslast-Klassifizierer 204, siehe 2), identifiziert Konflikte für vorab zugeordnete Ressourcen im Fall von halbpessimistischem oder optimistischem Zuordnen von Ressourcen (d.h. über den Konflikt-Identifizierer 216) und richtet eine Konfliktlösung zum Lösen der Konflikte ein. Im Folgenden werden Techniken zum automatischen Klassifizieren von Arbeitslast-Engstellen, Identifizieren von Konflikten zwischen Scheduler-Entscheidungen und Auswählen einer Strategie zum Lösen dieser Konflikte beschrieben.
  • In den Phasen Arbeitslast-Klassifizierung, Konflikt-Identifizierung und Lösungsstrategie-Auswahl werden verschiedene Typen von Konflikten, Arbeitslast-Charakteristiken und Infrastruktur-Informationen betrachtet. Gemäß den vorliegenden Techniken sind diese Phasen so eingerichtet, dass sie eine Konfliktlösungsstrategie empfehlen, die die Forderungen des Benutzers am besten erfüllen und die stornierten Entscheidungen der Scheduler verringern, und somit den Datendurchsatz verbessern. Die vorliegenden Techniken stellen nicht nur einen Prozess zur Auswahl einer Konfliktlösungsstrategie bereit, sondern beschreiben ausführlich Verfahren zum Extrahieren von Angaben aus der Infrastruktur wie beispielsweise die Anzahl von stornierten Entscheidungen, die Zuordnungs-Reaktionszeit und Arbeitslast-Dienstgüte (QoS), um den Lern-Mechanismus zu versorgen. Außerdem werden hier Aktionen zur Konfliktlösung vorgeschlagen, wobei Arbeitslast-Migration und Ressourcen-Verzicht betrachtet werden, wodurch viele mögliche Strategien bereitgestellt werden.
  • Zum Ausführen jeder Phase (Klassifizierung, Identifizierung und Strategieauswahl) werden bei den vorliegenden Techniken auf Speichern und/oder auf Modellen beruhende kooperative Filter-Algorithmen eingesetzt, um geringe Anzahlen von Eingaben zu verarbeiten und als Klassifizierung, Kollision/Konflikt-Identifizierung und Strategieauswahl zu empfehlen. Wie nachfolgend genau beschrieben werden bei jeder dieser Phasen spezielle Matrizen verwendet. Im Allgemeinen beinhaltet beispielsweise die Phase Klassifizierung mehrere technische Matrizen, die Arbeitslast-Profile als Zeilen und CPU, Netzwerk, Speicher oder Speicherplatten als Spalten sowie Einträge wie Bewertung der Intensität der Ressourcennutzung enthalten.
  • Die Phase Identifizierung setzt sich aus mehreren Matrizen zusammen, wobei die Zeilen Kombinationen von Scheduler-Entscheidungen darstellen und die Spalten zwischen den verschiedenen erwähnten Attributen (d.h. CPU, Netzwerk, Speicher oder Plattenspeicher) und Zuständen des Datenzentrum-Clusters variieren. Bei den Einträgen der Matrix mit CPU, Netzwerk, Speicher oder Plattenspeicher als Spalten handelt es sich um Bewertungen der Störung der Arbeitslast-Leistungsfähigkeit. Eine der Matrizen besteht aus Zuständen des Datenzentrum-Clusters und enthält als Einträge Server-Überlastung, wobei es sich dabei um das Verhältnis von Arbeitslast-Ressourcenzuordnung und für den Server verfügbare Ressourcen handelt. Die andere Matrix mit den Zuständen des Datenzentrum-Clusters als Spalten enthält Einträge wie fehlende Ressourcen, wobei die Einträge 1 sind, wenn der Server für die Arbeitslast geeignet ist, andernfalls sind sie 0.
  • In der Phase Strategieauswahl gibt es schließlich zwei Matrizen mit den Zeilen als im Konflikt stehende Scheduler-Entscheidung plus die verzögerten Entscheidungen (wegen der angewandten Strategie), den Spalten als Typ der Strategielösung und Einträgen als Bewertung der Arbeitslast-Stornierung oder Arbeitslast-Leistungsfähigkeit. Anfangs könnten lediglich wenige Einträge in jeder Matrix eingetragen sein. Ein Wahrscheinlichkeits-Algorithmus wird verwendet, um die fehlenden Einträge in allen Spalten der Gebrauchsmatrix als Ergebnis einer Matrix-Faktorzerlegung auszufüllen. Die anfänglichen Einträge können von einem Spezialisten bereitgestellt werden oder von dem Arbeitslast-Profil mit optionalen Parametern, die von fachkundigen Benutzern oder unter Verwendung von Offline-Simulationen und/oder Zufallswerten bereitgestellt werden. Die Option des Verwendens von Zufallswerten ist vorhanden, da selbst beim Fehlen von Experten- oder Simulationsdaten wenigstens ein Wert erforderlich ist, um kollaboratives Filtern auszuführen. Außerdem kann der Administrator unter Verwendung von Gebrauchsfunktionen für jede Charakteristik die Werte bereitstellen, die das Ergebnis zwischen einer maximalen und einer minimalen Bewertung normieren. Schließlich werden bestimmte Einträge bereitgestellt und mit Parametern aktualisiert, die bei einem oder mehreren früheren Einsätzen unter Verwendung eines dynamischen Mechanismus des selbsttätigen Lernens gesammelt wurden.
  • Zu einigen bemerkenswerten Vorteilen der vorliegenden Lehren gehören lediglich beispielhaft: 1) das automatische Auswählen von Konfliktbewältigungsstrategien zum Lösen von Zuordnungskonflikten, wobei als Eingabe die vorherige Arbeitslast-Klassifizierung und dynamische Angaben von der Infrastruktur in einer Cloud-Datenverarbeitungsumgebung verwendet werden; 2) das automatisierte Identifizieren von Konflikten auf der Grundlage von Störungen zwischen den Arbeitslasten, der Wahrscheinlichkeit einer Server-Überlastung und einer Ressourcen-Verfügbarkeit in der Cloud-Datenverarbeitungsumgebung; 3) das automatische Klassifizieren von Arbeitslasten auf der Grundlage einer Nutzungsintensität von CPU, Netzwerk, Speicher und Plattenspeicher; 4) der Lern-Mechanismus für Arbeitslast-Klassifizierung, Konflikt-Identifizierung und Strategieauswahl durch Beobachten der Anzahl von stornierten Entscheidungen, Anwendungs-Störung und Zustand des Datenzentrum-Clusters von einem oder mehreren vorherigen Einsätzen; und 5) unbegrenzte Kombinationen von Konfliktbewältigungsstrategien durch Berücksichtigen von Aktionen wie beispielsweise Arbeitslast-Migration und Ressourcen-Verzicht.
  • Somit kann gemäß den vorliegenden Techniken eine Arbeitslast-Konfliktlösung unter Verwendung einer geringen Anzahl von Eingaben ausgeführt werden, die Stornierungen von Scheduler-Entscheidungen, Anwendungsstörungen und Server-Überlastung möglichst gering halten. Die Prozesse der dynamischen Arbeitslast-Klassifizierung, Konflikterkennung und Strategieauswahl können mit Kenntnissen gekoppelt werden, die aus vorherigen Einsätzen unter Verwendung eines Mechanismus des maschinellen Lernens zusammengetragen wurden. Neue Strategien zur Konfliktlösung können auf der Grundlage einer Arbeitslast-Migration, der Ablehnung und Stornierung von Entscheidungen und/oder Verzichten und Warten auf Ressourcen empfohlen werden.
  • Vorhandene Lösungen zum Auswählen von Konfliktlösungsstrategien konzentrieren sich lediglich auf Klassifizieren auf der Grundlage von Mechanismen des maschinellen Lernens, die umfangreiche Datensätze für die Testphase erfordern, und auf Klassifizieren, das die Arbeitslast-Beschränkungen, Leistungsfähigkeit und den Datenzentrum-Zustand für eine genauere Entscheidung nicht gleichzeitig berücksichtigt. Außerdem sind bei vorhandenen Lösungen zur Konfliktlösung keine Lernmechanismen vorgesehen, bei denen die Anzahl der Stornierungen von Scheduler-Entscheidungen, die Arbeitslast-Leistungsfähigkeit und/oder der Zustand des Datenzentrum-Clusters von einem oder mehreren vorherigen Einsätzen berücksichtigt werden. Darüber hinaus wird das Problem in sämtlichen Phasen der vorliegenden Techniken auf viele Abschnitte zum Klassifizieren heruntergebrochen, die eine Instanz zum kollaborativen Filtern aufweisen, die parallel ausgeführt wird, um den Prozess zu beschleunigen und die Reaktionszeit des Schedulers zu verbessern. Schließlich werden bei vorhandenen Lösungen die spezifischen Typen von Aktionen zur Konfliktlösung nicht berücksichtigt, wie beispielsweise Arbeitslast-Migration und Ressourcen-Verzicht.
  • Es erfolgt nun eine genaue Beschreibung der vorliegenden Techniken zur Arbeitslast-Klassifikation, Konflikt-Erkennung und Auswahl einer Konfliktlösungsstrategie. Die vorliegenden Techniken schlagen ein Framework vor, um Konfliktlösungsstrategien für einen optimistischen (siehe oben, d.h. optimistischen oder halbpessimistischen) parallelen Einsatz der Arbeitslast automatisch auszuwählen. Der Prozess wird gemäß der Verfahrensweise 500 in 5 dargestellt und sieht drei Phasen vor. In der ersten Phase (1) treffen im Schritt 502 neue Arbeitslasten ein und im Schritt 504 werden die Arbeitslasten auf der Grundlage ihres Ressourcenbedarfs klassifiziert (z.B. Nutzungsintensität von CPU, Speicher, Netzwerk und/oder Plattenspeicher, siehe nachfolgend). Der Schritt 504 kann beispielsweise durch den Arbeitslast-Klassifizierer 204 (siehe 2) ausgeführt werden.
  • Die zweite Phase (2) beginnt mit einer Festlegung, die im Schritt 506 erfolgt, ob die Arbeitslast an einen vorhandenen Scheduler weitergeleitet oder ein neuer Scheduler für die Arbeitslast erzeugt werden sollte. Wenn der Bedarf an einem derartigen Typ der Arbeitslast hoch ist, wird vorzugsweise ein Scheduler erzeugt, der für die neue Arbeitslast spezifisch ist, um bedarfsmäßig zu skalieren. In diesem Fall wird die Arbeitslast im Schritt 508 einem neuen Scheduler zugewiesen. Wenn andererseits kein Scheduler benötigt wird, der für die neue Arbeitslast spezifisch ist, wird die Arbeitslast im Schritt 510 einem vorhandenen Scheduler (d.h. dem aktuellen Scheduler) zugewiesen.
  • Nachdem ein Scheduler eine Entscheidung getroffen hat, leitet der Scheduler im Schritt 511 die Entscheidung zu dem Konflikt-Identifizierer (d.h. Konflikt-Identifizierer 216, siehe 2) weiter, der in den Schritten 512 bis 516 paralleles Identifizieren von Konflikten (Störungen) zwischen den Arbeitslasten, einer möglichen Server-Überlastung und fehlenden Ressourcen ausführt. Es erfolgt eine Ressourcen-Prüfung, ob ausreichend Ressourcen vorhanden sind, um die Platzierung auszuführen. Dort werden außerdem die Konflikte erkannt, wenn eine Platzierung erfolgreich ist und die andere infolge fehlender Kapazität fehlschlägt. Gemäß einer beispielhaften Ausführungsform werden die Schritte 512 bis 516 unter Verwendung eines Konflikt-Identifizierers einer Arbeitslast-Störung, eines Konflikt-Identifizierers einer Server-Überlastung bzw. eines Konflikt-Identifizierers einer fehlender Ressource ausgeführt, bei denen es sich jeweils um Komponenten des Konflikt-Identifizierers 216 handeln kann. Ein Konflikt tritt auf, wenn die mehreren Scheduler-Entscheidungen denselben Host wählen, um die Anforderung zu platzieren, wobei der Host lediglich eine der Entscheidungen aufnehmen kann. Wenn zwischen den Scheduler-Entscheidungen Konflikte erkannt werden, beginnt die dritte Phase. In der dritten Phase (3) werden auf der Grundlage der möglichen Konflikte, die in den Schritten 512 bis 516 erkannt wurden, im Schritt 518 Strategien zum Lösen der Konflikte empfohlen wie beispielsweise Stornierungen aufzuheben und eine höhere Arbeitslast-Leistungsfähigkeit vorzuhalten. Gemäß einer beispielhaften Ausführungsform wird der Schritt 518 unter Verwendung eines Strategie-Selektors und -Vollstreckers ausgeführt.
  • Nachdem die Konflikte gelöst wurden, werden die Arbeitslasten im Schritt 520 für die Datenzentrum-Infrastruktur festgelegt. Wie später genau beschrieben wird, wird ein selbsttätig lernender Mechanismus verwendet, um die Arbeitslast-Klassifizierungen und/oder den Prozess der Strategieauswahl anhand von Daten von einer oder mehreren vorherigen Iterationen des Verfahrens aktualisiert. Siehe 5.
  • Bei allen diesen Phasen werden Gebrauchs-Matrizen verwendet, die die Scheduler-Entscheidungen beschreiben. Die erste Phase enthält beispielsweise eine Matrix mit Arbeitslasten als Zeilen und die zweite Phase und die dritte Phase enthalten die Kombination aus Scheduler-Entscheidungen als Zeilen. Gemäß einer beispielhaften Ausführungsform wird ein dreistufiger Prozess verwendet, um die Matrix-Einträge zu füllen. Wie oben hervorgehoben werden bei dem ersten Schritt anfängliche Matrix-Einträge von Arbeitslast-Profilen, Spezialisten, Offline-Simulationen, Gebrauchsfunktionen oder sogar bestimmten Zufallswerten bereitgestellt.
  • Bei dem zweiten Schritt werden die fehlenden Einträge der Matrix, die aus einer Matrix-Faktorzerlegung hergeleitet werden, unter Verwendung eines logarithmischen Wahrscheinlichkeits-Algorithmus gefüllt. Die logarithmische Wahrscheinlichkeits-Funktion ist durch ∑ilog(ƒ(xi)) gegeben, wobei ƒ(xi) die Wahrscheinlichkeitsdichte-Funktion bei xi ist und xi die ite Beobachtung repräsentiert. Die Matrix-Faktorzerlegung kann erreicht werden, indem neben vielen anderen die Verfahren Einzelwert-Zerlegung (SVD), nichtnegative Matrix-Faktorzerlegung (NMF), Bayes‘sche Matrix-Faktorzerlegung verwendet werden. Die Matrix-Faktorzerlegung wird zur Reduktion der Dimensionalität verwendet, wobei die Darstellung von Elementen, die eine Teilstruktur gemeinsam nutzen, einander ähnlicher werden, und Elemente, die unterschiedlich sind, auch unterschiedlicher werden können. Der Prozess zum Definieren von Divergenz und Ähnlichkeit wird für Empfehlungen verwendet.
  • Schließlich werden im dritten und weiterführenden Schritt einige Einträge anhand des früheren Einsatzes und Messungen von dem Zustand des Datenzentrum-Clusters wie Anzahl der Stornierungen und Arbeitslast-Leistungsfähigkeit aktualisiert. Wenn jedoch der Unterschied zwischen dem vorherigen Eintrag und dem neuen Eintrag größer als h ist, wobei h > 0, wird ein Versuchszähler n dem Feld zugeordnet, wobei n > 0. Anschließend wird der Eintrag nach n Versuchen mit dem Mittelwert von Versuchswerten aktualisiert, mit Ausnahme von Ausreißern (d.h., Ausreißer, die beispielsweise unter Verwendung von explorativer Datenanalyse (EDA) gefunden werden, werden eliminiert, bevor die Daten zur Vorhersage verwendet werden). Diese dritte Phase stellt einen selbsttätigen Lernmechanismus bereit.
  • Der zweite Schritt zum Auffüllen der fehlenden Matrix-Einträge, die aus der Matrix-Faktorzerlegung abgeleitet werden, wird nachfolgend genauer beschrieben.
  • In der Phase (1) kann die Charakteristik der Arbeitslast-Klassifizierung enthalten:
    • i. Intensität der CPU-Nutzung, die die Kombination aus durchschnittlicher CPU-Nutzung und Auswirkungen der CPU auf die Arbeitslast-Leistungsfähigkeit repräsentiert;
    • ii. Intensität der Speichernutzung, die die Kombination aus durchschnittlicher Speicher-Nutzung in Megabyte MB oder Gigabyte GB und Auswirkungen des Speichers auf die Arbeitslast-Leistungsfähigkeit repräsentiert;
    • iii. Intensität der Plattenspeichernutzung, die die Kombination aus durchschnittlicher Plattenspeichernutzung in MB, GB oder Terabyte TB und Auswirkungen des Speichers auf die Arbeitslast-Leistungsfähigkeit repräsentiert;
    • iv. Intensität der Netzwerkbandbreitennutzung, die die Kombination aus durchschnittlicher Bandbreitennutzung in MB oder GB und Auswirkungen der Netzwerkbandbreite auf die Arbeitslast-Leistungsfähigkeit repräsentiert;
    • v. Intensität der Netzwerkreaktionszeit, die die Kombination aus durchschnittlicher Reaktionszeit und Auswirkungen der Reaktionszeit auf die Arbeitslast-Leistungsfähigkeit repräsentiert;
    • vi. Intensität des Netzwerk-Jitter, die die Kombination aus durchschnittlichem Jitter und Auswirkungen des Jitter auf die Arbeitslast-Leistungsfähigkeit repräsentiert;
    • vii. weitere Parameter können enthalten sein.
  • Durch eine Arbeitslast-Klassifizierung ist es möglich, einen Typ einer neuen eintreffenden Arbeitslast zu empfehlen, wenn die Klassifizierung von einigen wenigen vorhergehenden Arbeitslasten vorhanden ist. Die Empfehlung wird die kennzeichnende Eigenschaft der Arbeitslast aufzeigen. Mehrere Matrizen bilden diese Phase mit Arbeitslast-Profilen als Zeilen und Arbeitslast-Charakteristiken als Spalten und Einträgen als Bewertung der Intensität der Ressourcennutzung. Einige anfängliche Einträge beruhen auf kundenspezifischen Gebrauchsfunktionen, die durch einen Spezialisten verwendet werden. Die Gebrauchsfunktion kann durch den Benutzer im Arbeitslast-Profil oder durch den Spezialisten bereitgestellt werden oder es kann sich um eine der hier vorgeschlagenen Gebrauchsfunktionen handeln. Alle Arbeitslast-Charakteristiken werden in einem bestimmten Einstufungsintervall von 0 bis 1 klassifiziert werden, wobei 0 eine Korrelation von 0 % repräsentiert und 1 eine Korrelation von 100 % mit älteren (früheren) Charakteristiken repräsentiert.
  • Eine beispielhafte Umsetzung beschreibt Gebrauchsfunktionen zum Bewerten jeder Arbeitslast-Charakteristik und eine weitere dient zum gemeinsamen Bewerten aller Arbeitslast-Charakteristiken wie folgt: – Zum Bewerten der Intensität der CPU-Nutzung:
    Figure DE102016204680A1_0002
    wobei der Parameter ExcTimenormal die durchschnittliche Ausführungszeit bedeutet, wenn bei der Arbeitslast alle verfügbaren CPUs zugeordnet sind; der Parameter ExcTimemax bedeutet die durchschnittliche Ausführungszeit, wenn bei der Arbeitslast lediglich z % der CPUs zugeordnet sind, wobei z < maximale CPU-Anzahl; der Parameter j ist die Gewichtung für CPU-Nutzung, und der Parameter k ist die Gewichtung für die Ausführungszeit. – Zum Bewerten der Intensität der Speichernutzung:
    Figure DE102016204680A1_0003
    wobei der Parameter ExcTimenormal die durchschnittliche Ausführungszeit bedeutet, wenn bei der Arbeitslast der gesamte verfügbaren Speicher zugeordnet sind; der Parameter ExcTimemax bedeutet die durchschnittliche Ausführungszeit, wenn bei der Arbeitslast lediglich z % des Speichers zugeordnet sind, wobei z < Maximalwert des verfügbaren Speichers; der Parameter j ist die Gewichtung für Speichernutzung und der Parameter k ist die Gewichtung für die Ausführungszeit. – Zum Bewerten der Intensität der Plattenspeichernutzung:
    Figure DE102016204680A1_0004
    wobei der Parameter ExcTimenormal die durchschnittliche Ausführungszeit bedeutet, wenn bei der Arbeitslast sämtliche verfügbaren Plattenspeicher zugeordnet sind; der Parameter ExcTimemax bedeutet die durchschnittliche Ausführungszeit, wenn bei der Arbeitslast lediglich z % der verfügbaren Plattenspeicher zugeordnet sind, wobei z < maximale Anzahl der verfügbaren Plattenspeicher; der Parameter j ist die Gewichtung für die Datenübertragungsrate und der Parameter k ist die Gewichtung für die Ausführungszeit. – Zum Bewerten der Intensität der Netzwerkbandbreitennutzung:
    Figure DE102016204680A1_0005
    wobei der Parameter ExcTimenormal die durchschnittliche Ausführungszeit bedeutet, wenn bei der Arbeitslast die gesamte verfügbare Netzwerkbandbreite zugeordnet ist; der Parameter ExcTimemax bedeutet die durchschnittliche Ausführungszeit, wenn bei der Arbeitslast lediglich z % der verfügbaren Netzwerkbandbreite zugeordnet ist, wobei z < maximale verfügbare Bandbreite; der Parameter j ist die Gewichtung für die Bandbreitennutzung und der Parameter k ist die Gewichtung für die Ausführungszeit. – Zum Bewerten der Intensität der Netzwerkreaktionszeit:
    Figure DE102016204680A1_0006
    wobei der Parameter ExcTimenormal die durchschnittliche Ausführungszeit bedeutet, wenn das Netzwerk die minimale Reaktionszeit aufweist, und der Parameter ExcTimemax die durchschnittliche Ausführungszeit bedeutet, wenn das Netzwerk die maximale Reaktionszeit aufweist. Der hier verwendete Ausdruck „Reaktionszeit“ bezeichnet die Zeit, die zwischen dem Ende einer Anforderung und dem Anfang der Reaktion verstrichen ist, die in Übereinstimmung mit der Latenzzeit des Netzwerks variieren kann. – Zum Bewerten einer Intensität des Netzwerk-Jitter:
    Figure DE102016204680A1_0007
    wobei der Parameter ExcTimenormal die durchschnittliche Ausführungszeit mit dem minimalen Netzwerk-Jitter bedeutet und der Parameter ExcTimemax die durchschnittliche Ausführungszeit mit dem maximalen Netzwerk-Jitter bedeutet. Bei dieser Umsetzung versteht sich Jitter als Schwankung der Reaktionszeit.
  • Zum Bewerten der Kombination aller Charakteristiken wird bei dieser beispielhaften Umsetzung die folgende Gebrauchsfunktion bereitgestellt:
    Figure DE102016204680A1_0008
    wobei fi (i = 1 bis n) n Bewertungen der Arbeitslast-Charakteristiken repräsentiert, der Parameter wi repräsentiert eine Gewichtung bei dem Arbeitslast-Profil, das durch den Benutzer bereitgestellt wird; der Parameter qi repräsentiert eine Gewichtung, die durch den Spezialisten festgelegt wird, der Parameter x repräsentiert die Gewichtung für die Spezialisten-Gewichtung, die durch den Cluster-Administrator festgelegt wird. Das Ergebnis der Funktion ist ein Wert zwischen 0 und 1, wobei 0 die Intensität der Ressourcennutzung ohne Arbeitslast repräsentiert und 1 die Intensität der Ressourcennutzung bei starker Arbeitslast repräsentiert. Diese Bewertung könnte eine zusätzlich Spalte in der Matrix darstellen.
  • In Phase (2) könnte die Konflikterkennung der Scheduler-Entscheidungen die folgenden Charakteristiken enthalten:
    • – CPU-Störungshäufigkeit, bedeutet eine geringe Leistungsfähigkeit einer oder mehrerer Arbeitslasten, die in demselben Host betrieben werden, da sie CPU-sensitiv sind;
    • – Speicher-Störungshäufigkeit, bedeutet eine geringe Leistungsfähigkeit einer oder mehrerer Arbeitslasten, die in demselben Host betrieben werden, da sie speichersensitiv sind;
    • – Plattenspeicher-Störungshäufigkeit, bedeutet eine geringe Leistungsfähigkeit einer oder mehrerer Arbeitslasten, die in demselben Host betrieben werden, da sie plattenspeichersensitiv sind;
    • – Netzwerk-Störungshäufigkeit, bedeutet eine geringe Leistungsfähigkeit einer oder mehrerer Arbeitslasten, die in demselben Host betrieben werden, da sie netzwerksensitiv sind;
    • – Server-Überlastung, bedeutet, dass der Einsatz einer oder mehrerer Arbeitslasten einige Server-Ressourcen überlastet und die Server-Gesamtleistungsfähigkeit beeinträchtigen könnte;
    • – fehlende Ressource, bedeutet, dass bei einer oder mehreren anderen Scheduler-Entscheidungen keine Ressourcen verfügbar sind, um deren Entscheidungen umzusetzen, wenn bei einer oder mehreren Scheduler-Entscheidungen die gewünschten Ressourcen zugeordnet werden.
  • Wie bei der vorhergehenden Phase wird bei der Konflikterkennung auf die möglichen Konflikte hingewiesen, die bei der Kombination von Scheduler-Entscheidungen erfasst wurden. Die Konflikterfassung kann während der Scheduler-Ausführung erfolgen oder nachdem sämtliche Entscheidungen getroffen wurden. Bei dem zuerst Genannten handelt es sich um einen pessimistischen Ansatz und der Scheduler wird teilweise oder schrittweise Entscheidungen für den Konflikt-Identifizierer (CI) bereitstellen. Bei dem zuletzt Genannten handelt es sich um einen optimistischen Ansatz, und die Scheduler planen sämtliche Ressourcen, bevor die Entscheidungen zu dem Konflikt-Identifizierer gesendet werden. In beiden Fällen kombiniert der Konflikt-Identifizierer sämtliche empfangenen Entscheidungen und passt ihre Arbeitslast-Klassifizierungen an, um die Konflikte zu bewerten. In jeder Matrix stellen die Kombination aus Scheduler-Entscheidungen die Zeilen aller Matrizen dar und Arbeitslast-Charakteristiken oder Zustände des Datenzentrum-Clusters stellen die Spalten dar. Die Kombination aus Scheduler-Entscheidungen kann von zwei Arbeitslasten oder von einer Menge von Arbeitslasten verwendet werden. Die Matrix mit den Arbeitslast-Charakteristiken als Spalte weist Einträge als Störungs-Bewertungen auf, bei denen es sich um den Durchschnittswert der Intensität der Ressourcennutzung der Arbeitslast handelt. Die anderen beiden Matrizen enthalten die Spalten als Zustände des Datenzentrum-Clusters. Eine Matrix mit Zuständen des Datenzentrum-Clusters als Spalten enthält Einträge wie Server-Überlastung, das ist das Verhältnis von Summe des Bedarfs an Ressourcennutzung von dem Arbeitslast-Profil zur Gesamtzahl der verfügbaren Ressourcen des Servers.
  • Eine weitere Matrix mit Zuständen des Datenzentrum-Clusters enthält Einträge 0, wenn für die Entscheidungen keine verfügbaren Ressourcen vorhanden sind, andernfalls 1. Die zuletzt genannte Matrix ist die einzige Matrix, die Informationen enthält, die aus der Infrastruktur direkt gesammelt wurden. Während des Empfehlungsprozesses wird ein Konflikt erkannt, wenn die Anzahl höher als z ist, wobei 0 < z £ 1.
  • In Phase (3) kann das Strategieauswahlkriterium enthalten:
    • – Stornierungshäufigkeit, bedeutet die Wahrscheinlichkeit des Stornierens einer Scheduler-Entscheidung. Bei einigen Strategien kann der Konflikt anstelle des Stornierens der vollständigen Entscheidung durch Warten, Migrieren oder Verzichten der Ressource gelöst werden.
    • – Maß der Arbeitslast-Leistungsfähigkeit, eine Klasse von Arbeitslasten könnte aus verschiedenen Strategielösungen Nutzen ziehen. Beispielsweise könnten diejenigen Arbeitslasten, die migriert werden, oder die auf Ressourcen verzichten, eine bestimmte Einbuße bei der Leistungsfähigkeit gemäß der vom Benutzer definierten QoS haben. Darüber hinaus könnte bei einigen Strategien eine Server-Überlastung bestimmter Ressourcen akzeptiert werden, was die Leistungsfähigkeit einer oder mehrerer Arbeitslasten möglicherweise direkt beeinflussen kann.
  • Nachdem ein Konflikt erkannt wurde, wird der Strategie-Selektor und Vollstrecker (PS) aufgerufen, um eine Strategie zum Lösen des Konflikts zu empfehlen. Der Strategie-Selektor und Vollstrecker enthält zwei Matrizen mit Zeilen als Kombination aus der konfliktbehafteten Entscheidung plus die verzögerten Scheduler-Entscheidungen und Spalten als Strategien. Die beiden Matrizen unterscheiden sich durch die Einträge, wobei eine mit Stornierungshäufigkeit und die andere mit Maß der Arbeitslast-Leistungsfähigkeit gefüllt sind. Die Stornierungshäufigkeit repräsentiert das Verhältnis zwischen der Anzahl von Stornierungen, die bei Verwendung der Strategie aufgetreten sind, und der Gesamtzahl von Stornierungen, die in dem Cluster während des Zeitintervalls, typischerweise ty bis tx aufgetreten sind, wobei sich der Parameter x jedes Mal ändert, wenn sich der Zustand des Datenzentrum-Clusters ändert. Der Zustand des Datenzentrum-Clusters stellt eine Einstufung von Mangel bis Überfluss an Ressourcen und außerdem die Menge von Stornierungen der Scheduler-Entscheidungen und das Maß der Arbeitslast-Leistungsfähigkeit dar. Bestimmte Strategien könnten bei einem Überfluss an Ressourcen und andere während eines Mangels an Ressourcen besser ausgeführt werden. Das Maß der Leistungsfähigkeit könnte gemäß der Intensität der Arbeitslastnutzung und durch Messen der Ausführungszeit und/oder der Reaktionszeit für die entsprechenden wesentlichen Charakteristiken bewertet werden. Diese Leistungsparameter könnten von dem Arbeitslast-Profil, aus Spezialisten-Wissen und von vorhergehenden Einsätzen bereitgestellt werden. Die Leistungsfähigkeit hängt von der ausgewählten Strategie ab, da eine Server-Überlastung möglicherweise akzeptiert werden kann, und Arbeitslasten mit niedriger Priorität können migriert werden, wodurch mehr Ressourcen für Entscheidungen mit hoher Priorität bereitgestellt werden. Somit kann eine Menge von Strategieaktionen die Arbeitslast-Leistungsfähigkeit unterschiedlich beeinflussen.
  • Die vorliegenden Techniken beschreiben außerdem einige mögliche Strategien, die auf dem Gebiet der Transaktionen beruhen, jedoch an den Cluster-Kontext angepasst sind. Die vorliegenden Techniken beschreiben außerdem neue Strategien, die auf der Kombination aus einer bekannten Aktion, die um Ressourcen-Verzicht erweitert ist, und Arbeitslast-Migration und Wahrnehmung beruhen:
    • – Randomly (Zufällig). Dabei handelt es sich um die einfachste Strategie, bei der die Gewinner-Scheduler-Entscheidung zufällig ausgewählt wird.
    • – Back-off (Zurücksetzen). Zufälliges Auswählen der Gewinner-Scheduler-Entscheidung. Der Verlierer verwendet eine exponentielle Verzögerung für eine feste Anzahl von exponentiell anwachsenden Intervallen vor dem Stornieren. Nach jedem Intervall prüft die Verlierer-Scheduler-Entscheidung, ob die andere beendet wurde.
    • – Privileged 1 (Privilegiert 1). Jede Arbeitslast besitzt eine Priorität, die durch die Dienstgütevereinbarung (SLA) des Benutzers, durch den Administrator oder beginnend bei 0 bis zu N spezifiziert werden kann. Die Scheduler-Entscheidung mit niedrigerer Priorität wird verzögert, und die Priorität wird N-mal erhöht, wobei N der Unterschied der Prioritäten ist, bevor die Scheduler-Entscheidung storniert wird.
    • – Privileged 2 (Privilegiert 2). Diese Strategie ist Privileged 1 ähnlich, mit der Ausnahme, dass bei einigen Scheduler-Entscheidungen die Priorität nicht erhöht wird. Dadurch werden höhere Prioritäten auf einem hohen Wert gehalten, obwohl Anforderungen mit niedriger Priorität, bei denen die Priorität nicht erhöht wird, letztendlich mehr als einmal verzögert werden.
    • – Elder (Ältere). Eine Scheduler-Entscheidung enthält einen Zeitstempel, wenn sie ihren ersten Versuch beginnt. Wenn es sich bei gleichzeitigen Entscheidungen um das erste Mal handelt, wird eine der Entscheidungen willkürlich verzögert. Wenn die gleichzeitigen Entscheidungen unterschiedliche Zeitstempel aufweisen, wird die jüngere Entscheidung storniert.
    • – Elder end (Ältere enden). Diese Strategie ist Elder ähnlich, mit der Ausnahme, dass diese Strategie einen Zeitüberschreitungs-Mechanismus für die Entscheidungen enthält, die niemals eingesetzt werden.
    • – Blacklist (Sperrliste). Eine Scheduler-Entscheidung erhält eine Sperrliste, die alle Entscheidungen enthält, die verzögert wurden. Wenn die Scheduler keine Kenntnis von anderen Scheduler-Entscheidungen haben, wird eine Entscheidung zum Verzögern willkürlich ausgewählt und wird in die Sperrliste aufgenommen. Wenn sich eine der Entscheidungen in der Sperrliste befindet, wird sie storniert. Wenn sich beide Entscheidungen in der Sperrliste befinden, wird eine willkürlich ausgewählt.
    • – Waiver (Verzicht). Eine Scheduler-Entscheidung kann die in Konflikt stehendenden Ressourcen möglicherweise aufgeben. Der Benutzer muss das im Arbeitslast-Profil spezifizieren.
    • – Waiver time (Zeitpunkt des Verzichts). Diese Strategie ist Waiver ähnlich, mit der Ausnahme, dass sie Ressourcen erst nach N Versuchen aufgibt und nach M Versuchen storniert, wobei N < M.
    • – Migrate low priority (niedrige Priorität migrieren). Wenn möglich werden mit geringer Priorität betriebene Arbeitslasten in dem in Konflikt stehenden Server migriert, um Ressourcen für die Scheduler-Entscheidung freizugeben.
    • – Migrate time (Zeitpunkt der Migration). Diese Strategie ist Migrate low priority ähnlich, mit der Ausnahme, dass sie Arbeitslasten mit geringerer Priorität erst nach N Versuchen aufgibt und nach M Versuchen storniert, wobei N < M.
    • – Shrink (Verringern). Wenn möglich wird die Ressource einer betriebenen Arbeitslast verringert, um die Scheduler-Entscheidung anzupassen.
    • – Shrink time (Zeitpunkt der Verringerung). Diese Strategie ist Shrink ähnlich, mit der Ausnahme, dass sie eine Ressource einer Arbeitslast mit geringerer Priorität erst nach N Versuchen verringert und nach M Versuchen storniert, wobei N < M.
    • – Back-off Long-term aware (Langfristig betrachtetes Zurücksetzen). Wenn es sich bei der langfristigen Arbeitslast um den Gewinner handelt, nicht verzögern, den Verlierer stornieren.
  • Viele weitere Kombinationen zwischen den vorhergehenden Strategien sind möglich.
  • Das Ziel der Strategieauswahl besteht hier im Mindern des Konfliktproblems durch Verringern der Stornierungen und der Zeitverschwendung der Scheduler und im Verbessern der Leistungsfähigkeit der Arbeitslast-Kombinationen. Die ausgewählte Strategie wird deshalb diejenige sein, die die geringstmögliche Stornierungshäufigkeit und das höchstmögliche Maß an Leistungsfähigkeit hat.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein computerlesbares Speichermedium (oder Medien) enthalten, auf dem sich computerlesbare Programmbefehle befinden, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem computerlesbaren Speichermedium kann es sich um eine materielle Einheit handeln, die Befehle zum Verwenden durch eine Befehlsausführungseinheit halten und speichern kann. Bei dem computerlesbaren Speichermedium kann es sich beispielsweise um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination der Vorhergehenden handeln, ist jedoch nicht darauf beschränkt. Eine nicht erschöpfende Liste von spezielleren Beispielen des computerlesbaren Speichermediums enthält Folgendes: eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), einen löschbaren programmierbaren Festwertspeicher (EPROM oder Flash-Speicher), einen statischen Direktzugriffsspeicher (SRAM), einen tragbaren Compactdisk-Festwertspeicher (CD-ROM), eine digitale Versatile-Disk (DVD), einen Speicherstick, ein Floppy Disk, eine mechanisch codierte Einheit wie beispielsweise Lochkarten oder erhabene Strukturen in einer Nut, in denen Befehle aufgezeichnet sind, und jede geeignete Kombination des Vorhergehenden. Ein hier verwendetes computerlesbares Speichermedium sollte nicht so ausgelegt werden, dass es sich dabei per se um flüchtige Signale handelt wie beispielsweise Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder andere Übertragungsmedien ausbreiten (z.B. Lichtimpulse, die durch ein Lichtwellenleiterkabel geleitet werden) oder elektrische Signale, die durch eine Leitung übertragen werden.
  • Computerlesbare Programmbefehle, die hier beschrieben werden, können von einem computerlesbaren Speichermedium zu entsprechenden Datenverarbeitungs/Verarbeitungs-Einheiten oder über ein Netzwerk, z.B. das Internet, ein Lokalbereichsnetz, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk zu einem externen Computer oder einer externen Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupfer-Übertragungskabel, Lichtwellenleiter, drahtlose Übertragungen, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerk-Adapterkarte oder eine Netzwerk-Schnittstelle in jeder Datenverarbeitungs/Verarbeitungs-Einheit empfängt computerlesbare Programmbefehle von dem Netzwerk und leitet die computerlesbaren Programmbefehle zum Speichern in einem computerlesbaren Speichermedium in der entsprechenden Datenverarbeitungs/Verarbeitungs-Einheit weiter.
  • Bei computerlesbaren Programmbefehlen zum Ausführen von Operationen der vorliegenden Erfindung kann es sich um Assembler-Befehle, Befehle mit Befehlssatz-Architektur (ISA), Maschinenbefehle, maschinenabhängige Befehle, Mikrocode, Firmware-Befehle, Zustandseinstellungsdaten oder Quellencode bzw. Objektcode handeln, der in jeder Kombination aus einer oder mehreren Programmiersprachen geschrieben ist, darunter eine objektorientierte Programmiersprache wie Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie etwa die Programmiersprache "C" oder ähnliche Programmiersprachen. Die computerlesbaren Programmbefehle können nur auf dem Computer eines Benutzers, teilweise auf dem Computer eines Benutzers, als ein eigenständiges Software-Paket, teilweise auf dem Computer eines Benutzers und teilweise auf einem fernen Computer oder nur auf dem fernen Computer oder Server ausgeführt werden. In dem zuletzt genannten Szenario kann der ferne Computer mit dem Computer des Benutzers durch jeden Netzwerktyp verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer (z.B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden. Bei einigen Ausführungsformen können elektronische Schaltungsanordnungen, darunter beispielsweise eine programmierbare logische Schaltungsanordnung, vor Ort programmierbare Gate-Arrays (FPGA) oder programmierbare Logik-Arrays (PLA) die computerlesbaren Programmbefehle ausführen, indem Zustandsinformationen der computerlesbaren Programmbefehle genutzt werden, um die elektronische Schaltungsanordnung zu personalisieren, um Aspekte der vorliegenden Erfindung auszuführen.
  • Aspekte der vorliegenden Erfindung werden hier unter Bezugnahme auf Ablaufplan-Darstellungen und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaltbildern durch computerlesbare Programmbefehle umgesetzt werden können.
  • Diese computerlesbaren Programmbefehle können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu bilden, so dass Befehle, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, erzeugen. Diese computerlesbaren Programmbefehle können außerdem in einem computerlesbaren Speichermedium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, so dass das computerlesbare Speichermedium mit darin gespeicherten Befehlen einen Herstellungsgegenstand aufweist, der Befehle enthält, die Aspekte der Funktion/Wirkung umsetzen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind.
  • Die computerlesbaren Programmbefehle können außerdem in einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um eine Reihe von Operationsschritten zu bewirken, die auf dem Computer, der anderen programmierbaren Vorrichtung oder der anderen Einheit ausgeführt werden sollen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, so dass die Befehle, die auf dem Computer, der anderen programmierbaren Vorrichtung oder der anderen Einheit ausgeführt werden, die Funktionen/Wirkungen, die in dem Block oder Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, umsetzen.
  • Der Ablaufplan und die Blockdarstellungen in den Figuren veranschaulichen die Architektur, Funktionalität und Operation von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder in Blockdarstellungen ein Modul, Segment oder Abschnitt von Befehlen repräsentieren, der einen oder mehrere ausführbare Befehle zum Umsetzen der spezifizierten logischen Funktion(en) aufweist. Bei einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen möglicherweise nicht in der in den Figuren angegebenen Reihenfolge auftreten. Zum Beispiel können zwei Blöcke, die nacheinander gezeigt sind, tatsächlich im Wesentlichen gleichzeitig ausgeführt werden oder die Blöcke können gelegentlich in Abhängigkeit von der beteiligten Funktionalität in der umgekehrten Reihenfolge ausgeführt werden. Es wird außerdem angemerkt, dass jeder Block in den Blockdarstellungen und/oder Ablaufplan-Darstellungen und Kombinationen von Blöcken in den Blockdarstellungen und/oder der Ablaufplan-Darstellung durch Systeme, die auf spezieller Hardware beruhen, die die spezifizierten Funktionen oder Wirkungen ausführen, oder Kombinationen aus spezieller Hardware und Computerbefehlen umgesetzt werden können.
  • In 6 ist eine Blockdarstellung einer Vorrichtung 600 zum Umsetzen einer oder mehrerer der hier dargestellten Verfahrensweisen gezeigt. Die Vorrichtung 600 kann lediglich beispielhaft so eingerichtet sein, dass sie einen oder mehrere der Schritte der Verfahrensweise 100 von 1 und/oder einen oder mehrere der Schritte der Verfahrensweise 500 von 5 umsetzt.
  • Die Vorrichtung 600 enthält ein Computersystem 610 und Wechselmedien 650. Das Computersystem 610 enthält eine Prozessoreinheit 620, eine Netzwerk-Schnittstelle 625, einen Speicher 630, eine Medien-Schnittstelle 635 und eine optionale Anzeige 640. Die Netzwerk-Schnittstelle 625 ermöglicht dem Computersystem 610 ein Verbinden mit einem Netzwerk, während die Medien-Schnittstelle 635 dem Computersystem 610 ein Zusammenwirken mit Medien wie beispielsweise ein Festplattenlaufwerk oder Wechselmedien 650 ermöglicht.
  • Die Prozessoreinheit 620 kann so eingerichtet sein, dass sie die hier offenbarten Verfahren, Schritte und Funktionen umsetzt. Der Speicher 630 könnte verteilt oder lokal sein, und die Prozessoreinheit 620 könnte verteilt oder singulär sein. Der Speicher 630 könnte als ein elektrischer, magnetischer oder optischer Speicher oder eine Kombination aus diesen oder anderen Typen von Speichereinheiten umgesetzt sein. Darüber hinaus sollte der Ausdruck „Speicher“ ausreichend umfangreich ausgelegt werden, so dass alle Informationen eingeschlossen sind, die von einer Adresse in dem adressierbaren Raum, auf den die Prozessoreinheit 620 zugreifen kann, gelesen oder auf diese geschrieben werden können. Bei dieser Definition befinden sich Informationen in einem Netzwerk, auf das durch die Netzwerk-Schnittstelle 625 zugegriffen werden kann, trotzdem noch im Speicher 625, da die Prozessoreinheit 620 die Informationen von dem Netzwerk abrufen kann. Es ist zu beachten, dass jeder verteilte Prozessor, der die Prozessoreinheit 620 darstellt, im Allgemeinen seinen eigenen adressierbaren Adressraum enthält. Es sollte außerdem beachtet werden, dass ein Teil des Computersystems 610 oder das gesamte Computersystem 610 in einer anwendungsspezifischen oder einer allgemein gebräuchlichen integrierten Schaltung enthalten sein kann.
  • Bei der optionalen Anzeige 640 kann es sich um einen beliebigen Anzeigetyp handeln, der zum Zusammenwirken mit einer Benutzerperson der Vorrichtung 600 geeignet ist. Bei der Anzeige 640 handelt es sich allgemein um einen Computer-Monitor oder eine andere ähnliche Anzeige.
  • Zwar wurden hier veranschaulichende Ausführungsformen der vorliegenden Erfindung beschrieben, es sollte jedoch klar sein, dass die Erfindung nicht auf diese exakten Ausführungsformen beschränkt ist und zahlreiche andere Änderungen und Modifikationen durch einen Fachmann ausgeführt werden können, ohne vom Umfang der Erfindung abzuweichen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • Hindman et al., “Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center,” Tagungsberichte der 8. USENIX-Konferenz zu Entwurf und Umsetzung vernetzter Systeme (NSDI ’11), S. 295 bis 308 (März/April 2011) [0003]
    • M. Schwarzkopf et al., “Omega: flexible, scalable schedulers for large compute clusters,” Tagungsberichte der 8. Europäischen ACM-Konferenz zu Computersystemen (EuroSys ’13), S. 351 bis 364 (April, 2013) [0003]
    • J. Bobba et al., “Performance Pathologies in Hardware Transactional Memory,” Tagungsberichte des 34. Internationalen Jahressymposiums zur Computer-Architektur (ISCA ’07), S. 81 bis 91 (Juni 2007) [0006]
    • M.F. Spear et al., “Conflict Detection and Validation Strategies for Software Transactional Memory,” Tagungsberichte der 20. Internationalen Konferenz zur Verteilten Datenverarbeitung (DISC ’06), S. 179 bis 193 (2006) [0006]
    • C. Delimitrou et al., “Paragon: QoS-Aware Scheduling for Heterogeneous Datacenters,” Tagungsberichte der 18. Internationalen Konferenz zur Architektur-Unterstützung für Programmiersprachen und Betriebssysteme (ASPLOS) (März 2013) [0006]

Claims (15)

  1. Verfahren zum Zuordnen von Datenverarbeitungsressourcen in einem Datenzentrum-Cluster, wobei das Verfahren die Schritte aufweist: Erzeugen mehrerer paralleler Scheduler; und automatisches Auswählen eines Verfahrens zum Zuordnen von Ressourcen für jeden der Scheduler anhand eines von einem Arbeitslast-Profil, Forderungen von Benutzern und eines Zustands des Datenzentrum-Clusters, wobei ein optimistisches Verfahren zum Zuordnen von Ressourcen für wenigstens einen ersten oder mehrere der Scheduler ausgewählt wird und ein pessimistisches Verfahren zum Zuordnen von Ressourcen für wenigstens einen zweiten oder mehrere der Scheduler ausgewählt wird.
  2. Verfahren nach Anspruch 1, wobei das optimistische Verfahren zum Zuordnen von Ressourcen ein oder mehrere von einem vollständigen Vorab-Zuordnen der Datenverarbeitungsressourcen und ein teilweises Vorab-Zuordnen der Datenverarbeitungsressourcen aufweist, wobei ein Vorab-Zuordnen ein Blockieren der Datenverarbeitungsressourcen aufweist.
  3. Verfahren nach Anspruch 1, wobei das optimistische Verfahren zum Zuordnen von Ressourcen Zuordnen ohne Vorab-Zuordnung der Datenverarbeitungsressourcen aufweist.
  4. Verfahren nach Anspruch 1, wobei das Datenzentrum-Cluster eine Cloud-Datenverarbeitungsinfrastruktur aufweist.
  5. Verfahren nach Anspruch 4, wobei die Cloud-Datenverarbeitungsinfrastruktur mehrere Clouds aufweist.
  6. Verfahren nach Anspruch 1, das ferner den Schritt aufweist: dynamisches Umschalten des Verfahrens zum Zuordnen von Ressourcen von einem oder der mehreren Scheduler von einem optimistischen Verfahren zum Zuordnen von Ressourcen zu einem pessimistischen Verfahren zum Zuordnen von Ressourcen.
  7. Verfahren nach Anspruch 6, wobei das Verfahren zum Zuordnen von Ressourcen von einem oder der mehreren Scheduler anhand einer Benutzer-Entscheidung manuell oder automatisch von dem optimistischen Verfahren zum Zuordnen von Ressourcen zu dem pessimistischen Verfahren zum Zuordnen von Ressourcen umgeschaltet wird.
  8. Verfahren nach Anspruch 6, wobei das Verfahren zum Zuordnen von Ressourcen von einem oder der mehreren Scheduler anhand einer Änderung des Zustands des Datenzentrum-Clusters manuell oder automatisch von dem optimistischen Verfahren zum Zuordnen von Ressourcen zu dem pessimistischen Verfahren zum Zuordnen von Ressourcen umgeschaltet wird.
  9. Verfahren nach Anspruch 1, das ferner die Schritte aufweist: Empfangen neuer Arbeitslasten; und Klassifizieren der neuen Arbeitslasten.
  10. Verfahren nach Anspruch 9, wobei die neuen Arbeitslasten anhand von einem oder mehreren von einer Intensität von Zentraleinheit-Nutzung (CPU-Nutzung), Speichernutzung, Netzwerknutzung, und Plattenspeichernutzung klassifiziert werden.
  11. Verfahren nach Anspruch 9, wobei die neuen Arbeitslasten anhand von Daten von einer oder mehreren vorhergehenden Iterationen des Verfahrens klassifiziert werden.
  12. Verfahren nach Anspruch 9, das ferner den Schritt aufweist: anhand des Klassifizierens der neuen Arbeitslasten Festlegen, ob i) die neuen Arbeitslasten einem vorhandenen Scheduler zugewiesen werden, oder ii) ein oder mehrere neue Scheduler erzeugt und die neuen Arbeitslasten dem einen oder den mehreren neuen Schedulern zugewiesen werden.
  13. Verfahren nach Anspruch 9, das ferner den Schritt aufweist: Identifizieren von Konflikten in Scheduler-Entscheidungen.
  14. Verfahren nach Anspruch 13, wobei die Konflikte Konflikte von einem oder mehreren aufweisen von einer Arbeitslast-Störung, Konflikte einer Server-Überlastung, und Konflikte aufgrund fehlender Ressourcen, und/oder das ferner den Schritt aufweist: Auswählen von Lösungsstrategien für die Konflikte, und wobei die Lösungsstrategien für die Konflikte anhand von Daten von einer oder mehreren vorhergehenden Iterationen des Verfahrens ausgewählt werden.
  15. Verfahren zum Zuordnen von Datenverarbeitungsressourcen in einem Datenzentrum-Cluster, wobei das Verfahren die Schritte aufweist: Erzeugen mehrerer paralleler Scheduler; automatisches Auswählen eines Verfahrens zum Zuordnen von Ressourcen für jeden der Scheduler anhand eines Arbeitslast-Profils und/oder Forderungen des Benutzers und/oder eines Zustands des Datenzentrum-Clusters, wobei ein optimistisches Verfahren zum Zuordnen von Ressourcen für wenigstens einen ersten oder mehrere der Scheduler ausgewählt wird und ein pessimistisches Verfahren zum Zuordnen von Ressourcen für wenigstens einen zweiten oder mehrere der Scheduler ausgewählt wird; Empfangen neuer Arbeitslasten; Klassifizieren der neuen Arbeitslasten; anhand des Klassifizierens der neuen Arbeitslasten Festlegen, ob i) die neuen Arbeitslasten einem vorhandenen Scheduler zugewiesen werden, oder ii) ein oder mehrere neue Scheduler erzeugt und die neuen Arbeitslasten dem einen oder den mehreren neuen Schedulern zugewiesen werden; Identifizieren von Konflikten in Scheduler-Entscheidungen; und Auswählen von Lösungsstrategien für die Konflikte.
DE102016204680.2A 2015-03-24 2016-03-22 Auswählen von Strategien zum Zuordnen von Ressourcen und Lösen von Ressourcenkonflikten Pending DE102016204680A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/667,374 US9697045B2 (en) 2015-03-24 2015-03-24 Selecting resource allocation policies and resolving resource conflicts
US14/667,374 2015-03-24

Publications (1)

Publication Number Publication Date
DE102016204680A1 true DE102016204680A1 (de) 2016-09-29

Family

ID=56890369

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016204680.2A Pending DE102016204680A1 (de) 2015-03-24 2016-03-22 Auswählen von Strategien zum Zuordnen von Ressourcen und Lösen von Ressourcenkonflikten

Country Status (3)

Country Link
US (1) US9697045B2 (de)
CN (1) CN106020941B (de)
DE (1) DE102016204680A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022201291A1 (de) 2022-02-08 2023-08-10 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zum Betreiben einer Cloud-Applikation und zum Auswählen einer Skalierungstrategie

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10015062B2 (en) 2015-11-23 2018-07-03 Telefonaktiebolaget Lm Ericsson (Publ) Techniques for analytics-driven hybrid concurrency control in clouds
CN106936883B (zh) * 2015-12-31 2020-03-20 伊姆西Ip控股有限责任公司 用于云系统的方法和装置
KR101847390B1 (ko) * 2015-12-31 2018-04-10 국방과학연구소 생체모방기반 분산형 무선자원할당 기법에서의 파이어링 페이즈 점유 충돌 해결 방법
US10091132B2 (en) * 2016-01-29 2018-10-02 Raytheon Company Systems and methods for resource contention resolution
US10362109B2 (en) * 2016-03-30 2019-07-23 Task Performance Group, Inc. Cloud operating system and method
US10225337B2 (en) * 2016-06-30 2019-03-05 Microsoft Technology Licensing, Llc Modeling and forecasting reserve capacity for overbooked clusters
EP3516895B1 (de) * 2016-10-13 2022-12-28 Huawei Technologies Co., Ltd. Verfahren und einheit zur funkressourcenverwaltung unter verwendung von verstärkungslernen
CN108123987A (zh) * 2016-11-30 2018-06-05 华为技术有限公司 从云计算系统中确定主调度器的方法及装置
US20180255122A1 (en) * 2017-03-02 2018-09-06 Futurewei Technologies, Inc. Learning-based resource management in a data center cloud architecture
US11132631B2 (en) * 2017-05-26 2021-09-28 Oracle International Corporation Computerized system and method for resolving cross-vehicle dependencies for vehicle scheduling
US10686728B2 (en) 2017-07-06 2020-06-16 Huawei Technologies Co., Ltd. Systems and methods for allocating computing resources in distributed computing
US10514956B2 (en) 2017-09-20 2019-12-24 Qualcomm Incorporated Performance hint driven resource allocation
US10671302B1 (en) 2018-10-26 2020-06-02 Pure Storage, Inc. Applying a rate limit across a plurality of storage systems
US10841369B2 (en) 2018-11-26 2020-11-17 International Business Machines Corporation Determining allocatable host system resources to remove from a cluster and return to a host service provider
US10877814B2 (en) 2018-11-26 2020-12-29 International Business Machines Corporation Profiling workloads in host systems allocated to a cluster to determine adjustments to allocation of host systems to the cluster
US10956221B2 (en) 2018-11-26 2021-03-23 International Business Machines Corporation Estimating resource requests for workloads to offload to host systems in a computing environment
US10680912B1 (en) * 2019-01-09 2020-06-09 International Business Machines Corporation Infrastructure resource provisioning using trace-based workload temporal analysis for high performance computing
US11233747B2 (en) * 2019-01-23 2022-01-25 Servicenow, Inc. Systems and methods for acquiring server resources at schedule time
WO2020162800A1 (en) * 2019-02-05 2020-08-13 Telefonaktiebolaget Lm Ericsson (Publ) Conflict prevention in cluster scheduling in a data processing system
US11397617B2 (en) * 2019-02-25 2022-07-26 ControlUp Technologies Ltd. Hardware and communication resources sharing based on user directory group priority
US11062173B2 (en) 2019-10-22 2021-07-13 EMC IP Holding Company LLC Automatic identification of workloads contributing to system performance degradation using machine learning techniques
US11651249B2 (en) 2019-10-22 2023-05-16 EMC IP Holding Company LLC Determining similarity between time series using machine learning techniques
US11175838B2 (en) * 2019-10-22 2021-11-16 EMC IP Holding Company LLC Automatic identification of resources in contention in storage systems using machine learning techniques
US11175829B2 (en) * 2019-10-22 2021-11-16 EMC IP Holding Company LLC Automatic identification of workloads contributing to behavioral changes in storage systems using machine learning techniques
CN110912967A (zh) * 2019-10-31 2020-03-24 北京浪潮数据技术有限公司 一种服务节点调度方法、装置、设备及存储介质
US11544113B2 (en) 2019-11-20 2023-01-03 Google Llc Task scheduling for machine-learning workloads
NL2026462B1 (en) * 2020-09-14 2022-05-12 Microsoft Technology Licensing Llc Reducing placement conflicts between concurrent virtual machine allocations
CN112181603A (zh) * 2020-10-26 2021-01-05 浪潮云信息技术股份公司 一种云环境下的可控制垂直自动伸缩器实现方法及系统
US20220188167A1 (en) * 2020-12-14 2022-06-16 Dell Products, Lp System and method to adapt memory usage of containerized workspaces
US11593192B2 (en) 2021-05-17 2023-02-28 International Business Machines Corporation Detecting resource redundancy and conflicts in a heterogeneous computing environment
US11595321B2 (en) * 2021-07-06 2023-02-28 Vmware, Inc. Cluster capacity management for hyper converged infrastructure updates

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6892316B2 (en) 2001-11-02 2005-05-10 International Business Machines Corporation Switchable resource management in clustered computer system
US7349966B2 (en) 2003-09-30 2008-03-25 International Business Machines Corporation Method, system, and storage medium for providing context-based dynamic policy assignment in a distributed processing environment
WO2005089241A2 (en) 2004-03-13 2005-09-29 Cluster Resources, Inc. System and method for providing object triggers
GB2417580A (en) 2004-08-26 2006-03-01 Hewlett Packard Development Co Method for executing a bag of tasks application on a cluster by loading a slave process onto an idle node in the cluster
US7793293B2 (en) 2004-11-01 2010-09-07 Hewlett-Packard Development Company, L.P. Per processor set scheduling
US20070282778A1 (en) 2006-06-05 2007-12-06 International Business Machines Corporation Policy-based management system with automatic policy selection and creation capabilities by using singular value decomposition technique
US8185899B2 (en) * 2007-03-07 2012-05-22 International Business Machines Corporation Prediction based priority scheduling
US8156502B1 (en) * 2007-06-08 2012-04-10 Hewlett-Packard Development Company, L.P. Computer resource allocation as a function of demand type
US7836185B2 (en) 2008-06-27 2010-11-16 International Business Machines Corporation Common resource management in a server cluster
US8180604B2 (en) * 2008-09-30 2012-05-15 Hewlett-Packard Development Company, L.P. Optimizing a prediction of resource usage of multiple applications in a virtual environment
US8762304B2 (en) 2009-11-03 2014-06-24 Hewlett-Packard Development Company, L.P. Policy scheduling
US8443373B2 (en) * 2010-01-26 2013-05-14 Microsoft Corporation Efficient utilization of idle resources in a resource manager
US8640137B1 (en) 2010-08-30 2014-01-28 Adobe Systems Incorporated Methods and apparatus for resource management in cluster computing
JP5939740B2 (ja) 2011-04-11 2016-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 動的にリソースを割り当てる方法、システム及びプログラム
US9170843B2 (en) 2011-09-24 2015-10-27 Elwha Llc Data handling apparatus adapted for scheduling operations according to resource allocation based on entitlement
US8732291B2 (en) 2012-01-13 2014-05-20 Accenture Global Services Limited Performance interference model for managing consolidated workloads in QOS-aware clouds
KR20130088512A (ko) 2012-01-31 2013-08-08 한국전자통신연구원 클러스터 컴퓨팅 환경에서의 자원 관리 장치 및 방법
US9652288B2 (en) * 2012-03-16 2017-05-16 Microsoft Technology Licensing, Llc Allocation of computational resources with policy selection
CN103188346A (zh) * 2013-03-05 2013-07-03 北京航空航天大学 支持分布式决策的大规模高并发访问i/o服务器负载均衡系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
C. Delimitrou et al., "Paragon: QoS-Aware Scheduling for Heterogeneous Datacenters," Tagungsberichte der 18. Internationalen Konferenz zur Architektur-Unterstützung für Programmiersprachen und Betriebssysteme (ASPLOS) (März 2013)
Hindman et al., "Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center," Tagungsberichte der 8. USENIX-Konferenz zu Entwurf und Umsetzung vernetzter Systeme (NSDI ’11), S. 295 bis 308 (März/April 2011)
J. Bobba et al., "Performance Pathologies in Hardware Transactional Memory," Tagungsberichte des 34. Internationalen Jahressymposiums zur Computer-Architektur (ISCA ’07), S. 81 bis 91 (Juni 2007)
M.F. Spear et al., "Conflict Detection and Validation Strategies for Software Transactional Memory," Tagungsberichte der 20. Internationalen Konferenz zur Verteilten Datenverarbeitung (DISC ’06), S. 179 bis 193 (2006)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022201291A1 (de) 2022-02-08 2023-08-10 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zum Betreiben einer Cloud-Applikation und zum Auswählen einer Skalierungstrategie

Also Published As

Publication number Publication date
US9697045B2 (en) 2017-07-04
CN106020941B (zh) 2019-06-11
CN106020941A (zh) 2016-10-12
US20160283270A1 (en) 2016-09-29

Similar Documents

Publication Publication Date Title
DE102016204680A1 (de) Auswählen von Strategien zum Zuordnen von Ressourcen und Lösen von Ressourcenkonflikten
DE60016283T2 (de) Arbeitsbelastungsverwaltung in einer rechnerumgebung
DE112011101633B4 (de) Virtualisierung und dynamische Ressourcenzuweisung berücksichtigendes Neuordnen von Speicherebenen
DE112016003249T5 (de) Container-Bereitstellung auf Abhängigkeitsgrundlage
DE112012004336B4 (de) System, Verfahren und Programmprodukt für kostenbewusste Auswahl von Vorlagen zum Bereitstellen von gemeinsam genutzten Ressourcen
DE112018004349T5 (de) Dynamische auswahl von bereitstellungskonfigurationen von softwareanwendungen
DE112020000526T5 (de) System und verfahren zum inkrementellen lernen für eine objekterkennung
DE112013000486B4 (de) Anweisungsausgleich durch Anweisungsunsicherheit für Prozessoren mit mehreren Threads
DE112012004999T5 (de) Beschleunigungselement zur Cloud-Bereitstellung
DE112011100094T5 (de) Verfahren und System zum Abstrahieren eines auf nichtfunktionalen Anforderungen beruhenden Einsatzes von virtuellen Maschinen
DE202011110892U1 (de) System von aktivem Risikomanagement, um die Wahrscheinlichkeit des Descheduling der Jobs in Computer-Clustern zu reduzieren
DE102012220514A1 (de) Steuern der nutzung von datenverarbeitungsressourcen ineiner service-datenbank
DE102012217202A1 (de) Verfahren und System zum Optimieren des Platzierens virtueller Maschinen in Cloud-Computing-Umgebungen
DE112010005096T5 (de) Verfahren und Vorrichtungen zum Bewerten der Ressourcen-Kapazität in einem System von virtuellen Containern
DE112021006130T5 (de) Automatisierte orchestrierung von containern durch bewerten von mikrodiensten
DE112018006769T5 (de) Erweiterte zwischenspeicherzuweisung basierend auf virtuellen knotenressourcen
DE112021003908T5 (de) Föderales maschinenlernen durch verwenden von ortsabhängigem hashing
DE112020004661T5 (de) Ermitteln einer optimalen Anzahl von Threads pro Kern in einem Mehrkern-Prozessorkomplex
DE112021003276T5 (de) Ressourcenverwaltung einer softwareanwendung mit mehreren softwarekomponenten
DE112018005018T5 (de) Berechtigungsprüfung von benutzern an mehreren endgeräten
DE112021005586T5 (de) Automatisches skalieren einer abfrage-steuerungsroutine für arbeitslasten im bereich big data auf unternehmensebene
DE112018004415B4 (de) Optimierung von cloud-ressourcen bei operationen in mehrstufigem speicher auf richtliniengrundlage
DE112021005636T5 (de) Migrieren von komplexen legacy-anwendungen
DE112021003184T5 (de) Ermittlung von laufzeitumgebungen für software-container
DE102021130359A1 (de) Ressourcenzuordnung auf der grundlage eines kontextbezogenen szenarios

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE