DE102018207377A1 - Vorabvalidierung einer plattform - Google Patents

Vorabvalidierung einer plattform Download PDF

Info

Publication number
DE102018207377A1
DE102018207377A1 DE102018207377.5A DE102018207377A DE102018207377A1 DE 102018207377 A1 DE102018207377 A1 DE 102018207377A1 DE 102018207377 A DE102018207377 A DE 102018207377A DE 102018207377 A1 DE102018207377 A1 DE 102018207377A1
Authority
DE
Germany
Prior art keywords
platform
performance test
execution
prior
results
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
DE102018207377.5A
Other languages
English (en)
Inventor
John Browne
Rory Browne
Tomasz Kantecki
Maryam Tahhan
Timothy Verrall
Tarun Viswanathan
Eoin Walsh
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE102018207377A1 publication Critical patent/DE102018207377A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • 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
    • 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/5044Allocation 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 hardware capabilities
    • 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/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/5055Allocation 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 software capabilities, i.e. software resources associated or available to the machine

Abstract

Bestimmte hier beschriebene Ausführungsformen bieten ein Netzwerkelement, das dazu ausgelegt sein kann, einen Leistungstest vor der Ausführung zu bestimmen, wobei der Leistungstest vor der Ausführung mindestens teilweise auf Anforderungen für einen auszuführenden Prozess basiert, zu veranlassen, dass der Leistungstest vor der Ausführung auf einer Plattform ausgeführt wird, bevor der Prozess auf der Plattform ausgeführt wird, wobei die Plattform eine dynamisch zugewiesene Gruppe von Ressourcen ist, Ergebnisse des Leistungstests vor der Ausführung zu analysieren und zu veranlassen, dass der Prozess auf der Plattform ausgeführt wird, wenn die Ergebnisse des Leistungstests vor der Ausführung eine Bedingung erfüllen. In einem Beispiel ist der Prozess eine virtuelle Netzwerkfunktion.

Description

  • TECHNISCHES GEBIET
  • Diese Offenbarung bezieht sich allgemein auf das Gebiet von Datenverarbeitung und Netzwerkbetrieb und, insbesondere, auf Vorabvalidierung einer Plattform.
  • HINTERGRUND
  • Vorgänge von Datenzentren sind ein wesentlicher Aspekt bei einigen organisatorischen Vorgängen auf der ganzen Welt, da sich Unternehmen darauf verlassen, dass ihre Datenzentren ihre Vorgänge effizient durchführen. In einem Datenzentrum sind Netzwerkverwaltungs- und Orchestrierungssysteme Systeme, die die Anordnung und Verwaltung von Plattformen zum Ausführen von Prozessen bieten. Die Netzwerkverwaltungs- und Orchestrierungssystemkomponenten können dazu ausgelegt sein zu identifizieren, welche Plattformen einen spezifischen Prozess ausführen können. Allerdings können bestehende Verwaltungs- und Orchestrierungssysteme schlechte Platzierungsentscheidungen treffen bei Verwendung einer begrenzten Anzahl von Hostplattformmetriken, wie etwa Größe des Direktzugriffsspeichers (RAM, Random Access Memory), Plattengröße und Anzahl von Computerverarbeitungseinheiten (CPUs, Computer Processing Units). Diese Metriken sind oft nicht ausreichend, um zu verifizieren, dass eine Plattform (d. h. die Umgebung, in der ein Prozess ausgeführt wird) den Prozess bewältigen und die erforderlichen Dienstgütevereinbarungen (SLAs, Service Level Agreements) einhalten kann.
  • Figurenliste
  • Um ein umfassenderes Verständnis der vorliegenden Offenbarung und Merkmale und Vorteile derselben zu bieten, wird Bezug genommen auf die folgende Beschreibung, betrachtet in Verbindung mit den beigefügten Figuren, wobei ähnliche Bezugszeichen ähnliche Teile darstellen, worin:
    • 1 ein vereinfachtes Blockdiagramm eines Systems zum Ermöglichen einer Vorabvalidierung einer Plattform ist, in Übereinstimmung mit einer Ausführungsform der vorliegenden Offenbarung;
    • 2 ein vereinfachtes Blockdiagramm eines Teils eines Systems zum Ermöglichen einer Vorabvalidierung einer Plattform ist, in Übereinstimmung mit einer Ausführungsform der vorliegenden Offenbarung;
    • 3 ein vereinfachtes Blockdiagramm einer Tabelle zur Verwendung in einem System zum Ermöglichen einer Vorabvalidierung einer Plattform ist, in Übereinstimmung mit einer Ausführungsform der vorliegenden Offenbarung;
    • 4 ein vereinfachtes Blockdiagramm einer Tabelle zur Verwendung in einem System zum Ermöglichen einer Vorabvalidierung einer Plattform ist, in Übereinstimmung mit einer Ausführungsform der vorliegenden Offenbarung;
    • 5 ein vereinfachtes Flussdiagramm ist, potenzielle Vorgänge darstellend, die mit dem System in Übereinstimmung mit einer Ausführungsform verbunden werden können;
    • 6 ein vereinfachtes Flussdiagramm ist, potenzielle Vorgänge darstellend, die mit dem System in Übereinstimmung mit einer Ausführungsform verbunden werden können; und
    • 7A und 7B vereinfachte Flussdiagramme sind, potenzielle Vorgänge darstellend, die mit dem System in Übereinstimmung mit einer Ausführungsform verbunden werden können.
  • Die FIGUREN der Zeichnungen sind nicht notwendigerweise maßstabsgetreu gezeichnet, da ihre Abmessungen erheblich variieren können, ohne den Schutzumfang der vorliegenden Offenbarung zu verlassen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • BEISPIELHAFTE AUSFÜHRUNGSFORMEN
  • Die folgende ausführliche Beschreibung legt Ausführungsbeispiele von Einrichtungen, Verfahren und Systemen im Zusammenhang mit einem System zum Ermöglichen von Vorabvalidierung einer Plattform dar. Merkmale, wie etwa Struktur(en), Funktion(en) und/oder Charakteristik(en) werden beispielsweise im Sinne von Zweckmäßigkeit Bezug nehmend auf eine Ausführungsform beschrieben; verschiedene Ausführungsformen können mit einem beliebigen oder beliebigen mehreren geeigneten der beschriebenen Merkmale umgesetzt sein.
  • In der folgenden Beschreibung werden verschiedene Aspekte der dargestellten Umsetzungen unter Verwendung von Begriffen beschrieben, die gewöhnlich von Fachleuten eingesetzt werden, um das Wesen ihrer Arbeit anderen Fachleuten nahezubringen. Allerdings ist es für Fachleute offensichtlich, dass die hier offenbarten Ausführungsformen mit nur einigen der beschriebenen Aspekte umgesetzt sein können. Zum Zwecke der Erläuterung werden spezifische Zahlen, Materialien und Auslegungen dargelegt, um ein umfassendes Verständnis der dargestellten Umsetzungen zu bieten. Allerdings ist es für Fachleute offensichtlich, dass die hier offenbarten Ausführungsformen ohne die spezifischen Details umgesetzt werden können. In anderen Fällen können wohl bekannte Merkmale ausgelassen oder vereinfacht werden, um die dargestellten Umsetzungen nicht einzutrüben.
  • In der folgenden ausführlichen Beschreibung wird Bezug genommen auf die beiliegenden Zeichnungen, die einen Teil hiervon bilden, wobei ähnliche Bezugszeichen durchweg ähnliche Teile bezeichnen, und in denen, mittels Darstellung, Ausführungsformen gezeigt werden, die umgesetzt werden können. Es versteht sich, dass andere Ausführungsformen genutzt und strukturelle oder logische Änderungen vorgenommen werden können, ohne den Schutzumfang der vorliegenden Offenbarung zu verlassen. Daher ist die folgende ausführliche Beschreibung nicht in einem begrenzenden Sinne aufzufassen. Im Rahmen der vorliegenden Offenbarung bedeutet die Phrase „A und/oder B“ so viel wie (A), (B) oder (A und B). Im Rahmen der vorliegenden Offenbarung bedeutet die Phrase „A, B und/oder C“ so viel wie (A), (B), (C), (A und B), (A und C), (B und C) oder (A, B und C).
  • 1 ist ein vereinfachtes Blockdiagramm eines Systems 100 (z. B. Datenzentrum) zum Ermöglichen einer Vorabvalidierung einer Plattform, in Übereinstimmung mit einer Ausführungsform der vorliegenden Offenbarung. System 100 kann ein oder mehrere Netzwerkelemente 104a-104d, eine oder mehrere Plattformen 106a-106c, eine Systemverwaltung 108 und Cloud-Dienste 110 umfassen. Netzwerkelemente 104a-104d, Plattformen 106a-106c, Systemverwaltung 108 und Cloud-Dienste 110 können unter Verwendung von Netzwerk 102 in Kommunikation miteinander sein.
  • Jede der Plattformen 106a-106c kann ein oder mehrere Netzwerkelemente umfassen. Beispielsweise kann Plattform 106a Netzwerkelemente 104e-104g umfassen, Plattform 106b kann Netzwerkelemente 104h und 104i umfassen, und Plattform 106c kann Netzwerkelement 104j umfassen. Jedes Netzwerkelement kann eine Prozessverwaltung, einen oder mehrere Prozesse und Speicher umfassen. Beispielsweise umfasst Netzwerkelement 104c Prozessverwaltung 114a, Speicher 116a und Prozesse 120a-120c. Speicher 116a kann SLAs 170a-170c umfassen. Netzwerkelement 104j umfasst Prozessverwaltung 114b, Speicher 116b und Prozesse 120c und 120d. Speicher 116b kann SLAs 170c und 170d umfassen. Jede SLA kann einem oder mehreren Prozessen entsprechen. Beispielsweise kann SLA 170a Prozess 120a, 120b und/oder Prozess 120c entsprechen. Im Allgemeinen ist jede SLA 170a-170d eine Vereinbarung zwischen einem Dienstanbieter (entweder intern oder extern) und einem Endbenutzer, die die Dienstgüte definiert, die vom Dienstanbieter erwartet wird. In einem Beispiel kann jeder der Prozesse 120a, 120b, 120c und/oder 120d eine Netzwerkfunktion sein. In einem spezifischen Beispiel können Prozesse 120a, 120b, 120c und/oder 120d eine virtuelle Netzwerkfunktion (VNF) sein. Jede der Prozessverwaltungen 114a und 114b kann eine Leistungsengine 118 umfassen.
  • Systemverwaltung 108 kann einen Orchestrator 112 umfassen. Orchestrator 112 kann dazu ausgelegt sein, Netzwerkelemente in einer Plattform zu gruppieren, die während Ausführung von Prozessen 120a und/oder 120b verwendet werden kann. In einem Beispiel kann Systemverwaltung 108 eine Prozessverwaltung ähnlich den Prozessverwaltungen 114a und 114b umfassen. Wenn Netzwerk 102 oder ein Teil von Netzwerk 102 ein Fabric-Netzwerk ist, kann Systemverwaltung 108 als eine Fabric-Verwaltung ausgelegt sein.
  • Unter Verwendung von Leistungsengine 118 kann System 100 dazu ausgelegt sein, Anforderungen zum Ausführen eines Prozesses (z. B. Prozess 120a) zu bestimmen und, bevor der Prozess auf einer Plattform (z. B. Plattform 106a) ausgeführt wird, einen Leistungstest vor der Ausführung (einen Belastungstest) auf der Plattform auszuführen, um zu bestimmen, ob die Plattform in der Lage ist, den Prozess ordnungsgemäß auszuführen und die erforderlichen SLAs einzuhalten. Durch Verwendung des Leistungstests vor der Ausführung vor der tatsächlichen Einsetzung des Prozesses kann das System die Ergebnisse des Leistungstests vor der Ausführung analysieren und bestimmen, ob die Ergebnisse des Leistungstests vor der Ausführung eine Bedingung erfüllen. Beispielsweise kann das System die Ergebnisse des Leistungstests vor der Ausführung analysieren und bestimmen, ob die Plattform in der Lage ist, den Prozess ordnungsgemäß auszuführen, wenn eine oder mehrere SLAs in Verbindung mit dem Prozess eingehalten werden können, und ob andere Prozesse, die Plattform und/oder das Netzwerk 102 durch die Einsetzung des Prozesses negativ beeinflusst werden.
  • In einem Beispiel kann Prozessverwaltung 114 dazu ausgelegt sein, die Anforderungen für den auszuführenden Prozess 120a zu bestimmen, einen Leistungstest vor der Ausführung zu bestimmen, der auf Plattformen 106a, 106b und/oder 106c auszuführen ist, um auf die Anforderungen zu prüfen, zu veranlassen, dass der Leistungstest vor der Ausführung auf Plattformen 106a, 106b und/oder 106c ausgeführt wird, und die Ergebnisse zu analysieren, um zu bestimmen, ob Prozess 120a ordnungsgemäß auf Plattformen 106a, 106b und/oder 106c ausgeführt werden kann. Basierend auf der Ausführung des Leistungstests vor der Ausführung kann jeder der Plattformen eine Bewertung zugeordnet werden. Prozess 120a kann dann auf der Plattform mit der höchsten Bewertung ausgeführt werden.
  • Der Begriff „Plattform“ umfasst eine Umgebung, in der ein Prozess ausgeführt wird und die eine dynamisch zugeordnete Gruppe von Ressourcen umfassen kann. Der Begriff „Prozess“ umfasst eine Instanz eines Computerprogramms, einer Anwendung, Netzwerkfunktion, virtuellen Netzwerkfunktion usw. und kann aus mehreren Ausführungssträngen bestehen. Es versteht sich, dass andere Ausführungsformen genutzt und strukturelle Änderungen vorgenommen werden können, ohne den Schutzumfang der vorliegenden Offenbarung zu verlassen. Wesentliche Flexibilität wird durch System 100 dahingehend bereitgestellt, dass jede geeignete Anordnung und Auslegung bereitgestellt werden kann, ohne die Lehren der vorliegenden Offenbarung zu verlassen.
  • Zum Zwecke der Darstellung bestimmter beispielhafter Techniken von System 100 ist es wichtig, die Kommunikationen zu verstehen, die die Netzwerkumgebung passieren können. Die folgenden grundlegenden Informationen können als eine Basis angesehen werden, von der aus die vorliegende Offenbarung korrekt erläutert werden kann.
  • Ein Netzwerkverwaltungs- und Orchestrierungssystem ist ein System, das automatisierte Anordnung, Koordinierung und Verwaltung von Plattformen, Computersystemen, Middleware und Diensten bereitstellt und es einem Administrator erlaubt, unabhängige Komponenten eines Netzwerks zu überwachen und innerhalb eines größeren Netzwerkverwaltungsrahmenwerks zu verwalten. Typischerweise kann das Netzwerkverwaltungs- und Orchestrierungssystem verwendet werden, um sowohl Software- als auch Hardwarekomponenten in einem Netzwerk zu überwachen. Die Komponenten des Netzwerkverwaltungs- und Orchestrierungssystems können dazu ausgelegt sein zu identifizieren, welche Vorrichtungen auf einem Netzwerk vorhanden sind, auf der Vorrichtungsebene zu überwachen, um die Gesundheit von Netzwerkkomponenten und das Ausmaß zu bestimmen, in dem ihre Leistung mit Kapazitätsplänen und SLAs übereinstimmt, Leistungsindikatoren, wie etwa Bandbreitenausnutzung, Paketverlust, Latenz, Verfügbarkeit und Aktivitätszeit von Routern, Weichen und anderen Netzwerkelementen zu verfolgen.
  • Bestehende Verwaltungs- und Orchestrierungssysteme können schlechte Platzierungsentscheidungen treffen bei Verwendung einer begrenzten Anzahl von Hostplattformmetriken, wie etwa Größe des Direktzugriffsspeichers (RAM, Random Access Memory), Plattengröße und Anzahl von Computerverarbeitungseinheiten (CPUs, Computer Processing Units). Diese Metriken sind häufig nicht ausreichend, um zu verifizieren, dass eine Plattform (d. h. die Umgebung, in der ein Prozess ausgeführt wird) den Prozess bewältigen und die erforderlichen SLAs einhalten kann, da viele andere Prozesse auf der Plattform eingesetzt sein können und dynamisch gemeinsam genutzte Ressourcen verbrauchen können, einschließlich Cache, Speicherbandbreite, harte Echtzeit-Timer und dynamische E/A-Anforderungen. Was benötigt wird, ist ein System, das einen Plattformvalidierungstest vor dem Einsetzen durchführen kann, um zu bestimmen, ob eine Plattform Anforderungen eines Prozesses bewältigen und die erforderlichen SLAs einhalten kann.
  • Ein System für Vorabvalidierung einer Plattform, wie in 1 skizziert, kann diese (und andere) Probleme lösen. System 100 kann dazu ausgelegt sein zu bestimmen, ob eine Plattform Anforderungen eines Prozesses bewältigen und eine erforderliche SLA einhalten kann, durch Verwenden eines Plattformauswahlprozesses vor dem Einsetzen. Der Plattformauswahlprozess vor dem Einsetzen umfasst einen Leistungstest vor der Ausführung, der auf der Plattform unmittelbar vor dem tatsächlichen Einsetzen des Prozesses auf der Plattform ausgeführt wird, um zu bestimmen, ob die Plattform die spezifischen Ressourcen hat, um den Prozess auszuführen. In einem Beispiel kann der Plattformauswahlprozess vor dem Einsetzen Ausführen des Leistungstests auf mehreren Plattformen, Einstufen oder Bewerten der einzelnen Plattformen basierend auf den Ergebnissen des Leistungstests und Ausführen des Prozesses auf der Plattform mit der höchsten Einstufung oder Bewertung umfassen.
  • In einem veranschaulichenden Beispiel kann Prozessverwaltung 114a dazu ausgelegt sein, die Ressourcen zu bestimmen, die nötig sind, um einen Prozess auszuführen. Unter Verwendung von Leistungsengine 118 kann Prozessverwaltung 114 einen Leistungstest vor der Ausführung verwenden, um Ressourcen einer Plattform zu belasten und zu prüfen und zu bestimmen, ob die Plattform eine Bedingung erfüllt. Die Bedingung kann eine Bestimmung umfassen, ob die Plattform genügend Ressourcen hat oder nicht, um die Ausführung des Prozesses und beliebige SLA-Anforderungen zu unterstützen. Beispielsweise kann der Leistungstest vor der Ausführung die LLC-Größe, Speicherbandbreite, Speicherbedarf, verfügbare Platten, Netzwerkanschlüsse, CPU-Taktgeschwindigkeit, Anzahl von CPUs oder Kernen, Latenz des Echtzeit-Timers, Cache, Speicherbandbreite usw. analysieren. Der Leistungstest vor der Ausführung kann auf der Plattform ausgeführt werden, während auch andere Prozesse auf der Plattform ausgeführt werden und dynamisch Ressourcen verbrauchen. Zusätzlich kann der Leistungstest vor der Ausführung Auswirkungen auf andere vorhandene Prozesse während des Tests detektieren durch Einbringen einer synthetischen Arbeitslast, um eine voreingestellte Menge an Ressourcen zu verbrauchen. Belasten der erforderlichen Ressourcen auf der Plattform vor Einsetzen eines Prozesses kann helfen, die negative Auswirkung auf Dienstverfügbarkeit durch Einsetzen eines Prozesses, Aktivieren des Prozesses und nachfolgendes Entdecken, dass die Plattform nicht genügend leistet oder dass der Prozess auf der Plattform fehlschlägt, zu beseitigen. Fehler können auf einen vorher vorhandenen Hardwarefehler oder Ressourcenkonflikte zurückzuführen sein, die nur auftreten, wenn der Prozess und die Plattform belastet werden.
  • In einem spezifischen Beispiel ist der Leistungstest vor der Ausführung spezifisch für die Ressource des Prozesses und die SLA-Anforderungen. System 100 kann so ausgelegt sein, dass sich die Einführung des Leistungstests vor der Ausführung in den Einsetzungsprozess nicht auf die Einsetzungszeit auswirkt, da der Leistungstest vor der Ausführung jederzeit durchgeführt werden kann und die Ergebnisse für spätere Einsetzungsentscheidungen gespeichert werden können. In einer weiteren Ausführungsform kann der Leistungstest vor der Ausführung in Echtzeit (z. B. zur aktuellen Zeit) oder zu einer vorbestimmten Zeit (z. B. 3.00 Uhr, Mitternacht, in 12 Stunden usw.) ausgeführt werden. In einigen Beispielen ist der Leistungstest vor der Ausführung bereits auf dem System eingesetzt, sodass keine zusätzliche Zeit zum Herunterladen anfällt. Die Dauer des Leistungstests vor der Ausführung kann in Abhängigkeit von den Verwaltungssystemprozessen und dem Bedarf als kurz (z. B. etwa 1 Sekunde) oder lang (z. B. etwa 1 Stunde) angegeben werden.
  • Der Leistungstest vor der Ausführung kann vorab geladen werden und erfordert nicht das Herunterladen eines Images. Außerdem kann der Leistungstest vor der Ausführung eine Auslegung zum Anpassen der erforderlichen SLA für den einzusetzenden Prozess unterstützen, was die erforderliche LLC-Größe, Speicherbandbreite, Speicherbedarf (RAM), Platte, Netzwerkanschlüsse, CPU-Taktgeschwindigkeit, Anzahl von CPUs, Latenz des Echtzeit-Timers usw. umfassen kann. Andere auslegbare Parameter können eine Startzeit des Leistungstests vor der Ausführung, eine Dauer des Leistungstests vor der Ausführung, eine Anzahl von Fehlern vor Beendigung usw. umfassen. Beispielsweise können die Leistungstests vor der Ausführung einen zyklischen Test zum Messen der Latenz des Echtzeit-Timers, einen Speicherbandbreitentest, einen Cache-Ausnutzungstest, zum Messen der Anzahl von CPU-Anweisungen pro Zyklus, nicht angehaltenen Zyklen usw. umfassen. Zusätzlich kann der Leistungstest vor der Ausführung auch einen Software-Arbeitslasttest umfassen, der CPU-Auslastung, Platte, Netzwerk, Speicher, Speicherbandbreite und Cacheausnutzung usw. kombiniert.
  • Nach dem Leistungstest vor der Ausführung kann ein Bericht erzeugt werden. Der Bericht kann die Anzahl von Netzwerkfehlern, Speicherbandbreite, Cachebelegung, Anweisungen pro Zyklus, Netzwerkanschlussmetriken, RAM-Metriken usw. umfassen. Anwendungsspeicherbandbreitendaten können durch Verwendung von Speicherbandbreitenüberwachung (MBM, Memory Bandwidth Monitoring) bestimmt werden. Cachemetriken, wie etwa Anwendungscachebelegung, können durch Verwendung von Cacheüberwachungstechnologie (CMT, Cache Monitoring Technology) bestimmt werden. Fehlschläge/Treffer können unter Verwendung von Leistungszählern bestimmt werden. CPU-Metriken können durch Verwendung von Standard-/architektonischen Leistungszählern bestimmt werden. Die Anzahl an CPUs kann vom Betriebssystem (BS) oder einer virtuellen Maschinenverwaltung (VMM, Virtual Machine Manager) genommen werden. Basierend auf dem erzeugten Bericht kann die Prozessverwaltung (oder Orchestrator 112, als ein Planer wirkend) bestimmen, ob die SLA für den Prozess auf der Plattform eingehalten werden kann, indem die tatsächlichen Ergebnisse gegen die erforderliche SLA abgeglichen werden und indem auch alle Fehler berücksichtigt werden, die während der Periode des Leistungstests vor der Ausführung aufgetreten sind.
  • In einem Beispiel kann Einsetzen einer synthetischen Arbeitslast zum Verbrauchen einer voreingestellten Menge von Ressourcen auf der Plattform verwendet werden, um die Auswirkungen der synthetischen Arbeitslast auf Tenants der Hostplattform und zugehörige SLAs zu bestimmen. Dies bietet zusätzliche Informationen darüber, wie der Prozess andere Anwendungen und SLAs beeinflusst, wenn ein Prozess mit den gleichen oder ähnlichen Parametern wie die synthetische Arbeitslast eingesetzt wird. Solche Informationen können Prozessplanungsentscheidungen ergänzen.
  • Elemente von 1 können miteinander über eine oder mehrere Schnittstellen, in denen beliebige geeignete Verbindungen (drahtgebunden oder drahtlos) eingesetzt werden, gekoppelt sein, was machbare Pfade für Kommunikationen über ein Netzwerk (z. B. Netzwerk 102 usw.) bietet. Zusätzlich können ein oder mehrere Elemente aus 1 basierend auf bestimmten Auslegungserfordernissen kombiniert oder aus der Architektur entfernt werden. System 100 kann eine Auslegung umfassen, die TCP/IP-Kommunikationen (Transmission Control Protocol/Internet Protocol) für Sendung und Empfang von Paketen in einem Netzwerk bewältigen kann. System 100 kann, wo angemessen und basierend auf speziellen Erfordernissen, auch in Verbindung mit einem UDP/IP- (User Datagram Protocol/IP) oder jedem anderen geeigneten Protokoll arbeiten.
  • Bezug nehmend auf die Infrastruktur aus 1 ist System 100 in Übereinstimmung mit einem Ausführungsbeispiel gezeigt. Im Allgemeinen kann System 100 in jedem Typ oder jeder Topologie von Netzwerken umgesetzt sein. Netzwerk 102 stellt eine Serie von Punkten oder Knoten von miteinander verbundenen Kommunikationspfaden zum Empfangen und Senden von Paketen von Informationen, die über System 100 ausgebreitet werden, dar. Netzwerk 102 bietet eine Kommunikationsschnittstelle zwischen Knoten und kann als beliebiges Nahbereichsnetzwerk (LAN, Local Area Network), virtuelles Nahbereichsnetzwerk (VLAN, Virtual Local Area Network), Weitbereichsnetzwerk (WAN, Wide Area Network), drahtloses Nahbereichsnetzwerk (WLAN, Wireless Local Area Network), MAN (Metropolitan Area Network), Intranet, Extranet, virtuelles privates Netzwerk (VPN, Virtual Private Network) und jede andere geeignete Architektur oder jedes andere geeignetes System, die bzw. das Kommunikationen in einer Netzwerkumgebung ermöglicht, oder jede geeignete Kombination daraus ausgelegt sein, einschließlich drahtgebundene und/oder drahtlose Kommunikation. Cloud-Dienste 110 können im Allgemeinen als die Verwendung von Datenverarbeitungsressourcen definiert werden, die als ein Dienst über ein Netzwerk, wie etwa das Internet, geliefert werden. Unter Verwendung von Cloud-Diensten 110 können Datenverarbeitungs-, Speicher- und Netzwerkressourcen in einer Cloud-Infrastruktur angeboten werden, effektiv die Arbeitslast von einem lokalen Netzwerk auf das Cloud-Netzwerk verschiebend.
  • In System 100 kann Netzwerkverkehr, der Pakete, Rahmen, Signale, Daten usw. einschließt, gemäß jedem geeigneten Kommunikationsnachrichtenprotokoll gesendet und empfangen werden. Geeignete Kommunikationsnachrichtenprotokolle können ein mehrschichtiges Schema, wie etwa das Kommunikationsmodell offener Systeme (OSI, Open Systems Interconnection) oder beliebige Ableitungen oder Varianten davon (z. B. TCP/IP (Transmission Control Protocol/Internet Protocol), UDP/IP (User Datagram Protocol/IP)) umfassen. Zusätzlich können auch Funksignalkommunikationen über ein Mobilfunknetzwerk in System 100 bereitgestellt sein. Geeignete Schnittstellen und Infrastruktur können bereitgestellt sein, um Kommunikation mit dem Mobilfunknetzwerk zu ermöglichen.
  • Der Begriff „Paket“, wie hier verwendet, bezieht sich auf eine Einheit von Daten, die zwischen einem Quellknoten und einem Zielknoten auf einem paketvermittelten Netzwerk geleitet werden kann. Ein Paket umfasst eine Quellnetzwerkadresse und eine Zielnetzwerkadresse. Diese Netzwerkadressen können Internetprotokolladressen (IP, Internet Protocol) in einem TCP/IP-Nachrichtenprotokoll sein. Der Begriff „Daten“, wie hier verwendet, bezieht sich auf jeden Typ von binären, numerischen, Sprach-, Video-, Text- oder Skriptdaten oder jeden anderen Typ von Quell- oder Objektcode oder beliebige andere geeignete Informationen in jedem geeigneten Format, die von einem Punkt zu einem anderen in elektronischen Vorrichtungen und/oder Netzwerken kommuniziert werden können. Die Daten können helfen, einen Status eines Netzwerkelements oder eines Netzwerks zu bestimmen. Der Begriff „Status“ soll den Betriebszustand einer Ressource, Verstopfung des Netzwerks, Daten bezüglich Verkehrs- oder Durchflussmustern des Netzwerks oder einen anderen Typ von Daten oder Informationen, die helfen, die Leistung, Zustand, Bedingung usw. einer Ressource oder des Netzwerks zu bestimmen, entweder insgesamt oder bezüglich einer oder mehrerer Ressourcen, umfassen. Zusätzlich sind Nachrichten, Anforderungen, Antworten und Abfragen Formen von Netzwerkverkehr und können daher Pakete, Rahmen, Signale, Daten usw. umfassen.
  • In einer beispielhaften Umsetzung sind Netzwerkelemente 104a-104j dazu bestimmt, Netzwerkeinrichtungen, Server, Router, Weichen, Gateways, Brücken, Lastausgleicher, Prozessoren, Module oder jede(s) andere geeignete Vorrichtung, Komponente, Element oder Objekt, dazu betreibbar, Informationen in einer Netzwerkumgebung auszutauschen, zu umschließen. Netzwerkelemente 104a-104j können beliebige geeignete Hardware, Software, Komponenten, Module oder Objekte, die die Vorgänge davon erleichtern, sowie geeignete Schnittstellen zum Empfangen, Senden und/oder anderweitigen Kommunizieren von Daten oder Informationen in einer Netzwerkumgebung umfassen. Dies kann geeignete Algorithmen und Kommunikationsprotokolle einschließen, die das effektive Austauschen von Daten oder Informationen ermöglichen. Jedes der Netzwerkelemente 104a-104j kann virtuell sein oder virtuelle Elemente umfassen.
  • Hinsichtlich der internen Struktur im Zusammenhang mit System 100 kann jedes der Netzwerkelemente 104a-104j Speicherelemente zum Speichern von Informationen, die in den hier umrissenen Vorgängen zu verwenden sind, umfassen. Jedes der Netzwerkelemente 104a-104j kann Informationen in jedem geeigneten Speicherelement (z. B. Direktzugriffsspeicher (RAM, Random Access Memory), Nur-LeseSpeicher (ROM, Read-Only Memory), löschbarer programmierbarer ROM (EPROM, Erasable Programmable ROM), elektrisch löschbarer programmierbarer ROM (EEPROM, Electrically Erasable Programmable ROM), anwendungsspezifische integrierte Schaltung (ASIC, Application Specific Integrated Circuit usw.), Software, Hardware, Firmware oder in jeder bzw. jedem anderen geeigneten Komponente, Vorrichtung oder Objekt, wo geeignet und basierend auf bestimmten Erfordernissen, halten. Jedes der hier erörterten Speicherobjekte sollte entsprechend als innerhalb des weiten Begriffs „Speicherelemente“ enthalten aufgefasst werden. Darüber hinaus können die Informationen, die in System 100 verwendet, nachverfolgt, gesendet oder empfangen werden, in einer bzw. einem beliebigen Datenbank, Register, Warteschlange, Tabelle, Cache, Steuerungsliste oder anderen Speicherstruktur, auf die alle in einem beliebigen geeigneten Zeitrahmen Bezug genommen werden kann, bereitgestellt sein. Jede solche Speicheroption kann auch innerhalb des weiten Begriffs „Speicherelement“, wie hier verwendet, enthalten sein.
  • In bestimmten beispielhaften Umsetzungen können die hier umrissenen Funktionen in Logik umgesetzt sein, die in einem oder mehreren greifbaren Medien codiert ist (z. B. eingebettete Logik in einem ASIC, Digitalsignalprozessor(DSP)-Anweisungen, Software (potenziell einschließlich Objektcode und Quellcode), die durch einen Prozessor oder eine andere ähnliche Maschine usw. auszuführen ist), was nicht-flüchtige computerlesbare Medien einschließen kann. In einigen dieser Fälle können Speicherelemente Daten speichern, die für die hier beschriebenen Vorgänge verwendet werden. Dies umfasst, dass die Speicherelemente in der Lage sind, Software, Logik, Code oder Prozessoranweisungen, die ausgeführt werden, um die hier beschriebenen Aktivitäten durchzuführen, zu speichern.
  • In einer beispielhaften Umsetzung können Elemente von System 100, wie etwa Netzwerkelemente 104a-104j, Softwaremodule (z. B. Prozessverwaltung 114a und 114b und Leistungsengine 118 usw.) umfassen, um Vorgänge, wie hier umrissen, zu erzielen oder zu unterstützen. Diese Module können in jeder geeigneten Weise passend kombiniert werden, was auf bestimmten Auslegungs- und/oder Bereitstellungserfordernissen basieren kann. In Ausführungsbeispielen können solche Vorgänge durch Hardware, die extern zu diesen Elementen umgesetzt ist, durchgeführt werden oder in irgendeine andere Netzwerkvorrichtung eingeschlossen sein, um die beabsichtigte Funktionalität zu erzielen. Ferner können die Module als Software, Hardware, Firmware oder jede geeignete Kombination daraus umgesetzt sein. Diese Elemente können auch Software (oder Erwiderungssoftware) umfassen, die mit anderen Netzwerkelementen koordinieren kann, um die Vorgänge, wie hier umrissen, zu erzielen.
  • Zusätzlich kann jedes der Netzwerkelemente 104a-104j einen Prozessor (oder Kern eines Prozessors) umfassen, der Software oder einen Algorithmus zum Durchführen der Aktivitäten, wie hier erörtert, ausführen kann. Ein Prozessor kann jeden Typ von Anweisungen in Verbindung mit den Daten ausführen, um die hier ausgeführten Operationen zu erzielen. In einem Beispiel könnten die Prozessoren ein Element oder einen Artikel (zum Beispiel Daten) aus einem Zustand oder Ding in einen anderen Zustand oder ein anderes Ding umwandeln. In einem anderen Beispiel können die hier umrissenen Aktivitäten mit fester Logik oder programmierbarer Logik umgesetzt sein (z. B. von einem Prozessor ausgeführte Software/Computeranweisungen), und die hier identifizierten Elemente können irgendein Typ eines programmierbaren Prozessors, einer programmierbaren digitalen Logik (z. B. ein feldprogrammierbares Gate-Array (FPGA, Field Programmable Gate Array), eines löschbaren, programmierbaren Nur-Lese-Speichers (EPROM, Erasable Programmable Read-Only Memory), eines elektrisch löschbaren, programmierbaren Nur-Lese-Speichers (EEPROM, Electrically Erasable Programmable Read-Only Memory)) oder eines ASIC sein, der digitale Logik, Software, Code, elektronische Anweisungen oder jede geeignete Kombination daraus umfasst. Jede(s) der hier beschriebenen potenziellen Verarbeitungselemente, Module und Maschinen sollte als innerhalb des weiten Begriffs „Prozessor“ enthalten aufgefasst werden.
  • Bezug nehmend auf 2, ist 2 ein vereinfachtes Blockdiagramm von Prozessverwaltung 114 zur Verwendung in System 100, in Übereinstimmung mit einer Ausführungsform der vorliegenden Offenbarung. Wie in 2 dargestellt, kann Prozessverwaltung 114 Leistungsengine 118, eine Netzwerktabelle 124, eine Datenbank für Leistungstest vor der Ausführung 126, Prozessanforderungen 128, feste Plattformfähigkeiten 132 und Ergebnistabelle für Leistungstest vor der Ausführung 174 umfassen. In einem Beispiel können Netzwerktabelle 124, Datenbank für Leistungstest vor der Ausführung 126, Prozessanforderungen 128, feste Plattformfähigkeiten 132 und Ergebnisdatenbank für Leistungstest vor der Ausführung 174 in Speicher (z. B. Speicher 116a oder 116b) gespeichert werden.
  • Netzwerktabelle 124 kann eine Liste von verfügbaren Plattformen und Daten im Zusammenhang mit jeder der Plattformen umfassen. Beispielsweise kann Netzwerktabelle 124 eine Liste von Netzwerkelementen auf einer Plattform, die Position jedes der Netzwerkelemente, einen Netzwerknamen für jedes der Netzwerkelemente, Auslegung jedes der Netzwerkelemente, Spezifikationen jedes der Netzwerkelemente, Daten vom Originalausrüstungshersteller (OEM, Original Equipment Manufacturer) für jedes der Netzwerkelemente usw. umfassen. Die Datenbank für Leistungstest vor der Ausführung 126 kann einen oder mehrere Leistungstests vor der Ausführung 172a und 172b umfassen, die verwendet werden können, um eine oder mehrere Plattformen zu belasten. Prozessanforderungen 128 können Daten hinsichtlich der Anforderungen für einen spezifischen auszuführenden Prozess umfassen. Beispielsweise kann Prozess_A zum Ausführen Parameter_A, Parameter_B und Parameter_C erfordern. Feste Plattformfähigkeiten 132 können Daten im Zusammenhang mit den Fähigkeiten, Parametern usw. der Plattform umfassen, die fest sind. Beispielsweise können feste Plattformfähigkeiten 132 Daten im Zusammenhang mit Funktionen, wie etwa feste Hardwarebeschleuniger für Kryptografie und Komprimierung, Grafikverarbeitungseinheiten (GPUs, Graphic Processing Units), Fähigkeiten von Netzwerkschnittstellenkarten (NIC, Network Interface Card), wie etwa Inline-Kryptografie, Verkehrsverwaltung, Klassifizierung, Verkehrsverteilung, Anzahl von Anschlüssen, Anschlussgeschwindigkeiten usw., integrierte feste CPU-Fähigkeiten, wie etwa spezifische Befehlssätze (z. B. Streaminganweisungen, Vektoranweisungen, Ressourcenrichtungsdaten für Cachezuordnung usw.), andere CPU-Fähigkeiten, wie etwa CPU-Kernzählungen oder die Anzahl von Kernen in einer spezifischen CPU, Turbofähigkeiten, Anzahl von CPUs auf einer Plattform usw. umfassen. Die Datenbank mit Ergebnissen des Leistungstests vor der Ausführung 174 kann Ergebnisse des Leistungstests vor der Ausführung 176a und 176b umfassen. Ergebnisse des Leistungstests vor der Ausführung 176a und 176b sind die Ergebnisse, nachdem ein Leistungstest vor der Ausführung auf einer oder mehreren Plattformen ausgeführt wurde. Beispielsweise können Ergebnisse des Leistungstests vor der Ausführung 176a die Ergebnisse sein, nachdem ein Leistungstest vor der Ausführung 172a auf einer oder mehreren Plattformen ausgeführt wurde. In ähnlicher Weise können Ergebnisse des Leistungstests vor der Ausführung 176b die Ergebnisse sein, nachdem ein Leistungstest vor der Ausführung 172b auf einer oder mehreren Plattformen ausgeführt wurde. Jedes der Ergebnisse des Leistungstests vor der Ausführung 176a und 176b kann verwendet werden, um Einsetzungsentscheidungen im Hinblick auf andere Prozesse zu treffen, wenn die anderen Prozesse ähnlich den Prozessen 120a oder 120b sind. Wenn beispielsweise ein neuer Prozess ähnlich Prozess 120a ist, dann können die Ergebnisse des Leistungstests vor der Ausführung 176a verwendet werden, um eine potenzielle Plattform oder Plattformen zu bestimmen, wo der neue Prozess ausgeführt werden kann.
  • Leistungsengine 118 kann eine Prozessanforderungsengine 134, eine Leistungstestengine 136, eine Plattformanalyseengine 138 und eine Bewertungsengine 140 umfassen. Prozessanforderungsengine 134 kann dazu ausgelegt sein, die Anforderungen zum Ausführen eines Prozesses (z. B. Prozess 120a oder 120b) zu bestimmen. In einem Beispiel kann Prozessanforderungsengine 134 auf Prozessanforderungen 128 in Speicher 116 zugreifen, um die zum Ausführen von Prozess 120a nötigen Anforderungen zu bestimmen. In einem weiteren Beispiel kann Prozessanforderungsengine 134 Prozess 120a analysieren und die zum Ausführen von Prozess 120a nötigen Anforderungen bestimmen. In einem spezifischen Beispiel kann Prozessanforderungsengine 134 dazu ausgelegt sein, den Quellcode von Prozess 120a zu analysieren, um die zum Ausführen von Prozess 120a nötigen Anforderungen zu bestimmen. In einem weiteren spezifischen Beispiel kann Prozessanforderungsengine 134 dazu ausgelegt sein, Prozess 120a teilweise auszuführen und die zum Ausführen von Prozess 120a nach der teilweisen Ausführung nötigen Anforderungen zu bestimmen. Insbesondere kann Prozess 120a eine Diensteengine sein, die eine oder mehrere virtuelle Netzwerkfunktionen initiiert oder auslöst. Teilweises Ausführen von Prozess 120a kann die eine oder mehreren virtuellen Netzwerkfunktionen exponieren und der Prozessanforderungsengine 134 ermöglichen, die eine oder mehreren virtuellen Netzwerkfunktionen zu analysieren und die Anforderungen zum Ausführen der virtuellen Netzwerkfunktionen zu bestimmen. Leistungstestengine 136 kann dazu ausgelegt sein, einen oder mehrere Leistungstests vor der Ausführung zu bestimmen, die auf einer Plattform ausgeführt werden können, um zu bestimmen, ob die Plattform die Bedingung zum Einschließen der zum Ausführen des Prozesses nötigen Anforderungen erfüllt. Beispielsweise kann Leistungstestengine 136 auf die Datenbank für Leistungstest vor der Ausführung 126 zugreifen und einen oder mehrere vorab ausgelegte und vorab geladene Leistungstests (z. B. Leistungstest vor der Ausführung 172a oder 172b) verwenden, um auf einer oder mehreren Plattformen auszuführen. In einem weiteren Beispiel kann Leistungstestengine 136 bestimmen, ob ein Leistungstest bereits auf der einen oder den mehreren Plattformen durchgeführt wurde, und wenn dies der Fall ist, kann Leistungstestengine 136 die Ergebnisse aus der Ergebnisdatenbank für Leistungstest vor der Ausführung 174 erhalten.
  • Plattformanalyseengine 138 kann dazu ausgelegt sein, die Ergebnisse des Leistungstests vor der Ausführung zu analysieren. In einem Beispiel kann Plattformanalyseengine 138 die Ergebnisse des Leistungstests vor der Ausführung analysieren und bestimmen, ob eine vorbestimmte Bedingung erfüllt ist. Insbesondere kann die Bedingung erfüllt sein, wenn die Plattform alle erforderlichen Ressourcen zum Ausführen des Prozesses hat. In einem weiteren spezifischen Beispiel kann die Bedingung erfüllt sein, wenn die Plattform die Anforderungen für einen auszuführenden Prozess umfasst und kann die Anforderungen einer mit dem Prozess verbundenen SLA einhalten. In noch einem weiteren spezifischen Beispiel kann Bewertungsengine 140 der Plattform eine Bewertung basierend auf den Ergebnissen des Leistungstests vor der Ausführung zuordnen, und wenn die Bewertung höher als eine Schwelle ist, dann kann die Bedingung erfüllt sein. In einem weiteren Beispiel, wenn mehr als eine Plattform getestet wurde, kann Bewertungsengine 40 dazu ausgelegt sein, jeder getesteten Plattform eine Wertung zuzuordnen, und der Prozess kann auf der Plattform mit der höchsten Bewertung ausgeführt werden. Andere Kriterien können verwendet werden, um zu bestimmen, ob die Ergebnisse des auf der Plattform ausgeführten Leistungstests vor der Ausführung eine Bedingung erfüllen.
  • Bezug nehmend auf 3, ist 3 ein vereinfachtes Blockdiagramm eines Leistungstests vor der Ausführung zur Verwendung in einem System 100, in Übereinstimmung mit einer Ausführungsform der vorliegenden Offenbarung. Wie in 3 dargestellt, kann Leistungstest vor der Ausführung 172a einen oder mehrere Parameter umfassen, die verwendet werden können, um eine Plattform zu analysieren. Die Parameter können sich auf Ressourcen und Plattformcharakteristiken beziehen, die benötigt werden, um einen Prozess auszuführen. Beispielsweise kann Leistungstest vor der Ausführung 172a eine Plattformspalte 142, eine Spalte Parameter_A 144, eine Spalte Parameter_B 146, eine Spalte Parameter_C 148, eine Spalte Parameter_D 150 und eine Spalte Parameter_E 152 umfassen. Spalte Parameter_A 144 kann einen Test vom Typ Bestanden/Nicht bestanden umfassen, um zu bestimmen, ob oder ob nicht eine Plattform spezifischen SLA-Anforderungen entspricht, eine spezifische Komponente auf der Plattform vorhanden ist, die Plattform die erforderliche LLC-Größe zum Ausführen des Prozesses hat, die Plattform die erforderliche Speicherbandbreite zum Ausführen des Prozesses hat, die Plattform den Speicherbedarf (RAM) zum Ausführen des Prozesses hat, die Plattform die erforderliche(n) Platte oder Platten zum Ausführen des Prozesses hat, die Plattform die erforderlichen Netzwerkanschlüsse zum Ausführen des Prozesses hat, die Plattform die erforderliche CPU-Taktgeschwindigkeit zum Ausführen des Prozesses hat usw. Spalte Parameter_B 146 kann einen Test der Cachenutzung einer Plattform umfassen. Spalte Parameter_C 148 kann einen Test dazu umfassen, ob ein Element oder eine Bedingung auf der Plattform verfügbar ist (z. B. eine spezifische Platte, ein spezifisches Protokoll, ein Netzwerkpfad, eine Anwendung, eine Vorrichtung usw.). Spalte Parameter_D 150 kann einen Test hinsichtlich der Menge an Speicher oder des Speicherbedarfs, der verfügbar sein kann, umfassen. Spalte Parameter_E 152 kann einen Test hinsichtlich der Anzahl von CPUs/Kernen in der Plattform umfassen, die verfügbar wären, um den Prozess auszuführen. In anderen Beispielen kann Leistungstest vor der Ausführung 172a andere Parameter umfassen, die verwendet werden können, um eine Plattform zu analysieren. Die in 3 gezeigten Parameter dienen nur zur Veranschaulichung, und jede Kombination der dargestellten Parameter und/oder anderer Parameter, die zum Analysieren der Plattform verwendet werden können, kann verwendet werden.
  • Bezug nehmend auf 4, ist 4 ein beispielhaftes Ergebnis eines Leistungstests vor der Ausführung 176a, mögliche Details darstellend, die mit System 100 verknüpft werden können, in Übereinstimmung mit einer Ausführungsform. In einem Beispiel kann Plattformanalyseengine 138 die Ergebnisse des Leistungstests vor der Ausführung analysieren, und Bewertungsengine 140 kann jeder Plattform eine Bewertung zuordnen, wenn der Leistungstest vor der Ausführung auf mehreren Plattformen ausgeführt wurde. Beispielsweise können Ergebnisse des Leistungstests vor der Ausführung 176a erstellt werden, nachdem Leistungstestengine 136 den Leistungstest vor der Ausführung 172a auf mehreren Plattformen ausgeführt hat. Ergebnisse des Leistungstests vor der Ausführung 176a können eine Plattformidentifizierungsspalte 156, eine Bewertungsspalte 158, eine Ergebnisspalte Parameter_A 160, eine Ergebnisspalte Parameter_B 162, eine Ergebnisspalte Parameter_C 164, eine Ergebnisspalte Parameter_D 166 und eine Ergebnisspalte Parameter_E 168 umfassen. Plattformanalyseengine 138 kann auch Ergebnisse des Leistungstests vor der Ausführung 176a verwenden, um zu bestimmen, ob eine spezifische Plattform eine Bedingung erfüllt (z. B. ob die Plattform die Ressourcen umfasst, die nötig sind, um einen Prozess auszuführen, und eine oder mehrere SLAs in Verbindung mit dem Prozess einhalten kann).
  • In einem veranschaulichenden Beispiel wurde ein Leistungstest vor der Ausführung auf Plattformen A-D ausgeführt. Plattform A wurde eine Bewertung von 0,9 zugeordnet. Plattform A hat den Test in Parameter_A bestanden, hatte eine Cacheausnutzung von 100%, das Element oder die Bedingung in Parameter_C war verfügbar, die RAM-Größe war 10 mb und die Zahl der verfügbaren CPUs/Kerne war 4. Demgegenüber wurde Plattform C eine Bewertung von 0,5 zugeordnet. Plattform C hat den Test in Parameter_A bestanden, hatte eine Cacheausnutzung von 50%, das Element oder die Bedingung in Parameter_C war nicht verfügbar, die RAM-Größe war 5 mb und die Zahl der verfügbaren CPUs/Kerne war 4. In anderen Beispielen können Leistungstest vor der Ausführung 172a und/oder Ergebnisse des Leistungstests vor der Ausführung 176a andere Typen von Indikatoren als Bestanden/Nicht bestanden oder einen Prozentsatz zum Anzeigen des Niveaus oder Betriebsstatus eines Elements in der Plattform, das während der Ausführung des Prozesses verwendet werden kann, umfassen. Beispielsweise können sich andere Indikatoren auf Ressourcenlast oder Überlast, auf einer Kernressource verfügbare Datenverarbeitungskapazität, die Füllung oder Last eines Puffers oder Speichers, Menge von Verkehr durch eine Ressource, eine thermische Statusprüfung, Kern/CPU-Temperatur, Kühlgebläsedrehzahl, elektromechanische/Kerncharakteristiken, auf einer Kernressource verfügbare Datenverarbeitungskapazität usw. beziehen.
  • Bezug nehmend auf 5, ist 5 ein beispielhaftes Flussdiagramm, mögliche Vorgänge eines Flusses 500 darstellend, die mit Vorabvalidierung einer Plattform verknüpft werden können, in Übereinstimmung mit einer Ausführungsform. In einer Ausführungsform können ein oder mehrere Vorgänge von Fluss 500 durch Leistungsengine 118 durchgeführt werden. Bei 502 werden Anforderungen für einen auszuführenden Prozess bestimmt. Beispielsweise können die Anforderungen für den auszuführenden Prozess eine Anforderung umfassen, eine mit dem Prozess verbundene SLA zu erfüllen. Bei 504 wird ein Leistungstest (z. B. Leistungstest vor der Ausführung 172a) zum Testen der Anforderungen bestimmt. Bei 506 wird eine unter Verwendung des Leistungstests zu analysierende Plattform bestimmt. Beispielsweise können Plattform 106a, 106b oder 106c oder Netzwerkelemente 104a, 104b und 104d (wobei Netzwerkelemente 104a, 104b und 104d eine Plattform bilden, die Prozess 120a ausführen kann) unter Verwendung des Leistungstests analysiert werden. Bei 508 wird der Leistungstest auf der Plattform ausgeführt. Der Leistungstest kann auf der Plattform ausgeführt werden, während auch andere Prozesse auf der Plattform ausgeführt werden und dynamisch Ressourcen verbrauchen. Bei 510 werden die Ergebnisse des Leistungstests analysiert. Bei 512 wird bestimmt, ob die Plattform den Leistungstest besteht (z. B. eine Bedingung erfüllt). Wenn beispielsweise die Plattform die Anforderungen für einen auszuführenden Prozess umfasst und die Anforderungen einer mit dem Prozess verbundenen SLA einhalten kann, dann erfüllt die Plattform eine Bedingung und besteht den Leistungstest. In einem weiteren spezifischen Beispiel kann Bewertungsengine 140 der Plattform eine Bewertung basierend auf den Ergebnissen des Leistungstests vor der Ausführung zuordnen, und wenn die Bewertung eine Bedingung, höher als eine Schwelle zu sein, erfüllt, dann besteht die Plattform den Leistungstest. Wenn die Plattform den Leistungstest nicht bestanden hat, dann kehrt der Prozess zu 506 zurück, und unter Verwendung des Leistungstests wird eine (neue) zu analysierende Plattform bestimmt. Wenn die Plattform den Leistungstest bestanden hat, dann wird der Prozess auf der Plattform ausgeführt, wie in 514.
  • Bezug nehmend auf 6, ist 6 ein beispielhaftes Flussdiagramm, mögliche Vorgänge eines Flusses 600 darstellend, die mit Vorabvalidierung einer Plattform verknüpft werden können, in Übereinstimmung mit einer Ausführungsform. In einer Ausführungsform können ein oder mehrere Vorgänge von Fluss 600 durch Leistungsengine 118 durchgeführt werden. Bei 602 werden Anforderungen für einen auszuführenden Prozess bestimmt. Beispielsweise kann Prozessanforderungsengine 134 die Anforderungen zum Ausführen von Prozess 120a unter Verwendung von Prozessanforderungen 128 in Speicher 116 bestimmen, oder Prozessanforderungsengine 134 kann Prozess 120a analysieren und die notwendigen Anforderungen zum Ausführen von Prozess 120a bestimmen. Bei 604 wird Leistungstest vor der Ausführung zum Testen der Anforderungen bestimmt. Beispielsweise kann Leistungstestengine 136 den Leistungstest vor der Ausführung bestimmen, der auf einer Plattform (z. B. Plattform 106a) ausgeführt werden kann, unter Verwendung der Datenbank für den Leistungstest vor der Ausführung 126 in Speicher 116, oder Leistungstestengine 136 kann die bestimmten Anforderungen zum Ausführen von Prozess 120a analysieren und einen Leistungstest vor der Ausführung erzeugen. Bei 606 wird der Leistungstest vor der Ausführung auf mehreren Plattformen ausgeführt. Beispielsweise kann der Leistungstest vor der Ausführung auf Plattform 106a und 106c sowie auf Netzwerkelementen 104a und 104b ausgeführt werden (wobei Netzwerkelemente 104a und 104b eine Plattform bilden, die Prozess 120a ausführen kann). Der Leistungstest vor der Ausführung kann auf jeder Plattform ausgeführt werden, während auch andere Prozesse auf den Plattformen ausgeführt werden und dynamisch Ressourcen verbrauchen. Bei 608 werden, für jede Plattform, die Ergebnisse des Leistungstests vor der Ausführung analysiert, und jeder Plattform wird eine Bewertung zugeordnet. Beispielsweise kann Bewertungsengine 140 die Ergebnisse des Leistungstests vor der Ausführung analysieren und eine Tabelle ähnlich den Ergebnissen des Leistungstests vor der Ausführung 176a, wie in 4 dargestellt, erzeugen. Bei 610 wird die Plattform mit der höchsten Bewertung bestimmt. Bei 612 wird der Prozess auf der Plattform mit der höchsten Bewertung ausgeführt.
  • Bezug nehmend auf 7A und 7B, sind 7A und 7B beispielhafte Flussdiagramme, mögliche Vorgänge eines Flusses 700 darstellend, die mit Vorabvalidierung einer Plattform verknüpft werden können, in Übereinstimmung mit einer Ausführungsform. In einer Ausführungsform können ein oder mehrere Vorgänge von Fluss 700 durch Leistungsengine 118 durchgeführt werden. Bei 702 werden Hardwareanforderungen eines Prozesses bestimmt. Beispielsweise kann Prozessanforderungsengine 134 dazu ausgelegt sein, die Hardwareanforderungen für die korrekte Ausführung von Prozess 120a unter Verwendung von Prozessanforderungen 128 zu bestimmen. In einem weiteren Beispiel kann Prozessanforderungsengine 134 Prozess 120a analysieren und die für korrekte Ausführung von Prozess 120a nötigen Hardwareanforderungen bestimmen. Bei 704 werden die Leistungsanforderungen des Prozesses bestimmt. Beispielsweise kann Prozessanforderungsengine 134 dazu ausgelegt sein, die Leistungsanforderungen für die korrekte Ausführung von Prozess 120a unter Verwendung von Prozessanforderungen 128 zu bestimmen. In einem weiteren Beispiel kann Prozessanforderungsengine 134 Prozess 120a analysieren und die für korrekte Ausführung von Prozess 120a nötigen Leistungsanforderungen bestimmen. Bei 706 wird eine Plattform zum Ausführen des Prozesses bestimmt. Bei 708 wird ein Leistungstest vor der Ausführung konfiguriert. Bei 710 werden feste Plattformfähigkeiten vom System bestimmt. Beispielsweise kann Prozessverwaltung 114 unter Verwendung von festen Plattformfähigkeiten 132 die festen Fähigkeiten der Plattform bestimmen, die den Leistungstest vor der Ausführung ausführt. Kennen der festen Fähigkeiten der Plattform kann helfen, die Ergebnisse des Leistungstests vor der Ausführung zu analysieren und kann helfen zu bestimmen, ob der Prozess erfolgreich auf der Plattform ausgeführt werden kann. Bei 712 wird der Leistungstest vor der Ausführung ausgeführt. Beispielsweise kann Leistungstestengine 136 den Leistungstest vor der Ausführung ausführen. Bei 714 werden Metriken für die Plattform während und/oder nach Ausführung des Leistungstests vor der Ausführung bestimmt. Beispielsweise kann Plattformanalyseengine 138 dazu ausgelegt sein, Metriken für die Plattform während und/oder nach Ausführung des Leistungstests vor der Ausführung zu bestimmen. Bei 716 werden Metriken für den Prozess während und/oder nach Ausführung des Leistungstests vor der Ausführung bestimmt. Beispielsweise kann Plattformanalyseengine 138 dazu ausgelegt sein, Metriken für den Prozess während und/oder nach Ausführung des Leistungstests vor der Ausführung zu bestimmen. Die Metriken für die Plattform und das Netzwerk sind wichtig für rechtzeitigen Transport von Daten durch aggregierte Netzwerkelemente, wie etwa Gateways und Weichen. Für Paketverarbeitungsarbeitslasten (z. B. Telekommunikationsarbeitslasten in 3G/4G, Breitband, WiFi usw.) können die Metriken Durchsatz in stromaufwärtiger und stromabwärtiger Richtung, Paketverzögerungsvariation oder Schwankungen, fallen gelassene Pakete, Auslastung von CPU/Kern usw. umfassen. Für Echtzeitarbeitslasten (z. B. 3G/4G-Basisstationen, Funknetzwerksteuerungen usw.) können die Metriken eine Zeitsteuerungsfristanforderung, eine Angabe, wie oft die Zeitsteuerungsfristanforderung verfehlt wurde usw. umfassen. Bei 718 werden die Ergebnisse des Leistungstests vor der Ausführung analysiert.
  • Bei 720 wird bestimmt, ob der Prozess korrekt auf der Plattform ausgeführt werden kann. Wenn der Prozess korrekt auf der Plattform ausgeführt werden kann, dann wird der Prozess auf der Plattform ausgeführt, wie in 722. Wenn der Prozess nicht korrekt auf der Plattform ausgeführt werden kann, dann wird bestimmt, ob andere Plattformen verfügbar sind, um den Leistungstest vor der Ausführung auszuführen, wie in 724. Wenn andere Plattformen verfügbar sind, um den Leistungstest vor der Ausführung auszuführen, dann wird eine (neue) Plattform zum Ausführen des Prozesses bestimmt, wie in 706. Wenn keine anderen Plattformen verfügbar sind, um den Leistungstest vor der Ausführung auszuführen, dann wird jeder Plattform, auf der der Leistungstest vor der Ausführung ausgeführt wurde, eine Bewertung zugeordnet, wie in 726. Beispielsweise kann Bewertungsengine 140 für jede Plattform, die den Leistungstest vor der Ausführung ausgeführt hat, eine Bewertung ähnlich der in 4 dargestellten Bewertung zuordnen. Bei 728 wird die Plattform mit der höchsten Bewertung bestimmt. Bei 730 wird bestimmt, ob die höchste Bewertung eine Schwellenbewertung erfüllt. Wenn die Bewertung eine Schwellenbewertung erfüllt, dann wird der Prozess auf der Plattform mit der höchsten Bewertung ausgeführt, wie in 732. Wenn die Bewertung die Schwellenbewertung nicht erfüllt, dann wird der Prozess nicht ausgeführt, wie in 734. Bei 736 wird eine Fehlermeldung erzeugt.
  • Es ist anzumerken, das bei den hier angegebenen Beispielen Interaktion beschrieben werden kann anhand von zwei, drei oder mehr Netzwerkelementen. Dies erfolgte allerdings nur aus Gründen der Klarheit und als Beispiel. In bestimmten Fällen kann es einfacher sein, eine oder mehrere der Funktionalitäten einer gegebenen Menge von Flüssen zu beschreiben, indem nur auf eine begrenzte Anzahl von Netzwerkelementen Bezug genommen wird. Es versteht sich, dass System 100 und seine Lehren unmittelbar skalierbar sind und eine große Anzahl von Komponenten sowie kompliziertere/ausgeklügeltere Anordnungen und Auslegungen beinhalten können. Entsprechend sollen die bereitgestellten Beispiele nicht den Schutzumfang begrenzen oder die breiten Lehren von System 100 behindern, wie sie potenziell in einer Myriade von anderen Architekturen angewendet werden.
  • Es ist auch wichtig anzumerken, dass die Vorgänge in den vorherigen Flussdiagrammen (d. h. 5-7B) nur einige der möglichen korrelierenden Szenarien und Muster darstellen, die durch, oder innerhalb von, System 100 ausgeführt werden können. Einige dieser Vorgänge können gelöscht oder entfernt werden, wo angemessen, oder diese Vorgänge können modifiziert oder erheblich geändert werden, ohne den Schutzumfang der vorliegenden Offenbarung zu verlassen. Zusätzlich wurde eine Anzahl dieser Vorgänge als gleichzeitig mit, oder parallel zu, einem oder mehreren Vorgängen ausgeführt beschrieben. Allerdings kann die Zeitsteuerung dieser Vorgänge erheblich geändert werden. Die vorhergehenden Vorgangsflüsse wurden als Beispiel und zum Zwecke der Diskussion dargeboten. Wesentliche Flexibilität wird durch System 100 dahingehend bereitgestellt, dass beliebige geeignete Anordnungen, Chronologien, Auslegungen und Zeitsteuerungsmechanismen bereitgestellt werden können, ohne die Lehren der vorliegenden Offenbarung zu verlassen.
  • Obwohl die vorliegende Offenbarung ausführlich mit Bezug auf bestimmte Anordnungen und Auslegungen beschrieben wurde, können diese beispielhaften Auslegungen und Anordnungen erheblich geändert werden, ohne den Schutzumfang der vorliegenden Offenbarung zu verlassen. Darüber hinaus können bestimmte Komponenten basierend auf speziellen Erfordernissen und Umsetzungen kombiniert, getrennt, eliminiert oder hinzugefügt werden. Zusätzlich können, obwohl System 100 mit Bezug auf bestimmte Elemente und Vorgänge dargestellt wurde, die den Kommunikationsprozess erleichtern, diese Elemente und Vorgänge durch beliebige geeignete Architektur, Protokolle und/oder Prozesse ersetzt werden, die die beabsichtigte Funktionalität von System 100 erzielen.
  • Zahlreiche andere Änderungen, Ersetzungen, Variationen, Abwandlungen und Modifikationen können für Fachleute ermittelt werden, und die vorliegende Offenbarung soll all diese Änderungen, Ersetzungen, Variationen, Abwandlungen als in den Schutzumfang der beigefügten Ansprüche fallend umfassen. Zur Unterstützung des United States Patent and Trademark Office (USPTO) und, zusätzlich, aller Leser jedes auf dieser Anmeldung ausgegebenen Patents bei der Interpretation der hier beigefügten Ansprüche möchte der Anmelder anmerken, dass der Anmelder: (a) nicht beabsichtigt, dass einer der beigefügten Ansprüche Paragraph Sechs (6) von 35 U.S.C. Abschnitt 112 anführt, wie zum Zeitpunkt der Anmeldung vorhanden, sofern nicht die Wörter „Mittel zu“ oder „Schritt für“ spezifisch in den bestimmten Ansprüchen verwendet werden; und (b) nicht beabsichtigt, durch irgendeine Aussage in der Spezifikation, diese Offenbarung in einer Weise einzuschränken, die anderweitig nicht in den beigefügten Ansprüchen widergespiegelt wird.
  • ANDERE HINWEISE UND BEISPIELE
  • Beispiel C1 ist ein maschinenlesbares Speichermedium oder maschinenlesbare Medien mit einer oder mehreren Anweisungen, die, wenn durch mindestens einen Prozessor ausgeführt, den mindestens einen Prozessor veranlassen, einen Leistungstest vor der Ausführung zu bestimmen, wobei der Leistungstest vor der Ausführung mindestens teilweise auf Anforderungen für einen auszuführenden Prozess basiert, veranlassen, dass der Leistungstest vor der Ausführung auf einer Plattform ausgeführt wird, bevor der Prozess auf der Plattform ausgeführt wird, wobei die Plattform eine dynamisch zugewiesene Gruppe von Ressourcen ist, Ergebnisse des Leistungstests vor der Ausführung analysieren und veranlassen, dass der Prozess auf der Plattform ausgeführt wird, wenn die Ergebnisse des Leistungstests vor der Ausführung eine Bedingung erfüllen.
  • In Beispiel C2 kann der Gegenstand aus Beispiel C1 optional umfassen, dass die eine oder mehreren Anweisungen, wenn durch den mindestens einen Prozessor ausgeführt, ferner den mindestens einen Prozessor veranlassen zu veranlassen, auf jeder der mehreren Plattformen ausgeführt zu werden, und jeder der mehreren Plattformen eine Bewertung zuzuordnen, wobei die Bewertung für die einzelnen Plattformen auf den Ergebnissen des Leistungstests vor der Ausführung basiert, der auf den mehreren Plattformen ausgeführt wird.
  • In Beispiel C3 kann der Gegenstand aus einem beliebigen der Beispiele C1-C2 optional umfassen, dass die eine oder mehreren Anweisungen, wenn durch den mindestens einen Prozessor ausgeführt, ferner den mindestens einen Prozessor veranlassen, eine Plattform mit einer höchsten Bewertung zu bestimmen, und veranlassen, dass der Prozess auf der Plattform mit der höchsten Bewertung ausgeführt wird.
  • In Beispiel C4 kann der Gegenstand aus einem beliebigen der Beispiele C1-C3 optional umfassen, dass die Bedingung beinhaltet, dass die Plattform eine mit dem Prozess verbundene Dienstgütevereinbarung einhält.
  • In Beispiel C5 kann der Gegenstand aus einem beliebigen der Beispiele C1-C4 optional umfassen, dass der Prozess eine virtuelle Netzwerkfunktion ist.
  • In Beispiel C6 kann der Gegenstand aus einem beliebigen der Beispiele C1-C5 optional umfassen, dass mehrere Vorrichtungen in der Plattform virtuelle Maschinen sind.
  • In Beispiel C7 kann der Gegenstand aus einem beliebigen der Beispiele C1-C6 optional umfassen, dass die Ergebnisse des Leistungstests vor der Ausführung analysiert werden, um eine Ergebnistabelle des Leistungstests vor der Ausführung zu erzeugen.
  • In Beispiel C8 kann der Gegenstand aus einem beliebigen der Beispiele C1-C7 optional umfassen, dass der Leistungstest vor der Ausführung auf der Plattform ausgeführt wird, während andere Prozesse auch auf der Plattform ausgeführt werden und dynamisch Ressourcen verbrauchen.
  • In Beispiel C9 kann der Gegenstand aus einem beliebigen der Beispiele C1-C8 optional umfassen, dass die Ergebnistabelle des Leistungstests vor der Ausführung in lokalem Speicher gespeichert wird.
  • In Beispiel A1 kann eine Einrichtung Speicher, eine Leistungsengine und mindestens einen Prozessor umfassen. Die Leistungsengine kann dazu ausgelegt sein, den mindestens einen Prozessor zu veranlassen, einen Leistungstest vor der Ausführung zu bestimmen, wobei der Leistungstest vor der Ausführung mindestens teilweise auf Anforderungen für einen auszuführenden Prozess basiert, zu veranlassen, dass der Leistungstest vor der Ausführung auf einer Plattform ausgeführt wird, bevor der Prozess auf der Plattform ausgeführt wird, wobei die Plattform eine dynamisch zugewiesene Gruppe von Ressourcen ist, Ergebnisse des Leistungstests vor der Ausführung zu analysieren und zu veranlassen, dass der Prozess auf der Plattform ausgeführt wird, wenn die Ergebnisse des Leistungstests vor der Ausführung eine Bedingung erfüllen.
  • In Beispiel A2 kann der Gegenstand aus Beispiel A1 optional umfassen, dass die Leistungsengine ferner dazu ausgelegt ist, den Prozessor zu veranlassen, zu veranlassen, dass der Leistungstest vor der Ausführung auf jeder der mehreren Plattformen ausgeführt wird, und jeder der mehreren Plattformen eine Bewertung zuzuordnen, wobei die Bewertung für die einzelnen Plattformen auf den Ergebnissen des Leistungstests vor der Ausführung basiert, der auf den mehreren Plattformen ausgeführt wird.
  • In Beispiel A3 kann der Gegenstand aus einem beliebigen der Beispiele A1-A2 optional umfassen, dass der mindestens eine Prozessor ferner dazu ausgelegt ist zu veranlassen, dass die Leistungsengine eine Plattform mit einer höchsten Bewertung bestimmt, und zu veranlassen, dass der Prozess auf der Plattform mit der höchsten Bewertung ausgeführt wird.
  • In Beispiel A4 kann der Gegenstand aus einem beliebigen der Beispiele A1-A3 optional umfassen, dass die Bedingung beinhaltet, dass die Plattform eine mit dem Prozess verbundene Dienstgütevereinbarung einhält.
  • In Beispiel A5 kann der Gegenstand aus einem beliebigen der Beispiele A1-A4 optional umfassen, dass der Prozess eine virtuelle Netzwerkfunktion ist.
  • Beispiel M1 ist ein Verfahren, das Bestimmen eines Leistungstests vor der Ausführung umfasst, wobei der Leistungstest vor der Ausführung mindestens teilweise auf Anforderungen für einen auszuführenden Prozess basiert, veranlassend, dass der Leistungstest vor der Ausführung auf einer Plattform ausgeführt wird, bevor der Prozess auf der Plattform ausgeführt wird, wobei die Plattform eine dynamisch zugewiesene Gruppe von Ressourcen ist, Ergebnisse des Leistungstests vor der Ausführung analysierend und veranlassend, dass der Prozess auf der Plattform ausgeführt wird, wenn die Ergebnisse des Leistungstests vor der Ausführung eine Bedingung erfüllen.
  • In Beispiel M2 kann der Gegenstand aus Beispiel M1 optional umfassen: Veranlassen, dass der Leistungstest vor der Ausführung auf mehreren Plattformen ausgeführt wird, und Zuordnen einer Bewertung zu jeder der mehreren Plattformen, wobei die Bewertung für die einzelnen Plattformen auf den Ergebnissen des Leistungstests vor der Ausführung basiert, der auf den mehreren Plattformen ausgeführt wird.
  • In Beispiel M3 kann der Gegenstand aus einem beliebigen der Beispiele M1-M2 optional umfassen: Bestimmen einer Plattform mit einer höchsten Bewertung und Veranlassen, dass der Prozess auf der Plattform mit der höchsten Bewertung ausgeführt wird.
  • In Beispiel M4 kann der Gegenstand aus einem beliebigen der Beispiele M1-M3 optional umfassen, dass die Bedingung beinhaltet, dass die Plattform eine mit dem Prozess verbundene Dienstgütevereinbarung einhält.
  • In Beispiel M5 kann der Gegenstand aus einem beliebigen der Beispiele M1-M4 optional umfassen, dass mehrere Vorrichtungen in der Plattform virtuelle Maschinen sind.
  • In Beispiel M6 kann der Gegenstand aus einem beliebigen der Beispiele M1-M5 optional umfassen, dass der Prozess eine virtuelle Netzwerkfunktion ist.
  • Beispiel S1 ist eine Plattform für Vorabvalidierung einer Plattform, wobei die Plattform Speicher, einen oder mehrere Prozessoren und eine in einem Netzwerkelement befindliche Leistungsengine umfassen kann. Die Leistungsengine kann dazu ausgelegt sein, einen Leistungstest vor der Ausführung zu bestimmen, wobei der Leistungstest vor der Ausführung mindestens teilweise auf Anforderungen für einen auszuführenden Prozess basiert, zu veranlassen, dass der Leistungstest vor der Ausführung auf einer Plattform ausgeführt wird, bevor der Prozess auf der Plattform ausgeführt wird, wobei die Plattform eine dynamisch zugewiesene Gruppe von Ressourcen ist, Ergebnisse des Leistungstests vor der Ausführung zu analysieren und zu veranlassen, dass der Prozess auf der Plattform ausgeführt wird, wenn die Ergebnisse des Leistungstests vor der Ausführung eine Bedingung erfüllen.
  • In Beispiel S2 kann der Gegenstand aus Beispiel S1 optional umfassen, dass die Leistungsengine ferner dazu ausgelegt ist zu veranlassen, dass der Leistungstest vor der Ausführung auf mehreren Plattformen ausgeführt wird, und jeder der mehreren Plattformen eine Bewertung zuzuordnen, wobei die Bewertung auf den Ergebnissen des Leistungstests vor der Ausführung basiert, der auf den mehreren Plattformen ausgeführt wird.
  • In Beispiel S3 kann der Gegenstand aus einem beliebigen der Beispiele S1-S2 optional umfassen, dass die Leistungsengine ferner dazu ausgelegt ist, eine Plattform mit einer höchsten Bewertung zu bestimmen und zu veranlassen, dass der Prozess auf der Plattform mit der höchsten Bewertung ausgeführt wird.
  • In Beispiel S4 kann der Gegenstand aus einem beliebigen der Beispiele S1-S3 optional umfassen, dass die Bedingung beinhaltet, dass die Plattform eine mit dem Prozess verbundene Dienstgütevereinbarung einhält.
  • In Beispiel S5 kann der Gegenstand aus einem beliebigen der Beispiele S1-S4 optional umfassen, dass der Prozess eine virtuelle Netzwerkfunktion ist.
  • In Beispiel S6 kann der Gegenstand aus einem beliebigen der Beispiele S1-S5 optional umfassen, dass mehrere Vorrichtungen in der Plattform virtuelle Maschinen sind.
  • In Beispiel S7 kann der Gegenstand aus einem beliebigen der Beispiele S1-S6 optional umfassen, dass der Leistungstest vor der Ausführung in lokalem Speicher gespeichert wird.
  • Beispiel AA1 ist eine Vorrichtung, umfassend, Speicher, einen oder mehrere Prozessoren, Mittel zum Bestimmen eines Leistungstests vor der Ausführung, wobei der Leistungstest vor der Ausführung mindestens teilweise auf Anforderungen für einen auszuführenden Prozess basiert, Mittel zum Veranlassen, dass der Leistungstest vor der Ausführung auf einer Plattform ausgeführt wird, bevor der Prozess auf der Plattform ausgeführt wird, wobei die Plattform eine dynamisch zugewiesene Gruppe von Ressourcen ist, Mittel zum Analysieren von Ergebnissen des Leistungstests vor der Ausführung und Mittel zum Veranlassen, dass der Prozess auf der Plattform ausgeführt wird, wenn die Ergebnisse des Leistungstests vor der Ausführung eine Bedingung erfüllen.
  • In Beispiel AA2 kann der Gegenstand aus Beispiel AA1 optional umfassen Mittel zum Veranlassen, dass der Leistungstest vor der Ausführung auf jeder der mehreren Plattformen ausgeführt wird und Mittel zum Zuordnen einer Bewertung zu jeder der mehreren Plattformen, wobei die Bewertung für die einzelnen Plattformen auf den Ergebnissen des Leistungstests vor der Ausführung basiert, der auf den mehreren Plattformen ausgeführt wird.
  • In Beispiel AA3 kann der Gegenstand aus einem beliebigen der Beispiele AA1-AA2 optional umfassen: Mittel zum Bestimmen einer Plattform mit einer höchsten Bewertung und Mittel zum Veranlassen, dass der Prozess auf der Plattform mit der höchsten Bewertung ausgeführt wird.
  • In Beispiel AA4 kann der Gegenstand aus einem beliebigen der Beispiele AA1-AA3 optional umfassen, dass die Bedingung beinhaltet, dass die Plattform eine mit dem Prozess verbundene Dienstgütevereinbarung einhält.
  • In Beispiel AA5 kann der Gegenstand aus einem beliebigen der Beispiele AA1-AA4 optional umfassen, dass der Prozess eine virtuelle Netzwerkfunktion ist.
  • In Beispiel AA6 kann der Gegenstand aus einem beliebigen der Beispiele AA1-AA5 optional umfassen, dass mehrere Vorrichtungen in der Plattform virtuelle Maschinen sind.
  • In Beispiel AA7 kann der Gegenstand aus einem beliebigen der Beispiele AA1-AA6 optional umfassen, dass die Ergebnisse des Leistungstests vor der Ausführung analysiert werden, um eine Ergebnistabelle des Leistungstests vor der Ausführung zu erzeugen.
  • In Beispiel AA8 kann der Gegenstand aus einem beliebigen der Beispiele AA1-AA7 optional umfassen, dass der Leistungstest vor der Ausführung auf der Plattform ausgeführt wird, während andere Prozesse auch auf der Plattform ausgeführt werden und dynamisch Ressourcen verbrauchen.
  • In Beispiel AA9 kann der Gegenstand aus einem beliebigen der Beispiele AA1-AA8 optional umfassen, dass der Leistungstest vor der Ausführung in lokalem Speicher gespeichert wird.
  • Beispiel X1 ist ein maschinenlesbares Speichermedium, das maschinenlesbare Anweisungen zum Umsetzen eines Verfahrens oder Umsetzen einer Einrichtung wie in einem beliebigen der Beispiele A1-A9 oder M1-M6 umfasst. Beispiel Y1 ist eine Einrichtung, die Mittel zum Durchführen eines beliebigen der beispielhaften Verfahren M1-M6 umfasst. In Beispiel Y2 kann der Gegenstand aus Beispiel Y1 optional die Mittel zum Durchführen des Verfahrens umfassen, einen Prozessor und einen Speicher umfassend. In Beispiel Y3 kann der Gegenstand aus Beispiel Y2 optional den Speicher umfassen, maschinenlesbare Anweisungen umfassend.

Claims (25)

  1. Maschinenlesbares Medium oder maschinenlesbare Medien, eine oder mehrere Anweisungen umfassend, die, wenn durch mindestens einen Prozessor ausgeführt, den zumindest einen Prozessor zu Folgendem veranlassen: Bestimmen eines Leistungstests vor der Ausführung, wobei der Leistungstest vor der Ausführung zumindest teilweise auf Anforderungen für einen auszuführenden Prozess basiert; Veranlassen, dass der Leistungstest vor der Ausführung auf einer Plattform ausgeführt wird, bevor der Prozess auf der Plattform ausgeführt wird, wobei die Plattform eine dynamisch zugeordnete Gruppe von Ressourcen ist; Analysieren von Ergebnissen des Leistungstests vor der Ausführung; und Veranlassen, dass der Prozess auf der Plattform ausgeführt wird, wenn die Ergebnisse des Leistungstests vor der Ausführung eine Bedingung erfüllen.
  2. Maschinenlesbares Medium oder maschinenlesbare Medien nach Anspruch 1, wobei die eine oder mehreren Anweisungen, wenn durch den zumindest einen Prozessor ausgeführt, den zumindest einen Prozessor ferner zu Folgendem veranlassen: Veranlassen, dass der Leistungstest vor der Ausführung auf jeder von mehreren Plattformen ausgeführt wird; und Zuordnen einer Bewertung zu jeder der mehreren Plattformen, wobei die Bewertung für jede Plattform auf den Ergebnissen des Leistungstests vor der Ausführung basiert, der auf den mehreren Plattformen ausgeführt wird.
  3. Maschinenlesbares Medium oder maschinenlesbare Medien nach Anspruch 2, wobei die eine oder mehreren Anweisungen, wenn durch den zumindest einen Prozessor ausgeführt, den zumindest einen Prozessor ferner zu Folgendem veranlassen: Bestimmen einer Plattform mit einer höchsten Bewertung; und Veranlassen, dass der Prozess auf der Plattform mit der höchsten Bewertung ausgeführt wird.
  4. Maschinenlesbares Medium oder maschinenlesbare Medien nach einem der Ansprüche 1-3, wobei die Bedingung beinhaltet, dass die Plattform eine mit dem Prozess verbundene Dienstgütevereinbarung einhält.
  5. Maschinenlesbares Medium oder maschinenlesbare Medien nach einem der Ansprüche 1-3, wobei der Prozess eine virtuelle Netzwerkfunktion ist.
  6. Maschinenlesbares Medium oder maschinenlesbare Medien nach einem der Ansprüche 1-3, wobei mehrere Vorrichtungen in der Plattform virtuelle Maschinen sind.
  7. Maschinenlesbares Medium oder maschinenlesbare Medien nach einem der Ansprüche 1-3, wobei die Ergebnisse des Leistungstests vor der Ausführung analysiert werden, um eine Ergebnistabelle des Leistungstests vor der Ausführung zu erzeugen.
  8. Maschinenlesbares Medium oder maschinenlesbare Medien nach einem der Ansprüche 1-3, wobei der Leistungstest vor der Ausführung auf der Plattform ausgeführt wird, während andere Prozesse auch auf der Plattform ausgeführt werden und dynamisch Ressourcen verbrauchen.
  9. Einrichtung, die Folgendes umfasst: Speicher; eine Leistungsengine; und zumindest einen Prozessor, wobei die Leistungsengine dazu ausgelegt ist, den zumindest einen Prozessor zu Folgendem zu veranlassen: Bestimmen eines Leistungstests vor der Ausführung, wobei der Leistungstest vor der Ausführung zumindest teilweise auf Anforderungen für einen auszuführenden Prozess basiert; Veranlassen, dass der Leistungstest vor der Ausführung auf einer Plattform ausgeführt wird, bevor der Prozess auf der Plattform ausgeführt wird, wobei die Plattform eine dynamisch zugeordnete Gruppe von Ressourcen ist; Analysieren von Ergebnissen des Leistungstests vor der Ausführung; und Veranlassen, dass der Prozess auf der Plattform ausgeführt wird, wenn die Ergebnisse des Leistungstests vor der Ausführung eine Bedingung erfüllen.
  10. Einrichtung nach Anspruch 9, wobei die Leistungsengine ferner dazu ausgelegt ist, den zumindest einen Prozessor zu Folgendem zu veranlassen: Veranlassen, dass der Leistungstest vor der Ausführung auf jeder von mehreren Plattformen ausgeführt wird; und Zuordnen einer Bewertung zu jeder der mehreren Plattformen, wobei die Bewertung für jede Plattform auf den Ergebnissen des Leistungstests vor der Ausführung basiert, der auf den mehreren Plattformen ausgeführt wird.
  11. Einrichtung nach Anspruch 10, wobei die Leistungsengine ferner dazu ausgelegt ist, den zumindest einen Prozessor zu Folgendem zu veranlassen: Bestimmen einer Plattform mit einer höchsten Bewertung; und Veranlassen, dass der Prozess auf der Plattform mit der höchsten Bewertung ausgeführt wird.
  12. Einrichtung nach einem der Ansprüche 9-11, wobei die Bedingung beinhaltet, dass die Plattform eine mit dem Prozess verbundene Dienstgütevereinbarung einhält.
  13. Einrichtung nach einem der Ansprüche 9-11, wobei der Prozess eine virtuelle Netzwerkfunktion ist.
  14. Verfahren, das Folgendes umfasst: Bestimmen eines Leistungstests vor der Ausführung, wobei der Leistungstest vor der Ausführung zumindest teilweise auf Anforderungen für einen auszuführenden Prozess basiert; Veranlassen, dass der Leistungstest vor der Ausführung auf einer Plattform ausgeführt wird, bevor der Prozess auf der Plattform ausgeführt wird, wobei die Plattform eine dynamisch zugeordnete Gruppe von Ressourcen ist; Analysieren von Ergebnissen des Leistungstests vor der Ausführung; und Veranlassen, dass der Prozess auf der Plattform ausgeführt wird, wenn die Ergebnisse des Leistungstests vor der Ausführung eine Bedingung erfüllen.
  15. Verfahren nach Anspruch 14, das ferner Folgendes umfasst: Veranlassen, dass der Leistungstest vor der Ausführung auf mehreren Plattformen ausgeführt wird; und Zuordnen einer Bewertung zu jeder der mehreren Plattformen, wobei die Bewertung für jede Plattform auf den Ergebnissen des Leistungstests vor der Ausführung basiert, der auf den mehreren Plattformen ausgeführt wird.
  16. Verfahren nach Anspruch 15, das ferner Folgendes umfasst: Bestimmen einer Plattform mit einer höchsten Bewertung; und Veranlassen, dass der Prozess auf der Plattform mit der höchsten Bewertung ausgeführt wird.
  17. Verfahren nach einem der Ansprüche 14-16, wobei die Bedingung beinhaltet, dass die Plattform eine mit dem Prozess verbundene Dienstgütevereinbarung einhält.
  18. Verfahren nach einem der Ansprüche 14-16, wobei mehrere Vorrichtungen in der Plattform virtuelle Maschinen sind.
  19. Verfahren nach einem der Ansprüche 14-16, wobei der Prozess eine virtuelle Netzwerkfunktion ist.
  20. System zur Vorabvalidierung einer Plattform, wobei das System Folgendes umfasst: Speicher; einen oder mehrere Prozessoren; Mittel zum Bestimmen eines Leistungstests vor der Ausführung, wobei der Leistungstest vor der Ausführung zumindest teilweise auf Anforderungen für einen auszuführenden Prozess basiert; Mittel zum Veranlassen, dass der Leistungstest vor der Ausführung auf einer Plattform ausgeführt wird, bevor der Prozess auf der Plattform ausgeführt wird, wobei die Plattform eine dynamisch zugeordnete Gruppe von Ressourcen ist; Mittel zum Analysieren von Ergebnissen des Leistungstests vor der Ausführung; und Mittel zum Veranlassen, dass der Prozess auf der Plattform ausgeführt wird, wenn die Ergebnisse des Leistungstests vor der Ausführung eine Bedingung erfüllen.
  21. System nach Anspruch 20, das ferner Folgendes umfasst: Mittel zum Veranlassen, dass der Leistungstest vor der Ausführung auf mehreren Plattformen ausgeführt wird; und Mittel zum Zuordnen einer Bewertung zu jeder der mehreren Plattformen, wobei die Bewertung auf den Ergebnissen des Leistungstests vor der Ausführung basiert, der auf den mehreren Plattformen ausgeführt wird.
  22. System nach Anspruch 21, das ferner Folgendes umfasst: Mittel zum Bestimmen einer Plattform mit einer höchsten Bewertung; und Mittel zum Veranlassen, dass der Prozess auf der Plattform mit der höchsten Bewertung ausgeführt wird.
  23. System nach einem der Ansprüche 20-22, wobei die Bedingung beinhaltet, dass die Plattform eine mit dem Prozess verbundene Dienstgütevereinbarung einhält.
  24. System nach einem der Ansprüche 20-22, wobei der Prozess eine virtuelle Netzwerkfunktion ist.
  25. System nach einem der Ansprüche 20-22, wobei mehrere Vorrichtungen in der Plattform virtuelle Maschinen sind.
DE102018207377.5A 2017-06-08 2018-05-11 Vorabvalidierung einer plattform Pending DE102018207377A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/617,375 US20180357099A1 (en) 2017-06-08 2017-06-08 Pre-validation of a platform
US15/617,375 2017-06-08

Publications (1)

Publication Number Publication Date
DE102018207377A1 true DE102018207377A1 (de) 2018-12-13

Family

ID=64332888

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018207377.5A Pending DE102018207377A1 (de) 2017-06-08 2018-05-11 Vorabvalidierung einer plattform

Country Status (2)

Country Link
US (1) US20180357099A1 (de)
DE (1) DE102018207377A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110609744B (zh) * 2018-06-15 2023-06-09 伊姆西Ip控股有限责任公司 处理计算任务的方法、设备和计算机程序产品
US10740208B2 (en) * 2018-10-03 2020-08-11 Capital One Services, Llc Cloud infrastructure optimization
US11138098B2 (en) * 2019-03-27 2021-10-05 At&T Intellectual Property I, L.P. Disk image selection in virtualized network environments
US11252042B2 (en) * 2019-04-12 2022-02-15 Huawei Technologies Co., Ltd. Systems and methods for communication network customization
GB2583903B (en) * 2019-04-23 2022-11-02 Metaswitch Networks Ltd Testing virtualised network functions
CN115827415B (zh) * 2023-02-22 2023-05-26 禾多科技(北京)有限公司 系统进程性能测试方法、装置、设备和计算机介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8670971B2 (en) * 2007-07-31 2014-03-11 Hewlett-Packard Development Company, L.P. Datacenter workload evaluation
US9298518B2 (en) * 2014-07-09 2016-03-29 International Business Machine Corporation Safe consolidation and migration
US9766919B2 (en) * 2015-03-05 2017-09-19 Vmware, Inc. Methods and apparatus to select virtualization environments during deployment
US9588815B1 (en) * 2015-06-17 2017-03-07 EMC IP Holding Company LLC Architecture for data collection and event management supporting automation in service provider cloud environments
US20190266023A1 (en) * 2016-10-14 2019-08-29 Telefonaktiebolaget Lm Ericsson (Publ) Time-parallelized integrity testing of software code
US9865323B1 (en) * 2016-12-07 2018-01-09 Toshiba Memory Corporation Memory device including volatile memory, nonvolatile memory and controller

Also Published As

Publication number Publication date
US20180357099A1 (en) 2018-12-13

Similar Documents

Publication Publication Date Title
DE102018207377A1 (de) Vorabvalidierung einer plattform
US9990236B2 (en) Dividing a stream computing application graph of a service for scheduling and processing
DE102015105884B4 (de) Rechenknoten und Verfahren zur Migration einer virtuellen Maschine, Rechenzentrummanager zur Migration virtueller Maschinen, Maschinenlesbares Speichermedium und Rechenvorrichtungen
DE602004010865T2 (de) Automatische Charakterisierung von Netzwerkverkehr
DE102019105193A1 (de) Technologien zum beschleunigen von edge-vorrichtungsarbeitslasten
DE102007009909B4 (de) Verfahren zum Validieren einer atomaren Transaktion in einer Multikernmikroprozessorumgebung
DE102019131123A1 (de) Technologien zur transparenten function-as-a-service-arbitrierung für edge-systeme
US20130148513A1 (en) Creating packet traffic clustering models for profiling packet flows
DE102014117461A1 (de) Hybrider SDN-Controller
DE112016004368T5 (de) Verwaltung eines Fehlerzustands in einem Datenverarbeitungssystem
DE112016004347T5 (de) Lokale und globale Datenzentrumsnetzoptimierungen in Echtzeit basierend auf Plattformtelemetriedaten
DE112014000358T5 (de) Regionales Firewall-Clustering in einer vernetzten Datenverarbeitungsumgebung
DE112016004486T5 (de) Dienstfunktionspfad-Leistungsüberwachung
DE102015004128A1 (de) Verfahren und System zum Testen cloud-basierter Anwendungen und Dienste in einer Produktionsumgebung unter Verwendung von getrennten Back-End-Systemen
DE112013006417T5 (de) Verlustfreie Schalterstruktur mit niedriger Latenzzeit zum Gebrauch in einem Rechenzentrum
DE102015111820B4 (de) Auswählen eines Netzwerkes
CN106325988A (zh) 任务调度方法及装置
DE102019103932A1 (de) Technologien für optimierte Dienstgütebeschleunigung
DE102013209934B4 (de) Starten oder Stoppen virtueller Server in angemessener Reihenfolge
DE102018204577A1 (de) Techniken zum Erfüllen von Dienstgüteanforderungen für eine Fabric-Punkt-zu-Punkt-Verbindung
DE112019003854T5 (de) Flusssteuerungssichtbarkeit
DE102020110897A1 (de) Netzwerkfunktionsvirtualisierung
AT512665B1 (de) Verfahren und Apparat zur Bildung von Software Fault Containment Units in einem verteilten Echtzeitsystem
Misa et al. Dynamic scheduling of approximate telemetry queries
Saha et al. Demonstrating network slice KPI monitoring in a 5G testbed