DE102013205739A1 - Programmgestütztes lastbasiertes verwalten der prozessorbelegung - Google Patents

Programmgestütztes lastbasiertes verwalten der prozessorbelegung Download PDF

Info

Publication number
DE102013205739A1
DE102013205739A1 DE102013205739A DE102013205739A DE102013205739A1 DE 102013205739 A1 DE102013205739 A1 DE 102013205739A1 DE 102013205739 A DE102013205739 A DE 102013205739A DE 102013205739 A DE102013205739 A DE 102013205739A DE 102013205739 A1 DE102013205739 A1 DE 102013205739A1
Authority
DE
Germany
Prior art keywords
computer
utilization
pus
capacity
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102013205739A
Other languages
English (en)
Inventor
Brian Keith Wade
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102013205739A1 publication Critical patent/DE102013205739A1/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Image Processing (AREA)

Abstract

Es werden eine oder mehrere Messungen der Prozessorauslastung durchgeführt. Es wird eine Auslastungshöchstgrenze berechnet. Eine oder mehrere Verarbeitungseinheiten (PUs) werden automatisch hinzugefügt, wenn ermittelt wird, dass die Auslastungshöchstgrenze höher als eine verfügbare PU-Kapazität ist. Eine oder mehrere PUs werden als Reaktion auf das Ermitteln, dass die Auslastungshöchstgrenze zumindest eine PU weniger als die verfügbare PU-Kapazität beträgt, automatisch entfernt.

Description

  • HINTERGRUND
  • Diese Erfindung betrifft allgemein die Verarbeitung in einer Datenverarbeitungsumgebung und insbesondere das programmgestützte Verwalten der Prozessorbelegung.
  • In einem Datenverarbeitungssystem, dem N funktionstechnisch gleichwertige Computer-Verarbeitungseinheiten (PUs, processing units) bereitgestellt werden, verbraucht die auf dem System laufende Arbeitslast häufig weniger Rechenleistung als die N PUs zusammen bereitstellen können. Quantitativ kann dies folgendermaßen ausgedrückt werden: „Das System ist zu weniger als N·100% ausgelastet.” Wenn zum Beispiel N = 16 ist, läge die Vollauslastung bei 1600%, und von einer lediglich die Hälfte der verfügbaren Kapazität verbrauchenden Arbeitslast würde man behaupten, dass sie mit 800% Auslastung läuft.
  • Mehrfachverarbeitungsfähige Betriebssysteme, die derartige Arbeitslasten zuteilen, verteilen die Arbeitslasten häufig gleichmäßig über die N PUs. Das obige Beispiel weiter ausführend, könnte der Zuteiler jede der 16 funktionstechnisch identischen PUs mit 50% Auslastung laufen lassen, wodurch der Arbeitslast genügend Leistung zur Verfügung gestellt wird.
  • In einigen Datenverarbeitungssystemen ist eine derartige gleichmäßige Verteilung auf Grund des Aufwands zum Verwalten mehrerer PUs, der Struktur des Prozessor-Cachespeichers der Maschine und des mit zunehmender Stufe der Mehrfachverarbeitung steigenden Bedarfs an Betriebssystemsperren und gegenseitigem Ausschluss nicht immer der effizienteste Weg zum Verteilen einer derartigen Arbeitslast. Wieder zurück zu dem Beispiel: es ist möglicherweise sinnvoller, wenn der Betriebssystemkernel diese 800% Arbeitslast mit 10 Prozessoren ausführt, die mit einer Auslastung von 80% laufen, wobei sich die verbleibenden sechs Prozessoren im Leerlauf befinden.
  • KURZDARSTELLUNG
  • Eine Ausführungsform beinhaltet ein auf einem Computer ausgeführtes Verfahren. Das Verfahren beinhaltet das Durchführen einer oder mehrerer Messungen der Prozessorauslastung. Es wird eine Auslastungshöchstgrenze berechnet. Eine oder mehrere Verarbeitungseinheiten (PUs) werden automatisch hinzugefügt, wenn ermittelt wird, dass die Auslastungshöchstgrenze höher als eine verfügbare PU-Kapazität ist. Eine oder mehrere PUs werden als Reaktion auf das Ermitteln, dass die Auslastungshöchstgrenze zumindest eine PU weniger als die verfügbare PU-Kapazität beträgt, automatisch entfernt.
  • Eine zusätzliche Ausführungsform beinhaltet ein System. Das System beinhaltet einen Computerprozessor, der so konfiguriert ist, dass er eine oder mehrere Messungen der Prozessorauslastung durchführt. Es wird eine Auslastungshöchstgrenze berechnet. Eine oder mehrere Verarbeitungseinheiten (PUs) werden automatisch hinzugefügt, wenn ermittelt wird, dass die Auslastungshöchstgrenze höher als eine verfügbare PU-Kapazität ist. Eine oder mehrere PUs werden als Reaktion auf das Ermitteln, dass die Auslastungshöchstgrenze zumindest eine PU weniger als die verfügbare PU-Kapazität beträgt, automatisch entfernt.
  • Eine zusätzliche Ausführungsform beinhaltet ein durch einen Verarbeitungsschaltkreis lesbares physisches Speichermedium, auf dem Anweisungen zur Ausführung durch den Verarbeitungsschaltkreis zur Durchführung eines Verfahrens gespeichert sind. Das Verfahren beinhaltet das Durchführen einer oder mehrerer Messungen der Prozessorauslastung. Es wird eine Auslastungshöchstgrenze berechnet. Eine oder mehrere Verarbeitungseinheiten (PUs) werden automatisch hinzugefügt, wenn ermittelt wird, dass die Auslastungshöchstgrenze höher als eine verfügbare PU-Kapazität ist. Eine oder mehrere PUs werden als Reaktion auf das Ermitteln, dass die Auslastungshöchstgrenze zumindest eine PU weniger als die verfügbare PU-Kapazität beträgt, automatisch entfernt.
  • Eine weitere Ausführungsform beinhaltet ein auf einem Computer ausgeführtes Verfahren. Das Verfahren beinhaltet das Durchführen einer oder mehrerer Messungen der Prozessorauslastung. Es werden eine erste und eine zweite Auslastungshöchstgrenze berechnet. Eine oder mehrere Verarbeitungseinheiten (PUs) werden automatisch hinzugefügt, wenn ermittelt wird, dass die höhere der ersten Auslastungshöchstgrenze bzw. zweiten Auslastungshöchstgrenze höher als eine verfügbare PU-Kapazität ist. Eine oder mehrere PUs werden automatisch entfernt, wenn ermittelt wird, dass die höhere der ersten Auslastungshöchstgrenze bzw. zweiten Auslastungshöchstgrenze zumindest eine PU weniger als die verfügbare PU-Kapazität beträgt.
  • Zusätzliche Eigenschaften und Vorteile werden durch die Techniken der vorliegenden Erfindung verwirklicht. Andere Ausführungsformen und Aspekte der Erfindung werden hierin ausführlich beschrieben und sind als Teil der beanspruchten Erfindung anzusehen. Ein besseres Verständnis der Erfindung mit Vorteilen und Eigenschaften ergibt sich aus der Beschreibung und den Zeichnungen.
  • KURZBESCHREIBUNG DER VERSCHIEDENEN ANSICHTEN DER ZEICHNUNGEN
  • Es wird nun Bezug auf die Zeichnungen genommen, wobei gleiche Elemente in den diversen FIGUREN gleich nummeriert sind:
  • 1 zeigt ein schematisches Schaubild eines Systems zum Umsetzen des programmgestützten Verwaltens der Prozessorbelegung, das durch eine Ausführungsform umgesetzt werden kann;
  • 2 zeigt einen Graphen der Auslastung einer Prozessoreinheit in einer Ausführungsform;
  • 3 zeigt eine mathematische Tabelle von Werten, die zufällige variable Werte mit Wahrscheinlichkeits-Prozentsätzen für das Auftreten von Abtastwerten über diesen Werten gemäß einer Ausführungsform verknüpft;
  • 4 zeigt einen Ablaufplan für das programmgestützte Verwalten der Prozessorbelegung, das in einer Ausführungsform umgesetzt werden kann; und
  • 5 zeigt einen Ablaufplan für das programmgestützte Verwalten der Prozessorbelegung, das in einer zusätzlichen Ausführungsform umgesetzt werden kann.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Eine Ausführungsform der vorliegenden Erfindung sorgt für ein programmgestütztes Verwalten der Prozessorkonfiguration.
  • Eine Ausführungsform beinhaltet das Berechnen der gemittelten Verarbeitungslast im Zeitverlauf gemeinsam mit der Standardabweichung. Beruhend auf dem Mittelwert der Verarbeitungslast und der Standardabweichung der Verarbeitungslast und auf einem bestimmten durch den Systemverwalter festgelegten Vertrauensprozentsatz P wird eine Lasthöchstgrenze C berechnet, welche die tatsächliche Last in dem nächsten Abschnitt mit einer Wahrscheinlichkeit von lediglich P % überschreitet. In einer Ausführungsform wird die Tabelle in 3 zum Durchführen dieser Berechnung verwendet. Wenn der Systemverwalter zum Beispiel für eine Fehlerwahrscheinlichkeit von 2% verwalten möchte, läge die Höchstgrenze C bei μ + 2,06·σ. Dann wird beruhend darauf, wie viele CPUs zu diesem Zeitpunkt eingeschaltet sind, ermittelt, ob zum Bewältigen von C mehr CPUs benötigt werden. Wenn mehr CPUs benötigt werden, werden zusätzliche CPUs eingeschaltet, bis die Kombination aus CPUs in der Lage ist, C zu bewältigen. Wenn zum Bewältigen von C weniger CPUs benötigt werden, werden die zusätzlichen CPUs ausgeschaltet.
  • Große Computersysteme arbeiten unter schwankenden Lasten. Häufig sind diese Computersysteme übermäßig groß ausgelegt, um sicherzustellen, dass das System bei dem erwarteten Höchstbedarf genügend Verarbeitungsleistung zum Unterstützen der gesamten Last aufweist. Die Verarbeitungsleistung wird durch das Hinzufügen zusätzlicher PUs zu dem Computersystem bereitgestellt. Eine PU kann einen einzelnen Computerprozessor oder einen Computerkern enthalten. In einer Ausführungsform handelt es sich bei einer PU um einen logischen Prozessor. Die Verarbeitungslast wird üblicherweise über mehrere PUs verteilt, und deshalb kann jeder der Prozessoren einen erheblichen Anteil an nicht voll ausgelasteter Verarbeitungsleistung aufweisen, wenn das System mit weniger als einer maximalen Last betrieben wird.
  • Das Aufgabenverwaltungssystem eines Betriebssystems verteilt die Arbeit unter den Prozessoren und verursacht dadurch einen Verarbeitungsverwaltungsaufwand wie zum Beispiel das Sperren auf Grund von gegenseitigem Ausschluss. Außerdem müssen die zugehörigen Cachespeicherdaten und Anweisungen beim Übertragen der Verarbeitung von PU zu PU ebenfalls verlagert werden. In einem großen System könnte dieser Verwaltungsaufwand erheblich sein und eine wesentliche Auswirkung auf die gesamte Systemverarbeitungszeit haben.
  • Ein Teil dieses Verwaltungsaufwands kann manuell gemindert werden, indem PUs ausgeschaltet werden, wenn von einer niedrigen Last auf dem System ausgegangen wird. Dieses manuelle Anpassen von PUs kann jedoch nicht unerwarteten Ausbrüchen des Verarbeitungsumfangs Rechnung tragen und ist deshalb nur von begrenztem Wert. Ein intelligenterer Ansatz besteht darin, PUs automatisch nach Bedarf ein- und auszuschalten. Hierdurch wird der Prozessorverwaltungsaufwand wesentlich verringert, indem Prozesse auf dem Mindestsatz von PUs ausgeführt werden, der die vorhergesagte Last unterstützt, während man die Fähigkeit hat, in der nahen Zukunft stattfindende Änderungen der Verarbeitungsanforderungen vorherzusagen, und dadurch beruhend auf den vorhergesagten Bedarfen des Gesamtsystems PUs ein- und ausschalten kann.
  • Unter Bezugnahme auf 1 wird nun ein System 100 zum Umsetzen des programmgestützten Verwaltens der Prozessorbelegung beschrieben. In einer Ausführungsform beinhaltet das System 100 einen Host-System-Computer 102, der Computeranweisungen ausführt, um: (1) eine Anwendungslast auszuführen und (2) die CPU-Auslastung als Eingabe für das programmgestützte Verwalten der PU-Konfiguration zu messen und (3) PUs gemäß Vorhersagen bezüglich Kapazitätsbedarfen in naher Zukunft ein- bzw. auszuschalten. Der Host-System-Computer 102 kann in jeder beliebigen Art von Umgebung arbeiten, die in der Lage ist, eine Software-Anwendung auszuführen. Der Host-System-Computer 102 kann eine Hochgeschwindigkeits-Computerverarbeitungseinheit wie zum Beispiel einen Mainframe-Computer aufweisen. In einer Ausführungsform ist der Host-System-Computer 102 Teil eines Unternehmens (z. B. eines Handelsgeschäfts), das programmgestützte Techniken zum Verwalten der CPU-Konfiguration beruhend auf einem vorhergesagten Bedarf an CPU-Leistung verwendet.
  • In einer Ausführungsform enthält das in 1 abgebildete System 100 ein oder mehrere Client-Systeme 104, mit Hilfe derer Benutzer an einer oder mehreren geografischen Orten Kontakt mit dem Host-System-Computer 102 aufnehmen können. Die Client-Systeme 104 sind über ein oder mehrere Netzwerke 106 mit dem Host-System-Computer 102 verbunden. Jedes Client-System 104 kann unter Verwendung eines Universalcomputers umgesetzt werden, das ein Computerprogramm zum Ausführen der hierin beschriebenen Prozesse ausführt. Bei den Client-Systemen 104 kann es sich um Personal Computer (z. B. einen Laptop-Computer, einen elektronischen Assistenten (PDA), eine tragbare Einheit) oder an einen Host-Computer angeschlossene Benutzerstationen handeln. Wenn es sich bei den Client-Systemen 104 um Personal Computer handelt, kann die hierin beschriebene Verarbeitung von einem Client-System 104 und dem Host-System-Computer 102 geteilt werden (z. B. durch Bereitstellen eines Applet für das Client-System 104). Die Client-Systeme 104 können durch berechtigte Benutzer (z. B. Programmierer) bedient werden, um auf Anwendungen, die auf dem Host-System 102 wie zum Beispiel Web-Servern, Datenbank-Servern ausgeführt werden, zuzugreifen.
  • Bei den Netzwerken 106 kann es sich um jede beliebige Art bekannten Netzwerks handeln, einschließlich eines Weitverkehrsnetzes (WAN), eines lokalen Netzwerks (LAN), eines globalen Netzwerks (z. B. das Internet), eines virtuellen privaten Netzwerks (VPN) und eines Intranets, ohne darauf beschränkt zu sein. Die Netzwerke 106 können unter Verwendung eines drahtlosen Netzwerks oder jeder Art gemäß dem Stand der Technik bekannter physischer Netzwerkumsetzung umgesetzt werden. Ein Client-System 104 kann über mehrere Netzwerke (z. B. Intranet und Internet) mit dem Host-System-Computer 102 verbunden sein, so dass nicht sämtliche Client-Systeme 104 über dasselbe Netzwerk mit dem Host-System-Computer 102 verbunden sind. Ein oder mehrere der Client-Systeme 104 und der Host-System-Computer 102 können drahtlos mit den Netzwerken 106 verbunden sein. In einer Ausführungsform gehören zu den Netzwerken 106 ein Intranet und ein oder mehrere Client-Systeme 104, die eine Benutzerschnittstellen-Anwendung (z. B. einen Web-Browser) ausführen, um über die Netzwerke 106 Kontakt mit dem Host-System-Computer 102 aufzunehmen. In einer anderen Ausführungsform ist das Client-System 104 direkt (d. h. nicht über die Netzwerke 106) mit dem Host-System-Computer 102 verbunden, und der Host-System-Computer 102 enthält einen Speicher zum Speichern von Daten zur Unterstützung des programmgestützten Verwaltens der Prozessorbelegung. Alternativ kann eine separate Speichereinheit (z. B. die Speichereinheit 112) für diesen Zweck implementiert werden.
  • In einer Ausführungsform beinhaltet die Speichereinheit 112 ein Daten-Repository mit auf das programmgestützte Verwalten der Prozessorbelegung durch das System 100 bezogenen Daten sowie mit anderen Daten/Informationen, die von der den Host-System-Computer 102 aus 1 darstellenden Einheit gewünscht werden. Die Speichereinheit 112 ist über eine verteilte, die Netzwerke 106 beinhaltende Umgebung hinweg als konsolidierte Datenquelle logisch adressierbar. In der Speichereinheit 112 gespeicherte Informationen können über den Host-System-Computer 102 und/oder die Client-Systeme 104 abgerufen und bearbeitet werden. In einer Ausführungsform beinhaltet die Speichereinheit 112 eine oder mehrere Datenbanken, die z. B. Konfigurationsparameter, Werte, Verfahren und Eigenschaften sowie andere verwandte Informationen enthalten, wie nachfolgend ausführlicher erörtert wird. Ein Fachmann wird verstehen, dass die Speichereinheit 112 ebenfalls andere Strukturen wie zum Beispiel eine sich auf dem Dateisystem befindliche oder über ein Netzwerk (z. B. eines der Netzwerke 106) verteilte oder aus einem Datenstrom von einem anderen sich in einem Netzwerk 106 befindlichen Server stammende XML-Datei aufweisen kann. Außerdem kann sich die gesamte Speichereinheit 112 oder ein Teil davon alternativ auf einem Client-System 104 befinden.
  • Der in dem System aus 1 abgebildete Host-System-Computer 102 kann unter Verwendung einer oder mehrerer Server umgesetzt werden, die als Reaktion auf ein Computerprogramm arbeiten, das auf einem für den Server zugänglichen Speichermedium gespeichert ist. Der Host-System-Computer 102 kann als Netzwerk-Server (z. B. als Web-Server) arbeiten, um mit den Client-Systemen 104 Daten auszutauschen. Der Host-System-Computer 102 bewältigt das Senden und Empfangen von Informationen zu und von den Client-Systemen 104 und kann zugehörige Aufgaben durchführen. Der Host-System-Computer 102 kann ebenfalls eine Firewall beinhalten, um einen unberechtigten Zugriff auf den Host-System-Computer 102 zu verhindern und jegliche Einschränkungen bezüglich berechtigten Zugriffs durchzusetzen. Ein Systemverwalter kann zum Beispiel Zugriff auf das gesamte System sowie die Berechtigung haben, Teile des Systems zu ändern. Eine Firewall kann unter Verwendung herkömmlicher Hardware und/oder Software umgesetzt werden, wie gemäß dem Stand der Technik bekannt ist.
  • Der Host-System-Computer 102 kann ebenfalls als Anwendungsserver arbeiten. Der Host-System-Computer 102 führt ein oder mehrere Computerprogramme aus, um das programmgestützte Verwalten der Prozessorkonfiguration bereitzustellen. Der Host-System-Computer 102 beinhaltet ein Prozessorverwaltungsmodul 108. Wie oben angedeutet, kann die Verarbeitung von den Client-Systemen 104 und dem Host-System-Computer 102 geteilt werden, indem den Client-Systemen 104 eine Anwendung (z. B. ein Java-Applet) bereitgestellt wird. Alternativ kann das Client-System 104 eine eigenständige Software-Anwendung zum Durchführen eines Teils oder der gesamten hierin beschriebenen Verarbeitung beinhalten. Wie vorher beschrieben, sei darauf hingewiesen, dass separate Server zum Umsetzen der Netzwerk-Server-Funktionen und der Anwendungsserverfunktionen verwendet werden können. Alternativ können der Netzwerk-Server, die Firewall und der Anwendungsserver durch einen einzelnen Server umgesetzt werden, der Computerprogramme zum Durchführen der erforderlichen Funktionen ausführt.
  • In einer Ausführungsform wird das Prozessorverwaltungsmodul 108 auf dem Host-Computer-System gemeinsam mit der über die PUs verteilten Arbeitslast ausgeführt. In einer zusätzlichen Ausführungsform wird das Prozessorverwaltungsmodul 108 auf einem separaten Computer-System ausgeführt, das die Arbeitslast nicht ausführt.
  • Es sei darauf hingewiesen, dass das in 1 beschriebene programmgestützte Verwalten der Prozessorbelegung in Hardware, in auf einem Universalcomputer ausgeführter Software oder einer Kombination daraus umgesetzt werden kann.
  • 2 zeigt einen Graphen der Auslastung einer PU in einer Ausführungsform. Die PU-Auslastungskurve 202 gibt die tatsächliche PU-Auslastung im Zeitverlauf an. Beruhend auf der PU-Auslastungskurve 202 wird ein Auslastungsmittelwert (μ) 204 berechnet. Bei dem Auslastungsmittelwert 204 handelt es sich um die für die PU-Auslastungskurve 202 berechnete, gemittelte PU-Auslastung im Zeitverlauf. Beruhend auf der PU-Auslastungskurve 202 und dem Auslastungsmittelwert 204 wird eine Standardabweichung (σ) berechnet. Es sei darauf hingewiesen, dass der Graph aus 2 und die Werte in dem Graphen lediglich dem Zwecke der Veranschaulichung dienen, und dass Ausführungsformen nicht auf irgendwelche konkreten Werte beschränkt sind. Des Weiteren werden die Werte selbst berechnet, wobei das Erzeugen eines Graphen jedoch nicht erforderlich ist und die Werte selbst zum Ermitteln von PU-Anforderungen des Systems verwendet werden.
  • 3 zeigt eine mathematische Tabelle von Werten, die zufällige variable Werte mit Wahrscheinlichkeits-Prozentsätzen für das Auftreten von Abtastwerten über diesen Werten verknüpft. Spalte M gibt mehrere Standardabweichungen von der berechneten, gemittelten PU-Auslastung an, die zum Beispiel aus den Daten aus 2 berechnet wurden. Bei der zweiten Spalte handelt es sich um die berechnete Wahrscheinlichkeit, dass die Auslastungsanforderungen des Systems den Wert in Spalte M überschreiten werden. Deshalb gibt es gemäß der Tabelle aus 3 eine 16-prozentige Wahrscheinlichkeit, dass die PU-Auslastung während des folgenden Zeitabschnitts eine Standardabweichung über der gemittelten PU-Auslastung überschreiten wird. Die Anzahl von benötigten PUs wird unter Verwendung dieses Wahrscheinlichkeitswertes vorhergesagt. In einer Ausführungsform wird das Risiko, dass ein bestimmter Wert M überschritten wird, mit dem Risiko verglichen, das ein Benutzer bereit ist, hinzunehmen. Angenommen, ein Benutzer ist zum Beispiel bereit, ein Risiko von 2% einzugehen, dass die tatsächliche Auslastung M überschreiten wird, dann muss die Anzahl von PUs, die aktiviert werden, in der Lage sein, den aktuellen Prozessorauslastungs-Mittelwert plus 2,06 Standardabweichungen zu unterstützen. Die PU-Anzahl wird folglich entsprechend angepasst, wie nachfolgend ausführlicher erörtert wird.
  • Es sei darauf hingewiesen, dass die Werte in der Tabelle aus 3 lediglich dem Zwecke der Veranschaulichung dienen, und dass Ausführungsformen nicht auf irgendwelche konkreten Werte beschränkt sind.
  • In einer Ausführungsform werden die Daten und die Wahrscheinlichkeitsberechnungen in regelmäßigen Zeitabständen für das gesamte System erzeugt. In einer zusätzlichen Ausführungsform weist das System mehrere heterogene PUs auf, und die Daten und die Wahrscheinlichkeitsberechnungen werden für jeden Typ von PU erzeugt.
  • 4 zeigt einen Ablaufplan für das programmgestützte Verwalten der Prozessorbelegung, das in einer Ausführungsform umgesetzt werden kann. In einer Ausführungsform wird der Prozessablauf aus 4 auf einem Prozessorverwaltungsmodul wie dem Prozessorverwaltungsmodul 108 aus 1 ausgeführt. In Block 402 wird die aktuelle Prozessorauslastung gemessen. In einer Ausführungsform werden vorhergehende Prozessorauslastungswerte zwischengespeichert, und die aktuelle Prozessorauslastung wird dem Cachespeicher hinzugefügt. In Block 404 wird die gemittelte Auslastung für einen Zeitabschnitt X berechnet. In einer Ausführungsform wartet der Schritt des Mittelns der Auslastung zum Beispiel bei Inbetriebnahme des Systems darauf, dass Daten für den Zeitabschnitt X auflaufen. In Block 406 wird eine Standardabweichung der PU-Auslastungsdaten berechnet. In Block 408 wird die CPU-Last-Höchstgrenze C berechnet, die nur mit einer Wahrscheinlichkeit von P % eintritt, wobei P durch den Systemverwalter und unter Verwendung des CPU-Lastmittelwerts, der CPU-Last-Standardabweichung und des entsprechenden Zeilenwerts aus 3 gewählt wurde. In Block 410 wird die berechnete Last-Höchstgrenze mit der Anzahl von aktuell aktivierten PUs verglichen. Wenn C wahrscheinlich die Anzahl von aktuell aktivierten PUs überschreitet, werden in Block 412 eine oder mehrere zusätzliche PUs aktiviert, um den berechneten Höchstwert C zu erfüllen, und die Verarbeitung wird in Block 402 fortgesetzt. Andernfalls wird die Verarbeitung, wenn C die Anzahl von aktivierten PUs zum Beispiel um einen Auslastungsschwellwert nicht überschreitet, in Block 414 fortgesetzt, wo ermittelt wird, ob die berechnete Verarbeitungshöchstgrenze C zumindest eine PU weniger als die Anzahl von aktuell aktivierten PUs beträgt, d. h., ob eine oder mehrere PUs deaktiviert werden können. Wenn ermittelt wird, dass eine oder mehrere PUs deaktiviert werden können, werden in Block 416 eine oder mehrere PUs deaktiviert. Die Verarbeitung wird dann in Block 402 fortgesetzt.
  • Zurück zu Block 414: wenn C wahrscheinlich nicht zumindest eine PU weniger als die Anzahl von aktuell aktivierten PUs beträgt, wird die Verarbeitung in Block 402 fortgesetzt. In einer Ausführungsform wird der Prozessablauf aus 4 zum Vergleichen der berechneten Höchstgrenze C mit der Anzahl von aktuell aktivierten PUs und zum Anpassen der Anzahl von aktivierten PUs des gesamten Systems verwendet. In einer zusätzlichen Ausführungsform weist das System mehrere heterogene PUs auf, und der Prozessablauf aus 4 wird für jede der verschiedenen PU-Typen ausgeführt.
  • 5 zeigt einen Ablaufplan für das programmgestützte Verwalten der Prozessorbelegung, das in einer zusätzlichen Ausführungsform umgesetzt werden kann. In einer Ausführungsform wird der Prozessablauf aus 5 auf einem Prozessorverwaltungsmodul wie dem Prozessorverwaltungsmodul 108 aus 1 ausgeführt. In Block 502 wird die aktuelle Prozessorauslastung gemessen. In einer Ausführungsform werden vorhergehende Prozessorauslastungswerte zwischengespeichert, und die aktuelle Prozessorauslastung wird dem Cachespeicher hinzugefügt. In Block 504 wird die gemittelte Auslastung für einen Zeitabschnitt X berechnet. In einer Ausführungsform wartet der Schritt des Mittelns der Auslastung zum Beispiel bei Inbetriebnahme des Systems darauf, dass Daten für den Zeitabschnitt X auflaufen. In Block 506 wird eine Standardabweichung der PU-Auslastungsdaten berechnet. In Block 508 wird die CPU-Last-Höchstgrenze C berechnet, die nur mit einer Wahrscheinlichkeit von P % eintritt, wobei P durch den Systemverwalter und unter Verwendung des CPU-Lastmittelwerts, der CPU-Last-Standardabweichung und des entsprechenden Zeilenwerts aus 3 gewählt wurde. In Block 510 wird beruhend auf den Höhen der letzten beiden tatsächlichen Auslastungsbeobachtungen und deren Differenz eine alternative Lasthöchstgrenze C' gewählt. Anders ausgedrückt, die alternative Lasthöchstgrenze C' beträgt (letzter Abtastwert) + (letzter Abtastwert minus vorletzter Abtastwert). In Block 512 wird die höhere der Lasthöchstgrenze C bzw. der alternativen Lasthöchstgrenze C' ermittelt (hierin als C'' bezeichnet). In Block 514 wird C'' mit der Anzahl von aktuell aktivierten PUs verglichen. Wenn C'' höher als die Anzahl von aktuell aktivierten PUs ist, werden in Block 516 eine oder mehrere zusätzliche PUs aktiviert, um den Prozessorhöchstwert C'' zu erfüllen, und die Verarbeitung wird in Block 502 fortgesetzt. Andernfalls wird die Verarbeitung, wenn C'' die Anzahl von aktuell aktivierten PUs nicht überschreitet, in Block 518 fortgesetzt, wo ermittelt wird, ob die berechnete Verarbeitungshöchstgrenze C'' zumindest eine PU weniger als die Anzahl von aktuell aktivierten PUs beträgt, d. h., ob eine oder mehrere PUs deaktiviert werden können. Wenn ermittelt wird, dass eine oder mehrere PUs deaktiviert werden können, werden in Block 520 eine oder mehrere PUs deaktiviert. Die Verarbeitung wird dann in Block 502 fortgesetzt.
  • Zurück zu Block 518: wenn C'' wahrscheinlich nicht zumindest eine PU weniger als die Anzahl von aktuell aktivierten PUs beträgt, wird die Verarbeitung in Block 502 fortgesetzt. In einer Ausführungsform wird der Prozessablauf aus 5 zum Vergleichen der berechneten Höchstgrenze C'' mit der Anzahl von aktuell aktivierten PUs und zum Anpassen der Anzahl von aktivierten PUs des gesamten Systems verwendet. In einer zusätzlichen Ausführungsform weist das System mehrere heterogene PUs auf, und der Prozessablauf aus 5 wird für jeden der verschiedenen PU-Typen ausgeführt.
  • In einer Ausführungsform kann ein beliebiger der in den 4 und 5 abgebildeten Abläufe abgeändert werden, indem zu den vorhergesagten Prozessorauslastungswerten ein konstanter Wert Z hinzugefügt wird, wodurch die Anzahl von PUs um den vorhergesagten Wert plus Z erhöht wird, um einen Verarbeitungspuffer zu erzeugen.
  • Zu technischen Auswirkungen und Vorteilen gehört das Verringern des Prozessorverwaltungsaufwands durch das Konsolidieren von Arbeitslasten auf den Mindestsatz von PUs, die zum Verarbeiten der Arbeitslast benötigt werden. Ein zusätzlicher Vorteil liegt in der Fähigkeit, die benötigte Prozessorbelegung eines Satzes von PUs in Echtzeit vorherzusagen, und in der Fähigkeit, die Anzahl von PUs zu erhöhen, um die vorhergesagte Arbeitslast zu erfüllen. Noch ein weiterer Vorteil liegt in der Fähigkeit, die Prozessorauslastung über Gruppen von heterogenen PUs hinweg für jede Gruppe von PUs eines bestimmten Typs vorherzusagen.
  • Die hierin verwendete Terminologie dient lediglich dem Zweck des Beschreibens bestimmter Ausführungsformen und soll die Erfindung nicht einschränken. Die Verwendung der Singularform „ein”, „eine” bzw. „der”, „die”, „das” hierin soll ebenfalls die Pluralformen einschließen, es sei denn, etwas anderes ergibt sich deutlich aus dem Zusammenhang. Es wird ferner darauf hingewiesen, dass die Begriffe „aufweisen” und/oder „aufweisend”, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein von aufgeführten Eigenschaften, ganzen Zahlen, Schritten, Operationen, Elementen und/oder Komponenten angeben, jedoch nicht das Vorhandensein oder das Hinzufügen einer oder mehrerer anderer Eigenschaften, ganzer Zahlen, Schritte, Operationen, Elemente, Komponenten und/oder Gruppen hiervon ausschließen.
  • Die in den nachfolgenden Ansprüchen etwa vorhandenen, entsprechenden Strukturen, Materialien, Schritte und Entsprechungen aller Mittel oder Step-plus-function-Elemente verstehen sich dahingehend, dass sie jede beliebige Struktur, jedes beliebige Material bzw. jeden beliebigen Schritt zur Durchführung der Funktion in Kombination mit anderen beanspruchten Elementen nach Maßgabe der konkreten Beanspruchung aufweisen. Die Beschreibung der vorliegenden Erfindung wurde zum Zwecke der Veranschaulichung und Beschreibung aufgeführt, soll jedoch nicht gesamthaft stehen für bzw. begrenzt sein auf die Erfindung in der beschriebenen Form. Für Fachleute werden viele Abänderungen und Abweichungen ersichtlich sein, ohne von dem Umfang und dem Gedanken der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung bestmöglich zu erläutern und um es anderen Fachleuten zu ermöglichen, die Erfindung für verschiedene Ausführungsformen mit verschiedenen Abänderungen, die für eine bestimmte in Betracht gezogene Verwendung geeignet sind, zu verstehen.
  • Der Fachmann wird verstehen, dass Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt ausgeführt werden können. Entsprechend können Aspekte der vorliegenden Erfindung die Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform (darunter Firmware, im Speicher befindliche Software, Mikrocode, usw.) oder einer Software- und Hardware-Aspekte kombinierenden Ausführungsform annehmen, die hierin alle allgemein als „Schaltkreis”, „Modul” oder „System” bezeichnet sein können. Des Weiteren können Aspekte der vorliegenden Erfindung die Form eines auf einem oder mehreren durch einen Computer lesbaren Medien enthaltenen Computerprogrammprodukts annehmen, die durch einen Computer lesbaren Programmcode enthalten.
  • Es kann jede Kombination aus einem oder mehreren durch einen Computer lesbaren Medien verwendet werden. Bei dem durch einen Computer lesbaren Medium kann es sich um ein durch einen Computer lesbares Signalmedium oder ein durch einen Computer lesbares Speichermedium handeln. Bei einem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine derartige Vorrichtung oder Einheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu konkreteren Beispielen (eine nicht erschöpfende Liste) des durch einen Computer lesbaren Speichermediums gehören die folgenden: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine mobile Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein Lichtwellenleiter, ein mobiler Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede geeignete Kombination daraus. In dem Kontext dieses Dokuments kann es sich bei einem durch einen Computer lesbaren Speichermedium um jedes beliebige physische Medium handeln, das ein Programm enthalten bzw. speichern kann, das von oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Ausführung von Anweisungen verwendet wird.
  • Ein durch einen Computer lesbares Signalmedium kann ein weitergeleitetes Datensignal mit darin enthaltenem durch einen Computer lesbarem Programmcode beinhalten, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein derartiges weitergeleitetes Signal kann eine beliebige Form aus einer Vielfalt an Formen annehmen, darunter elektromagnetische, optische bzw. jede geeignete Kombination daraus, jedoch nicht darauf beschränkt. Bei einem durch einen Computer lesbaren Signalmedium kann es sich um ein beliebiges durch einen Computer lesbares Medium handeln, das kein durch einen Computer lesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Anweisungen übertragen, weiterleiten bzw. transportieren kann.
  • Auf einem durch einen Computer lesbaren Medium enthaltener Programmcode kann unter Verwendung eines beliebigen geeigneten Mediums übertragen werden, darunter drahtlos, drahtgebunden, Lichtwellenleiter-Kabel, HF usw. oder jede geeignete Kombination daraus, jedoch nicht auf diese beschränkt.
  • Computerprogrammcode für das Ausführen von Arbeitsschritten für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Java, Smalltalk, C++ o. ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C” oder ähnliche Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters).
  • Aspekte der vorliegenden Erfindung werden oben unter Bezugnahme auf Ablaufpläne und/oder schematische Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern durch Computerprogrammanweisungen ausgeführt werden können. Diese Computerprogrammanweisungen können dem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen.
  • Diese Computerprogrammanweisungen können auch auf einem durch einen Computer lesbaren Medium gespeichert sein, das einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung bzw. andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass die auf dem durch einen Computer lesbaren Medium gespeicherten Anweisungen ein Herstellungsprodukt herstellen, darunter Anweisungen, welche die/den in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebene(n) Funktion/Schritt umsetzen.
  • Die Computerprogrammanweisungen können auch auf einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung bzw. andere Einheiten geladen werden, um das Ausführen einer Folge von Prozessschritten auf dem Computer, der anderen programmierbaren Vorrichtung bzw. den anderen Einheiten zu veranlassen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführten Anweisungen Verfahren zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktionen/Schritte erzeugen.
  • Wie oben beschrieben, können Ausführungsformen in der Form von auf einem Computer ausgeführten Prozessen und Vorrichtungen zum Ausführen dieser Prozesse ausgeführt sein. In Ausführungsformen ist die Erfindung in durch einen oder mehrere Netzwerkelemente ausgeführtem Computerprogrammcode ausgeführt. Ausführungsformen beinhalten ein Computerprogrammprodukt auf einem durch einen Computer verwendbaren Medium mit -Computerprogrammcode-Logik, die Anweisungen enthält, die auf physischen Medien als Herstellungsprodukt enthalten sind. Beispielhafte Herstellungsprodukte für das durch einen Computer verwendbare Medium können Floppy-Disketten, CD-ROMs, Festplattenlaufwerke, Flash-Laufwerke mit universellem seriellen Bus (USB) oder jedes andere beliebige durch einen Computer lesbare Speichermedium sein, wobei ein Computer eine Vorrichtung zur Ausführung der Erfindung wird, wenn die Computerprogrammcode-Logik in den Computer geladen und durch diesen ausgeführt wird. Ausführungsformen beinhalten zum Beispiel Computerprogrammcode-Logik, sei sie in einem Speichermedium gespeichert, in einen Computer geladen und/oder durch diesen ausgeführt oder über ein Übertragungsmedium übertragen, wie zum Beispiel über elektrische Verdrahtung bzw. Verkabelung, durch Lichtwellenleiter oder über elektromagnetische Strahlung, wobei ein Computer eine Vorrichtung zur Ausführung der Erfindung wird, wenn die Computerprogrammcode-Logik in den Computer geladen und durch diesen ausgeführt wird. Bei Umsetzung auf einem Universal-Mikroprozessor konfigurieren die Segmente der Computerprogrammcode-Logik den Mikroprozessor so, dass er spezifische Logikschaltungen erzeugt.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil eines Codes darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. Es sei auch angemerkt, dass in einigen alternativen Ausführungen die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden können. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder durch Kombinationen aus Spezial-Hardware und Computeranweisungen.

Claims (11)

  1. Auf einem Computer ausgeführtes Verfahren, aufweisend: Durchführen einer oder mehrerer Messungen der Prozessorauslastung; Berechnen einer Auslastungshöchstgrenze durch einen Computer; automatisches Hinzufügen einer oder mehrerer Verarbeitungseinheiten (PUs) als Reaktion auf das Ermitteln, dass die Auslastungshöchstgrenze höher als eine verfügbare PU-Kapazität ist; und automatisches Entfernen einer oder mehrerer PUs als Reaktion auf das Ermitteln, dass die Auslastungshöchstgrenze zumindest eine PU weniger als die verfügbare PU-Kapazität beträgt.
  2. Auf einem Computer ausgeführtes Verfahren nach Anspruch 1, wobei die eine oder mehreren PUs heterogen sind, die PUs nach Typ gruppiert sind und das Durchführen einer oder mehrerer Messungen für jede Gruppe von PUs durchgeführt wird.
  3. Auf einem Computer ausgeführtes Verfahren nach Anspruch 2, wobei das Hinzufügen ferner das Hinzufügen der einen oder mehreren PUs zu einer Gruppe als Reaktion auf das Ermitteln, dass die Auslastungshöchstgrenze eine PU-Kapazität der Gruppe überschreitet, aufweist.
  4. Auf einem Computer ausgeführtes Verfahren nach Anspruch 1, wobei das Hinzufügen auf das Ermitteln hin erfolgt, dass die Auslastungshöchstgrenze plus ein konstanter Wert die verfügbare PU-Kapazität überschreiten wird.
  5. Auf einem Computer ausgeführtes Verfahren nach Anspruch 1, wobei es sich bei der einen oder den mehreren PUs entweder um einen Computerprozessor, einen Prozessorkern oder einen logischen Prozessor handelt.
  6. System, aufweisend: einen Computerprozessor, der so konfiguriert ist, dass er: eine oder mehrere Messungen der Prozessorauslastung durchführt; eine Auslastungshöchstgrenze berechnet; eine oder mehrere Verarbeitungseinheiten (PUs) als Reaktion auf das Ermitteln, dass die Auslastungshöchstgrenze höher als eine verfügbare PU-Kapazität ist, automatisch hinzufügt; und eine oder mehrere PUs als Reaktion auf das Ermitteln, dass die Auslastungshöchstgrenze zumindest eine PU weniger als die verfügbare PU-Kapazität beträgt, automatisch entfernt.
  7. Computerprogrammprodukt, aufweisend: ein physisches durch einen Verarbeitungsschaltkreis lesbares Speichermedium, auf dem Anweisungen zur Ausführung durch den Verarbeitungsschaltkreis zur Durchführung eines Verfahrens gespeichert sind, aufweisend: Durchführen einer oder mehrerer Messungen der Prozessorauslastung; Berechnen eines Prozessorauslastungs-Mittelwerts; Berechnen eines Standardabweichungswerts; Berechnen einer Auslastungshöchstgrenze auf einem Computer; automatisches Hinzufügen einer oder mehrerer Verarbeitungseinheiten (PUs) als Reaktion auf das Ermitteln, dass die Auslastungshöchstgrenze höher als eine verfügbare PU-Kapazität ist; und automatisches Entfernen einer oder mehrerer PUs als Reaktion auf das Ermitteln, dass die Auslastungshöchstgrenze zumindest eine PU weniger als die verfügbare PU-Kapazität beträgt.
  8. Auf einem Computer ausgeführtes Verfahren, aufweisend: Durchführen einer oder mehrerer Messungen der Prozessorauslastung; Berechnen einer ersten Auslastungshöchstgrenze auf einem Computer; Berechnen einer zweiten Auslastungshöchstgrenze auf dem Computer; automatisches Hinzufügen einer oder mehrerer Verarbeitungseinheiten (PUs) als Reaktion auf das Ermitteln, dass die höhere der ersten Auslastungshöchstgrenze bzw. zweiten Auslastungshöchstgrenze höher als eine verfügbare PU-Kapazität ist; und automatisches Entfernen einer oder mehrerer PUs als Reaktion auf das Ermitteln, dass die höhere der ersten Auslastungshöchstgrenze bzw. zweiten Auslastungshöchstgrenze zumindest eine PU weniger als die verfügbare PU-Kapazität beträgt.
  9. Auf einem Computer ausgeführtes Verfahren nach Anspruch 8, wobei die eine oder mehreren PUs heterogen sind, die PUs nach Typ gruppiert sind und das Durchführen einer oder mehrerer Messungen für jede Gruppe von PUs durchgeführt wird, und das Hinzufügen ferner das Hinzufügen der einen oder mehreren PUs zu einer Gruppe als Reaktion auf das Ermitteln, dass die höhere der ersten Auslastungshöchstgrenze bzw. zweiten Auslastungshöchstgrenze eine PU-Kapazität der Gruppe überschreitet, aufweist.
  10. Auf einem Computer ausgeführtes Verfahren nach Anspruch 8, wobei die zweite Auslastungshöchstgrenze auf Höhen der letzten beiden tatsächlichen Auslastungsbeobachtungen und deren Differenz beruht.
  11. Auf einem Computer ausgeführtes Verfahren nach Anspruch 8, wobei das Hinzufügen auf das Ermitteln hin erfolgt, dass ein konstanter Wert plus die höhere der ersten Auslastungshöchstgrenze bzw. zweiten Auslastungshöchstgrenze die verfügbare PU-Kapazität überschreiten wird.
DE102013205739A 2012-04-16 2013-04-02 Programmgestütztes lastbasiertes verwalten der prozessorbelegung Ceased DE102013205739A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/447,406 US9384055B2 (en) 2012-04-16 2012-04-16 Programmatic load-based management of processor population
US13/447,406 2012-04-16

Publications (1)

Publication Number Publication Date
DE102013205739A1 true DE102013205739A1 (de) 2013-10-17

Family

ID=49232358

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013205739A Ceased DE102013205739A1 (de) 2012-04-16 2013-04-02 Programmgestütztes lastbasiertes verwalten der prozessorbelegung

Country Status (4)

Country Link
US (2) US9384055B2 (de)
JP (1) JP6296686B2 (de)
CN (1) CN103377089B (de)
DE (1) DE102013205739A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10395195B2 (en) 2016-01-08 2019-08-27 International Business Machines Corporation Provisioning virtual machines to optimize application licensing costs
CN109840135B (zh) * 2019-01-30 2022-02-18 郑州云海信息技术有限公司 一种负载均衡方法、装置及电子设备
US11704155B2 (en) * 2020-07-01 2023-07-18 International Business Machine Corporation Heterogeneous system on a chip scheduler
US11740933B2 (en) 2020-07-01 2023-08-29 International Business Machines Corporation Heterogeneous system on a chip scheduler with learning agent

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0725340A3 (de) 1995-02-03 1996-10-02 Ibm Vorrichtung und Verfahren zur Verwaltung der Arbeitsbelastung eines verteilten Datenverarbeitungssystems durch Beschränkung des Verbrauchs von Verarbeitungskapazität
JP3716753B2 (ja) 2001-03-21 2005-11-16 日本電気株式会社 マルチプロセッサ構成の計算機間におけるトランザクション負荷分散方法及び方式並びにプログラム
JP2003330900A (ja) 2002-05-09 2003-11-21 Nec Corp アプリケーション並列処理システム及びアプリケーション並列処理方法
DE10221529A1 (de) * 2002-05-14 2003-12-04 Systemonic Ag Verfahren zum gesteuerten Abschalten von Datenverarbeitungseinheiten
US7039559B2 (en) * 2003-03-10 2006-05-02 International Business Machines Corporation Methods and apparatus for performing adaptive and robust prediction
US7668935B2 (en) 2003-08-29 2010-02-23 Kabushiki Kaisha Toshiba Computer system and method for service load distributing
US20050155032A1 (en) * 2004-01-12 2005-07-14 Schantz John L. Dynamic load balancing
KR20060080666A (ko) 2005-01-06 2006-07-11 삼성전자주식회사 다중 프로세서 시스템에서 부하를 분배하기 위한 장치 및방법
EP1949317A1 (de) * 2005-10-24 2008-07-30 Accenture Global Services GmbH Dynamische serverkonsolidierung und konfiguration
US7941805B2 (en) * 2006-08-15 2011-05-10 International Business Machines Corporation Affinity dispatching load balancer with precise CPU consumption data
US20100030877A1 (en) * 2007-02-23 2010-02-04 Mitsuru Yanagisawa Virtual server system and physical server selecting method
US8046767B2 (en) * 2007-04-30 2011-10-25 Hewlett-Packard Development Company, L.P. Systems and methods for providing capacity management of resource pools for servicing workloads
US8656405B2 (en) * 2007-06-25 2014-02-18 International Business Machines Corporation Pulling heavy tasks and pushing light tasks across multiple processor units of differing capacity
US9507640B2 (en) 2008-12-16 2016-11-29 International Business Machines Corporation Multicore processor and method of use that configures core functions based on executing instructions
JP5316128B2 (ja) * 2009-03-17 2013-10-16 トヨタ自動車株式会社 故障診断システム、電子制御ユニット、故障診断方法
US8490062B2 (en) * 2009-08-17 2013-07-16 Siemens Corporation Automatic identification of execution phases in load tests
US9183030B2 (en) * 2011-04-27 2015-11-10 Microsoft Technology Licensing, Llc Virtual processor allocation techniques
US8688620B2 (en) * 2011-09-23 2014-04-01 Hewlett-Packard Development Company, L.P. Anomaly detection in data centers

Also Published As

Publication number Publication date
CN103377089B (zh) 2017-06-13
JP6296686B2 (ja) 2018-03-20
JP2013222459A (ja) 2013-10-28
CN103377089A (zh) 2013-10-30
US9384055B2 (en) 2016-07-05
US20140075447A1 (en) 2014-03-13
US20130275594A1 (en) 2013-10-17
US9384057B2 (en) 2016-07-05

Similar Documents

Publication Publication Date Title
DE112018000193B4 (de) Daten sequenziell in Zonen in einem verstreuten Speichernetzwerk speichern
DE112012000797B4 (de) Mehrfach-Modellierungsparadigma für eine Vorhersageanalytik
DE112012004336B4 (de) System, Verfahren und Programmprodukt für kostenbewusste Auswahl von Vorlagen zum Bereitstellen von gemeinsam genutzten Ressourcen
DE112012004747B4 (de) Verborgenes automatisiertes Spiegeln von Daten für native Schnittstellen in verteilten virtuellen Maschinen
DE112012004999T5 (de) Beschleunigungselement zur Cloud-Bereitstellung
DE112013000656T5 (de) System und Verfahren zum Verringern der Speichernutzung durch optimales Platzieren von virtuellen Maschinen in einem virtualisierten Rechenzentrum
DE112017004808T5 (de) Dynamische zuteilung virtueller cpu-kerne
DE102012215918A1 (de) Spiegeln virtueller Maschinen von einem primären auf einen sekundären Host
DE112017000629T5 (de) Multi-Tenant-Arbeitsspeicherdienst für Architekturen mit Arbeitsspeicher-Pools
DE112012000693T5 (de) Ausführen einer Vielzahl von Instanzen einer Anwendung
DE102013216735A1 (de) Ressourcenzuweisung in einer virtualisierten Datenverarbeitungsumgebung
DE202012013432U1 (de) Speichern von Daten auf Speicherknoten
DE102013204186A1 (de) Ermitteln von Prioritäten für zwischengespeicherte Objekte zum Ordnen des Übertragens von Änderungen an zwischengespeicherten Objekten beruhend auf gemessener Netzwerkbandbreite
DE102014108249A1 (de) Realisieren erweiterter Fehlerbehandlung für einen gemeinsam genutzten Adapter in einem virtualisierten System
DE102016203808A1 (de) Verringern der Bevorrechtigung virtueller Maschinen in einer virtualisierten Umgebung
DE102014116744B4 (de) Management von Informationstechnologieressourcen
DE102013205739A1 (de) Programmgestütztes lastbasiertes verwalten der prozessorbelegung
DE102017124078A1 (de) Ordinale modifikation der dienstgüte
DE112011100098B4 (de) Effiziente Mehrkernverarbeitung von Ereignissen
DE102013022564B4 (de) Aufrechterhalten der Bandbreiten-Servicequalität einer Hardware-Ressource über einen Hardware-Zähler
DE112019005038T5 (de) Ressourcenzuweisung unter verwendung von guthaben mit verteilter segmentverarbeitung
DE102012210064A1 (de) Verwalten von aus Geschäftsobjekten erzeugten Ereignissen
DE102016203828A1 (de) Auf Zugriffsrechten beruhender Speicherfixierungsmechanismus
DE102016008158A1 (de) System und steuerverfahren
DE102014117431A1 (de) Simulationsvorrichtung, Simulationsverfahren und Programm

Legal Events

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