DE102022108670A1 - Korrelationen zwischen arbeitsbelastungsmerkmalen und verstrichene zeiten - Google Patents

Korrelationen zwischen arbeitsbelastungsmerkmalen und verstrichene zeiten Download PDF

Info

Publication number
DE102022108670A1
DE102022108670A1 DE102022108670.4A DE102022108670A DE102022108670A1 DE 102022108670 A1 DE102022108670 A1 DE 102022108670A1 DE 102022108670 A DE102022108670 A DE 102022108670A DE 102022108670 A1 DE102022108670 A1 DE 102022108670A1
Authority
DE
Germany
Prior art keywords
tokens
collection
token
instructions
weights
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
DE102022108670.4A
Other languages
English (en)
Inventor
Mayukh Dutta
Manoj Srivatsav
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of DE102022108670A1 publication Critical patent/DE102022108670A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3428Benchmarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1027Persistence of sessions during load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

In einigen Beispielen empfängt ein System eine erste Sammlung von Token, die sich auf Merkmale von Arbeitslasten für ein Rechensystem beziehen. Das System kodiert die erste Sammlung von Token, wobei die Kodierung das Berechnen von Gewichten, die Beziehungen zwischen Token der ersten Sammlung von Token darstellen, und das Erzeugen einer Darstellung der ersten Sammlung von Token auf der Grundlage der Gewichte umfasst. Das System bestimmt, basierend auf der Darstellung, eine Korrelation zwischen der ersten Sammlung von Token und einer zweiten Sammlung von Token, die sich auf die verstrichenen Zeiten bei der Ausführung der Workloads bezieht.

Description

  • Hintergrund
  • Ein Speichersystem umfasst Speicherressourcen und andere Ressourcen (einschließlich Verarbeitungsressourcen und Kommunikationsressourcen), auf denen verschiedene Arten von Arbeitslasten ausgeführt werden können. Die verschiedenen Workloads können um die Ressourcen des Speichersystems konkurrieren.
  • Figurenliste
  • Einige Ausführungsformen der vorliegenden Offenbarung werden anhand der folgenden Abbildungen beschrieben.
    • ist ein Blockdiagramm einer Anordnung, die ein Transformatormodell auf eine Eingangssammlung von Token anwendet, die sich auf Arbeitslasten des Rechensystems beziehen, um eine zweite Sammlung von Token zu erzeugen, die sich auf die verstrichene Zeit bei der Ausführung der Arbeitslasten beziehen, in Übereinstimmung mit einigen Beispielen der vorliegenden Offenbarung.
    • ist ein Blockdiagramm, das die Beziehungen zwischen einem ersten Histogramm, das sich auf die Merkmale von Anfragen bezieht, die Arbeitslasten erzeugen, und einem zweiten Histogramm, das sich auf die verstrichenen Zeiten bei der Ausführung der Arbeitslasten bezieht, in Übereinstimmung mit einigen Beispielen zeigt.
    • sind Diagramme, die eine Verteilung von Anforderungsgrößenmerkmalen und eine Verteilung von Dienstzeitmerkmalen gemäß einigen Beispielen zeigen.
    • ist ein Blockdiagramm, das das Perzentil-Binning veranschaulicht, um diskrete Werte für Bins eines Anforderungsgrößenhistogramms abzuleiten, gemäß einigen Beispielen.
    • ist ein Blockdiagramm einer beispielhaften Aufmerksamkeitsfunktion gemäß einigen Beispielen.
    • ist ein Blockdiagramm eines Speichermediums, das maschinenlesbare Anweisungen speichert, gemäß einigen Beispielen.
    • ist ein Blockdiagramm eines Systems gemäß einigen Beispielen.
    • ist ein Flussdiagramm eines Verfahrens gemäß einigen Beispielen.
  • In den Zeichnungen bezeichnen identische Referenznummern ähnliche, aber nicht unbedingt identische Elemente. Die Abbildungen sind nicht unbedingt maßstabsgetreu, und die Größe einiger Teile kann übertrieben sein, um das gezeigte Beispiel deutlicher zu machen. Darüber hinaus enthalten die Zeichnungen Beispiele und/oder Ausführungsformen, die mit der Beschreibung übereinstimmen; die Beschreibung ist jedoch nicht auf die in den Zeichnungen dargestellten Beispiele und/oder Ausführungsformen beschränkt.
  • Detaillierte Beschreibung
  • In der vorliegenden Offenlegung schließt die Verwendung des Begriffs „ein“, „ein“ oder „die“ auch die Pluralformen ein, sofern aus dem Kontext nicht eindeutig etwas anderes hervorgeht. Auch der Begriff „umfasst“, „einschließlich“, „umfasst“, „umfasst“, „haben“ oder „haben“, wenn er in dieser Offenlegung verwendet wird, spezifiziert das Vorhandensein der angegebenen Elemente, schließt aber das Vorhandensein oder die Zugabe anderer Elemente nicht aus.
  • Während des Betriebs eines Speichersystems können Datenzugriffsanforderungen empfangen werden (z. B. von Hostsystemen), um auf die im Speichersystem gespeicherten Daten zuzugreifen. Die Datenzugriffsanforderungen können Lese- und Schreibanforderungen umfassen, die die Leistung von Arbeitslasten im Speichersystem veranlassen, um Zielergebnisse zu erzielen (z. B. Daten aus dem Speichersystem zu lesen oder in das Speichersystem zu schreiben).
  • Ein Benchmarking der Speicherleistung kann durchgeführt werden, um die Leistung eines Speichersystems bei erwarteter Arbeitslast zu charakterisieren. Eine „Arbeitslast“ kann sich auf eine beliebige Sammlung von Aktivitäten beziehen, die von einer Einheit (z. B. maschinenlesbare Anweisungen, eine virtuelle Einheit, eine Hardwarekomponente usw.) in einer Datenverarbeitungsumgebung durchgeführt werden.) in einer Datenverarbeitungsumgebung durchgeführt werden, wie z. B. ein Speichersystem, ein Computersystem, ein Netzwerksystem usw.
  • Obwohl sich die nachfolgende Diskussion auf Beispiele bezieht, die Speichersysteme betreffen, wird darauf hingewiesen, dass Techniken oder Mechanismen gemäß einigen Beispielen der vorliegenden Offenlegung auch bei anderen Arten von Systemen, einschließlich Computersystemen, Netzwerksystemen usw., angewendet werden können.
  • Die Schätzung der Leistung von Speichersystemen für bestimmte Arbeitslasten kann ein Unternehmen (z. B. ein Unternehmen, eine Bildungseinrichtung, eine Regierungsbehörde, eine Einzelperson usw.) bei der angemessenen Dimensionierung eines Speichersystems unterstützen, wobei sich die „Dimensionierung“ eines Speichersystems auf die Bereitstellung von Ressourcen im Speichersystem beziehen kann, um die erwarteten Arbeitslasten aufzunehmen. Beispiele für Ressourcen können physische Ressourcen wie Speichergeräte, Verarbeitungsressourcen (z. B. Prozessoren, Prozessorkerne usw.), Kommunikationsressourcen (z. B. Netzwerkschnittstellen-Controller, Switches usw.) usw. umfassen. Beispiele für Speichergeräte können plattenbasierte Speichergeräte, Festkörperspeichergeräte, Speichergeräte (z. B. dynamische Direktzugriffsspeicher (DRAM), statische Direktzugriffsspeicher (SRAM) usw.) usw. sein. Zu den Ressourcen eines Speichersystems können auch logische Ressourcen gehören, wie virtuelle Maschinen, virtuelle Prozessoren, virtuelle Kommunikationsgeräte usw.
  • Die Schätzung der Leistung eines Speichersystems kann auch nützlich sein, um zu beurteilen, ob das Speichersystem ein angestrebtes Leistungsniveau erfüllt und/oder ob Anomalien vorliegen. Anomalien können durch das Vorhandensein von Schadsoftware oder Fehlern in der Hardware oder maschinenlesbaren Anweisungen verursacht werden. Durch die Schätzung der Leistung des Speichersystems kann ein Unternehmen feststellen, ob sich die Leistung des Speichersystems im Laufe der Zeit für bestimmte Arbeitslasten verschlechtert oder verbessert hat. Ein Benchmarking der Speichersystemleistung kann auch einen Vergleich mit der Leistung von Speichersystemen in einer bestimmten Gemeinschaft ermöglichen, z. B. einer globalen Gemeinschaft, einem anderen Unternehmen usw.
  • In einigen Fällen können für das Benchmarking Modelle auf der Grundlage gemessener Leistungsindikatoren erstellt werden, die manchmal auch als Key Performance Indicators (KPls) bezeichnet werden. Beispiele für KPls sind eine Input/Output (E/A)-Nachfragerate (z. B. Größe der E/A-Anforderung, Anzahl der Anforderungen pro Größe usw.). Ein weiterer KPI ist die verstrichene Zeit (z. B. eine Servicezeit für die Ausführung von E/A-Anforderungen, Latenzen im Zusammenhang mit der Ausführung von E/A-Anforderungen usw.). Eine genaue Modellierung setzt voraus, dass die KPls mit hoher Granularität gemessen werden (z. B. in relativ kleinen Zeitintervallen oder an vielen verschiedenen Stellen eines Speichersystems), was die Ressourcen des Speichersystems relativ stark belasten kann und die Fähigkeit des Speichersystems, die tatsächlichen Arbeitslasten zu bewältigen, beeinträchtigen würde.
  • Um die Menge der gemessenen KPIs zu reduzieren, kann ein Speichersystem in einigen Fällen KPls abfragen, wobei die KPls in bestimmten Abtastintervallen gemessen werden. In einigen Beispielen können abgetastete Messungen der E/A-Anforderungsrate und abgetastete Messungen der verstrichenen Zeit in Histogrammen gesammelt werden. Ein Histogramm enthält mehrere Bins. Wenn die E/A-Anforderungsrate beispielsweise als E/A-Anforderungsgröße ausgedrückt wird, können die verschiedenen Bins eines E/A-Anforderungsratenhistogramms verschiedenen E/A-Anforderungsgrößen entsprechen. Beispielsweise können Leseanforderungen Daten unterschiedlicher Größe (d. h. unterschiedliche Datenmengen) lesen, wie 512-Byte-Daten (512B), 1-k-Byte-Daten (1kB), 2kB-Daten usw. Diese verschiedenen E/A-Anforderungsgrößen entsprechen verschiedenen Bins des Histogramms der E/A-Anforderungsgröße. Jedem Bin wird ein „Betragswert“ zugewiesen, der die Häufigkeit des Auftretens der entsprechenden E/A-Anforderungsgrößen angibt. Zum Beispiel kann ein Betragswert für die 512B-Bin des E/A-Anforderungsgrößenhistogramms einen Wert haben, der die Häufigkeit von 512B-E/A-Anforderungen darstellt. Die Häufigkeit des Auftretens einer E/A-Anforderung einer bestimmten Größe kann als Menge (Zählung) von E/A-Anforderungen der bestimmten Größe, als Häufigkeit des Auftretens von E/A-Anforderungen der bestimmten Größe (Zählung pro Zeiteinheit), als Prozentsatz, der das Verhältnis von E/A-Anforderungen der bestimmten Größe zu einer Gesamtmenge von E/A-Anforderungen darstellt, oder als jede andere Angabe darüber, wie viele E/A-Anforderungen der bestimmten Größe im Speichersystem aufgetreten sind, dargestellt werden.
  • In ähnlicher Weise hat das Histogramm der verstrichenen Zeit Bins, die verschiedenen verstrichenen Zeiten für die Ausführung von Arbeitslasten von E/A-Anforderungen entsprechen, und jedem Bin wird ein Wert zugewiesen, der die Häufigkeit des Auftretens der jeweiligen verstrichenen Zeit für die Ausführung von Arbeitslasten von E/A-Anforderungen darstellt.
  • Obwohl solche Histogramme helfen können, eine Verteilung von E/A-Anforderungen unterschiedlicher Größe und eine Verteilung der verstrichenen Zeiten für die Ausführung von Arbeitslasten von E/A-Anforderungen über eine bestimmte Zeitdauer (d. h. dieselbe Zeitdauer) zu verstehen, geben die Histogramme keinen Aufschluss darüber, welche E/A-Anforderungsgrößen zu welchen verstrichenen Zeiten beigetragen haben.
  • Eine Herausforderung bei der Gewinnung von Erkenntnissen darüber, welche E/A-Anforderungsgrößen zu welchen verstrichenen Zeiten beigetragen haben, besteht darin, dass das Histogramm der E/A-Anforderungsrate und das Histogramm der verstrichenen Zeit Werte aufweisen, die aus unterschiedlichen Domänen stammen. Außerdem gibt es keine Positionsausrichtung zwischen den Histogrammen (z. B. gibt es keine Ausrichtung zwischen Bereichen des E/A-Anforderungshistogramms und Bereichen des Histogramms für die verstrichene Zeit), und es besteht keine monotone Beziehung zwischen den Histogrammen. Stattdessen kann eine komplexe Beziehung zwischen den Histogrammen bestehen.
  • Gemäß einigen Beispielen der vorliegenden Offenlegung kann eine Ausrichtung zwischen einem Histogramm der E/A-Anforderungsrate und einem Histogramm der verstrichenen Zeit bestimmt werden, um eine Korrelation zwischen bestimmten Bins des Histogramms der E/A-Anforderungsrate und entsprechenden Bins des Histogramms der verstrichenen Zeit zu ermöglichen. Der ermittelte Abgleich liefert Informationen, die eine Beziehung zwischen jedem E/A-Anforderungsratenmerkmal (z. B. der Größe der E/A-Anforderung) und jeder entsprechenden verstrichenen Zeit angeben, zum Beispiel.
  • Obwohl sich die Beispiele auf die Verwendung von E/A-Anforderungshistogrammen und Histogrammen der verstrichenen Zeit beziehen, können in anderen Beispielen Ausrichtungen auf der Grundlage anderer Wertesammlungen bestimmt werden, die aus verschiedenen Bereichen einer Datenverarbeitungsumgebung, wie z. B. einem Speichersystem, einem Computersystem, einem Netzwerksystem usw., gewonnen werden.
  • 1. Das Modell des Transformators
  • zeigt eine Beispielanordnung, die ein Transformatormodell 102 gemäß einigen Implementierungen der vorliegenden Offenbarung enthält. Das Transformatormodell 102 wird verwendet, um einen Abgleich zwischen Merkmalen von Arbeitslasten (z. B. E/A-Anforderungsratenmerkmalen wie E/A-Anforderungsgrößen und Anzahl von Anforderungen pro Größe) und verstrichenen Zeiten für die Ausführung der Arbeitslasten von E/A-Anforderungen zu bestimmen.
  • Die Workloads werden in einem Speichersystem ausgeführt, das verschiedene Ressourcen enthalten kann, auf denen die Workloads ausgeführt werden. In einigen Beispielen kann ein Speichersystem eine Sammlung von Speichervolumen (ein einzelnes Speichervolumen oder mehrere Speichervolumen) umfassen, wobei sich ein Speichervolumen auf eine logische Partition zur Speicherung von Daten bezieht.
  • Ganz allgemein kann das Transformatormodell 102 für Arbeitslasten verwendet werden, die in anderen Arten von Computerumgebungen ausgeführt werden.
  • zeigt ein Beispiel für ein Histogramm der Anforderungsgröße 104 und ein Histogramm der Servicezeit 108. Die Bins des Histogramms der Anforderungsgröße 104 werden entlang der horizontalen Achse dargestellt, wobei jedes Bin eine jeweils unterschiedliche E/A-Anforderungsgröße darstellt. In ähnlicher Weise werden die Bins des Servicezeit-Histogramms 108 auf der horizontalen Achse dargestellt, wobei jedes Bin eine unterschiedliche Servicezeit repräsentiert. Eine „Servicezeit“ kann sich auf eine Zeitspanne beziehen, die für die Bearbeitung einer E/A-Anforderung (oder mehrerer E/A-Anforderungen) benötigt wird.
  • Die vertikale Achse des Histogramms 104 für die Anforderungsgröße stellt einen Betrag (eine Anzahl, eine Häufigkeit, einen Prozentsatz usw.) für das Auftreten einer E/A-Anforderungsgröße in jedem der Bins dar, und die vertikale Achse des Histogramms 108 für die Servicezeit stellt einen Betrag für das Auftreten einer Servicezeit in jedem der Bins dar.
  • Die durch die vertikale Achse des Histogramms 104 für die Anforderungsgröße und des Histogramms 108 für die Servicezeit dargestellten Mengenwerte sind kontinuierliche Werte, die einen relativ großen unbegrenzten Bereich haben können. Zur Verwendung mit dem Transformatormodell 102 können das Anforderungsgrößenhistogramm 104 und das Servicezeithistogramm 108 zunächst von einem Verarbeitungssystem 100 in eine entsprechende Sammlung diskreter Werte umgewandelt werden, die als eine Sammlung von Anforderungsgrößen-Token 110 und eine Sammlung von Servicezeit-Token 112 dargestellt werden.
  • Ein „Verarbeitungssystem“ kann sich auf eine Sammlung von Computern (ein einzelner Computer oder mehrere Computer) beziehen, die maschinenlesbare Anweisungen ausführen können. In einigen Beispielen kann das Transformatormodell 102 durch das Verarbeitungssystem 100 trainiert und ausgeführt werden. In anderen Beispielen kann das Transformatormodell 102 von dem Verarbeitungssystem 100 erstellt und trainiert werden, und das trainierte Transformatormodell 102 kann auf einem anderen Verarbeitungssystem eingesetzt werden.
  • In den Beispielen gemäß wird die horizontale Achse jeder der Sammlungen von Anforderungsgrößen-Token 110 und der Sammlung von Dienstleistungsgrößen-Token 112 als Quantile ausgedrückt. Darüber hinaus ist die vertikale Achse jeder der Sammlungen 110 und 112 durch begrenzte Betragswerte dargestellt. Begrenzte Betragswerte umfassen Betragswerte zwischen einer Untergrenze und einer Obergrenze. Auf diese Weise wird das Transformationsmodell 102 auf begrenzte Wertesammlungen angewandt, um die Effizienz und Genauigkeit der Berechnungen zu verbessern.
  • Wie die Sammlungen 110 und 112 mit begrenzten Werten abgeleitet werden, wird weiter unten erläutert.
  • Die Sammlung der Anforderungsgrößen-Token 110 (dargestellt als x1,x2,···,xr in , wobei r ≥ 2) kann eine Eingabe für das Transformatormodell 102 sein. Die Sammlung von Dienstgrößen-Token 112 (dargestellt als y1, y2, ··· ,yt in , wobei t ≥ 2, und wobei r und t gleich oder verschieden sein können) wird von dem Transformatormodell 102 ausgegeben.
  • Die Dienstzeit-Token (y1, y2, ··· , yt) sind Ausgabe-Token, die vom Transformatormodell 102 einzeln berechnet werden. Beachten Sie, dass in Übereinstimmung mit einigen Beispielen der vorliegenden Offenbarung jedes Dienstzeit-Token (yj wobei j = 1, ... t) durch das Transformatormodell 102 erzeugt wird, das erzeugte Servicezeit-Token (yj) dem Transformatormodell 102 als Rückkopplungseingang (150 in ) zur Verfügung gestellt wird, um die Erzeugung des nächsten Servicezeit-Tokens zu unterstützen.
  • Das Transformatormodell 102 dient der Schätzung eines Servicezeit-Histogramms (oder genauer gesagt der Sammlung von Servicezeit-Token 112) anhand des Histogramms der Anforderungsgröße (oder eines anderen Histogramms der E/A-Anforderungsrate oder eines anderen Histogramms, das sich auf die Merkmale der Arbeitslasten bezieht) für ein bestimmtes Speichersystem. In einigen Beispielen können verschiedene Transformatormodelle 102 für verschiedene Speichersysteme (z. B. Speichersysteme mit unterschiedlichen Ressourcen) erstellt werden.
  • Die folgende Diskussion bezieht sich auf Beispiele mit Lese-Arbeitslasten. Generell kann das Transformatormodell 102 auf Schreibarbeitslasten oder auf Arbeitslasten, die sowohl Lese- als auch Schreibvorgänge umfassen, angewendet werden.
  • In einigen Beispielen ist das Transformatormodell 102 in der Lage, bei einem Speichersystem und seinen durch entsprechende Histogramme dargestellten E/A-Anforderungsraten- und Servicezeitverteilungen zu bestimmen, wie die Servicezeiten in den Servicezeithistogrammen unter den Leseanforderungsgrößen im E/A-Anforderungsratenhistogramm verteilt sind und umgekehrt. zeigt ein Beispiel für ein Histogramm der Anforderungsgröße 202 und ein Histogramm der Servicezeit 204. Im spezifischen Beispiel von hat das Anforderungsgrößen-Histogramm 202 M Bins (M ≥ 2) für jeweils unterschiedliche E/A-Anforderungsgrößen (512B, 1kB, 2kB, ..., 16MB), und das Servicezeit-Histogramm 204 hat N Bins (N ≥ 2, wobei M und N gleich oder unterschiedlich sein können) für jeweils unterschiedliche Servicezeiten (z. B. 0,062 Millisekunden (ms), 0,025 ms, ..., 16 Sekunden (s)). Jedes Bin hat einen Betragswert. Die jeweiligen Ausrichtungen zwischen den Bins des Histogramms 202 für die Anforderungsgröße und den Bins des Histogramms 204 für die Servicezeit sowie die Messwerte für die Stärke der jeweiligen Ausrichtung werden auf der Grundlage der vom Transformatormodell 102 erzeugten Informationen abgeleitet und durch Linien 206 in dargestellt (können aber auch durch andere Arten von Indikatoren dargestellt werden). Die Ausrichtungen können anzeigen, ob ein Bin im Anforderungsgrößenhistogramm 202 eine Beziehung zu einem Bin im Servicezeithistogramm 204 hat, und die jeweiligen Stärken können eine Stärke der Beziehung anzeigen (die im Fall von Linien, die Ausrichtungen darstellen, durch eine Dicke, Farbe oder eine andere Eigenschaft einer Linie angezeigt werden kann). Eine Beziehung zwischen einem Bin im Anforderungsgrößenhistogramm 202 und einem Bin im Servicezeithistogramm 204 besteht, wenn eine E/A-Anforderungsgröße, die durch den Bin im Anforderungsgrößenhistogramm 202 dargestellt wird, zu einer Servicezeit beigetragen hat, die durch den Bin im Servicezeithistogramm 204 dargestellt wird.
  • In Übereinstimmung mit einigen Beispielen der vorliegenden Offenbarung kann das Transformationsmodell 102 Techniken zur Verarbeitung natürlicher Sprache verwenden (z. B. bei der maschinellen Übersetzung zwischen verschiedenen Sprachen), die jedoch auf Tokensammlungen (z. B. 110 und 112) angewendet werden, um ein Alignment der Tokensammlungen durchzuführen. Das Transformatormodell 102 ist eine Form eines Sequenz-zu-Sequenz-Modells, das eine Sequenz variabler Länge als Eingabe nimmt und eine Ausgabesequenz erzeugt. In einigen Beispielen werden im Transformatormodell 102 „Aufmerksamkeits“-Techniken angewandt, die nicht auf einer Eingangssequenz beruhen, die eine Art von zeitlicher oder anderer Ordnung hat. Die Aufmerksamkeitstechniken liefern Positionsinformationen von Token, wie z. B. die Sammlungen von Token 110 und 112 in .
  • Die Aufmerksamkeitstechniken werden mit Hilfe einer Aufmerksamkeitslogik in einem Kodierer 114 und einem Dekodierer 116 des Transformatormodells 102 angewendet. Der Kodierer 114 enthält eine Selbstaufmerksamkeitslogik 120, die auf eine transformierte Darstellung von x1,x2, ··· ,xr (die Sammlung von Anforderungsgrößen-Token 110 in ) angewendet wird, und der Decoder 116 umfasst eine Selbstaufmerksamkeitslogik 126, die auf eine transformierte Darstellung von y1, y2, ··· ,yt (der Sammlung von Dienstzeit-Token 112) angewendet wird. Der Decoder 116 enthält ferner eine Aufmerksamkeitslogik 128, die auf einen Ausgang des Codierers 114 und den Ausgang der Selbstaufmerksamkeitslogik 126 im Decoder 116 angewendet wird.
  • Sowohl der Encoder 114 als auch der Decoder 116 können unter Verwendung von Hardware-Verarbeitungsschaltungen implementiert werden, die eine beliebige oder eine Kombination aus einem Mikroprozessor, einem Kern eines Multi-Core-Mikroprozessors, einem Mikrocontroller, einer programmierbaren integrierten Schaltung, einem programmierbaren Gate-Array oder einer anderen Hardware-Verarbeitungsschaltung umfassen können. Alternativ können sowohl der Encoder 114 als auch der Decoder 116 mit einer Kombination aus Hardware-Verarbeitungsschaltung(en) und maschinenlesbaren Anweisungen (Software und/oder Firmware) implementiert werden, die auf der/den Hardware-Verarbeitungsschaltung(en) ausführbar sind.
  • Die Selbstbehauptung setzt verschiedene Positionen einer einzelnen Sequenz (z. B. verschiedene Token einer Sammlung von Token 110 oder 112) in Beziehung, um eine Darstellung der Sequenz zu berechnen. Beispielsweise wendet die Selbstaufmerksamkeitslogik 120 im Codierer 114 Selbstaufmerksamkeit auf Eingabe-Token an, die sich auf Arbeitslasten in einem Speichersystem beziehen (z. B. die Anforderungsgrößen-Token der Sammlung 110), die die Eingabe-Token codiert, um Gewichtungen zu berechnen, die Beziehungen zwischen den Eingabe-Token darstellen, und erzeugt eine Darstellung der Eingabe-Token auf der Grundlage der Gewichtungen. Die Darstellung der Eingabe-Token, die sich auf Arbeitslasten beziehen, kann in Form von Ausgabe-Token erfolgen.
  • Die Selbstbeobachtungslogik 124 im Decoder 116 wendet Selbstbeobachtung auf Eingabe-Token an, die sich auf Servicezeiten beziehen (z. B. die Servicezeit-Token der Sammlung 112), die die Eingabe-Token kodiert, die sich auf Servicezeiten beziehen, um Gewichtungen zu berechnen, die Beziehungen zwischen den Eingabe-Token darstellen, die sich auf Servicezeiten beziehen, und erzeugt eine Darstellung der Eingabe-Token, die sich auf Servicezeiten beziehen, basierend auf den von der Selbstbeobachtungslogik 124 berechneten Gewichtungen. Die Darstellung der Eingabe-Token, die sich auf Servicezeiten beziehen, kann in Form von Ausgabe-Token erfolgen.
  • Die Aufmerksamkeitslogik 128 wendet die Aufmerksamkeit auf die vom Codierer 114 und die von der Selbstaufmerksamkeitslogik 126 erzeugten Ausgangstoken an, um Beziehungen (in Form von Gewichtungen) zwischen den vom Codierer 114 und den von der Selbstaufmerksamkeitslogik 126 erzeugten Ausgangstoken zu bestimmen. Diese Gewichte können verwendet werden, um die Ausrichtung (z. B. wie durch die Linien 206 in angezeigt) zwischen Arbeitslastmerkmalen (z. B. E/A-Anforderungsgrößen) und Servicezeiten abzuleiten.
  • Der Kodierer 114 enthält eine lineare Logik 118, und der Dekodierer 116 enthält eine lineare Logik 124. Die lineare Logik 118 im Kodierer 114 wandelt die Eingangssammlung von Token der Anforderungsgröße x1, x2,···, xr in eine Sammlung von internen Vektoren (jedes Token xi wobei i = 1 to r in einen entsprechenden internen Vektor umgewandelt wird. Ein Vektor besteht aus mehreren Elementen. Die lineare Logik 118 wandelt jedes Anforderungsgrößen-Token in einen entsprechenden internen Vektor um, der mehrere Elemente (z. B. mehrere Zahlen) enthält, die zusammen das Anforderungsgrößen-Token darstellen.
  • In ähnlicher Weise wandelt die lineare Logik 124 im Decoder 116 die bisher vom Decoder 116 erzeugten Dienstzeitmarken y1, ··· die bisher vom Decoder 116 erzeugt wurden, in den/die jeweiligen internen Vektor(en) um. In einigen Beispielen ist jeder von der linearen Logik 118 oder 124 erzeugte interne Vektor ein interner Vektor fester Länge.
  • Der Decoder 116 identifiziert eine Teilmenge der im Encoder 114 erzeugten internen Vektoren, die für die Erzeugung eines beliebigen Positionswerts des Dienstzeithistogramms relevant sein können, z. B. kann der Betragswert im 2-ms-Dienstzeitbin des Dienstzeithistogramms 204 in durch die Betragswerte in den 2kB-, 1kB- und 512B-Bins des Anforderungsgrößenhistogramms 202 gesteuert werden. Die vorstehenden Ausführungen bestimmen den Abgleich zwischen Sammlungen von Token aus verschiedenen Bereichen.
  • Es ist zu beachten, dass eine komplexe nicht-monotone Beziehung zwischen den Token-Sammlungen (z. B. 110 und 112) aus verschiedenen Bereichen bestehen kann, wobei jede Token-Sammlung nicht geordnet ist (nach der Zeit oder einer anderen Reihenfolge). In einigen Beispielen verwenden der Kodierer 114 und der Dekodierer 116 kein rekurrentes Modell.
  • Wie in dargestellt, enthält der Codierer 114 außerdem ein neuronales Vorwärtsnetzwerk 122, und der Decoder enthält ein neuronales Vorwärtsnetzwerk 130. Die Ausgabe des neuronalen Vorwärtsnetzwerks 130 wird bereitgestellt, um eine Ausgabe des Decoders 116 zu erzeugen.
  • Die verschiedenen Komponenten (118, 120 und 122) des Codierers 114 können mit einem Teil der Hardware-Verarbeitungsschaltung(en) des Codierers 114 implementiert werden oder alternativ mit maschinenlesbaren Anweisungen, die von der/den Hardware-Verarbeitungsschaltung(en) des Codierers 114 ausgeführt werden können. In ähnlicher Weise können die verschiedenen Komponenten (124, 126, 128 und 130) des Decoders 116 mit einem Teil der Hardwareverarbeitungsschaltung(en) des Decoders 116 oder alternativ mit maschinenlesbaren Anweisungen implementiert werden, die von der/den Hardwareverarbeitungsschaltung(en) des Decoders 116 ausgeführt werden können.
  • Im Codierer 114 führt das neuronale Vorwärtsnetzwerk 122 im Codierer 114 maschinelles Lernen auf der Grundlage von Trainingsdaten durch. Das maschinelle Lernen des neuronalen Feed-Forward-Netzes 122 kann sowohl bei der erstmaligen Erstellung des Transformatormodells 102 als auch iterativ bei der Erzeugung zusätzlicher Ausgaben durch das Transformatormodell 102 durchgeführt werden. In ähnlicher Weise führt das neuronale Vorwärtsnetzwerk 130 im Decoder 116 maschinelles Lernen auf der Grundlage von Trainingsdaten durch. Bei der Erstellung des Transformatormodells 102 können zunächst Trainingsdaten erstellt werden, die Trainingssammlungen von Token enthalten (z. B. eine Trainingssammlung von Anforderungsgrößen-Tokens und eine Trainingssammlung von Servicezeit-Tokens). Die Trainingssammlungen von Token können dem Transformatormodell 102 zum Training des Transformatormodells 102 zur Verfügung gestellt werden. Die Trainingssammlungen von Token können von einem Benutzer oder einer anderen Einheit gefüllt werden. In einigen Beispielen können die Trainingssammlungen von Token zufällige Werte oder Werte aus anderen Quellen enthalten, wie z. B. von einem Benutzer oder einer anderen Entität. In einigen Beispielen können die Trainingssammlungen von Token eine Trainingssammlung von Anforderungsgrößen-Tokens und eine Trainingssammlung von Servicezeit-Tokens enthalten, bei denen die Zuordnungen zwischen ihnen bekannt sind, z. B. aus einer manuellen Analyse oder einer anderen Analyse. In anderen Beispielen kann eine Trainingssammlung von Anforderungsgrößen-Tokens und eine Trainingssammlung von Servicezeit-Tokens verwendet werden, wenn die Zuordnungen zwischen ihnen nicht bekannt sind.
  • Zum Beispiel kann das Transformatormodell 102 auf der Grundlage der Trainingssammlung von Anforderungsgrößen-Token eine Ausgangssammlung von Servicezeit-Token vorhersagen. Ein Trainingsprozess kann die vorhergesagte Ausgabesammlung von Servicezeit-Token mit der Trainingssammlung von Servicezeit-Token vergleichen und bestimmen, wie groß der Fehler in der vorhergesagten Ausgabesammlung von Servicezeit-Token ist.
  • Es können mehrere Trainingsiterationen durchgeführt werden, bis ein vom Transformatormodell 102 erzeugter prognostizierter Ausgang einen Fehler aufweist, der unter einer bestimmten Fehlerschwelle liegt. In jeder Trainingsiteration aktualisiert (lernt) jedes neuronale Vorwärtsnetzwerk 122 oder 130 die Parameter des Transformatormodells 102, die im Kodierer 114 und im Dekodierer 116 verwendet werden, so dass das Transformatormodell 102 beginnt, zu korrekten Ausgaben zu konvergieren (d. h. Ausgaben mit Fehlern innerhalb der festgelegten Fehlerschwelle).
  • Die Parameter, die durch das neuronale Vorwärtsnetzwerk 122 oder 130 aktualisiert (gelernt) werden, werden weiter unten erläutert.
  • 2. Die Umwandlung von Eingaben aus dem kontinuierlichen Raum in den diskreten Raum
  • In einigen Beispielen werden Histogramme, die unbegrenzte, kontinuierliche Werte enthalten (z. B. das Histogramm der Anforderungsgröße 104 und das Histogramm der Servicezeit 108 von , das kontinuierliche Werte in seinen Bins enthält), in Sammlungen von Token mit begrenzten, diskreten Werten umgewandelt, wie die Sammlung von Token der Anforderungsgröße 110 und die Sammlung von Token der Servicezeit 112 von . Ein „kontinuierlicher Wert“ bezieht sich auf einen Wert, der nicht auf einen bestimmten Satz diskreter Werte beschränkt ist. In einem Anforderungsgrößenbehälter kann ein Betragswert beispielsweise einen beliebigen von mehreren möglichen Werten haben (z. B. einen von mehreren Zählwerten, Häufigkeitswerten, Prozentwerten usw.).
  • Das oben beschriebene Beispiel zeigt, wie das Anforderungsgrößenhistogramm 104 (mit unbegrenzten Betragswerten) ( ) in eine Sammlung von Anforderungsgrößen-Token 110 (mit begrenzten, diskreten Betragswerten) umgewandelt werden kann.
  • Das Verarbeitungssystem 100 kann die Betragswerte in den verschiedenen Bins des Anforderungsgrößen-Histogramms 104 in aufsteigender Reihenfolge (oder in einer anderen Reihenfolge) sortieren und ein Array der Betragswerte erzeugen. Beispielsweise wird das Array der aus dem Anforderungsgrößenhistogramm 104 abgeleiteten Betragswerte wie folgt bereitgestellt: [10, 421, 0, 0, 4352, 0, 0, ....., 987, 0, 5167, 2944], wobei jeder Eintrag in dem Array einer Anforderungsgröße entspricht, die durch eine Bin des Histogramms 104 repräsentiert wird (d. h. das Array zeigt 10 Anforderungen der Größe 512B, 421 Anforderungen der Größe 1kB usw. an).
  • Nach der Sortierung wird eine sortierte Reihe von Betragswerten wie folgt bereitgestellt: [0, 0, 0, 0, 0, 0, 0, 10, 13, 30, ......, 4352, 5167, 17438].
  • Es ist anzumerken, dass im vorstehenden Beispiel die (aus dem Histogramm der Anforderungsgröße 104 erhaltenen) Betragswerte eine große (unbegrenzte) Schwankung aufweisen, wobei die Werte von einem Mindestwert von 0 bis zu einem Höchstwert von 17438 reichen.
  • Das Verarbeitungssystem 100 kann Quantilverhältnisse für die Durchführung von Quantilschnitten an der sortierten Reihe von Betragswerten ableiten. In der Statistik können Quantile als Punkte verstanden werden, die einen Bereich einer Verteilung in segmentierte kontinuierliche Intervalle unterteilen. Ein Quantilpunkt, der ein Intervall definiert, kann ein Punkt sein, der den Bereich auf der Grundlage des Quantilverhältnisses unterteilt. Ein Quantilverhältnis von 0,1 oder 10 % wäre beispielsweise ein Punkt oder Wert innerhalb eines Wertebereichs, der die Verteilung definiert und unter dem 10 % der Werte innerhalb der Verteilung liegen können. In ähnlicher Weise wäre ein 0,9- oder 90-%-Quantilverhältnis ein Punkt oder ein Wert innerhalb eines Wertebereichs, der die Verteilung definiert, unter dem 90 % der Werte innerhalb der genannten Verteilung liegen können.
  • In einigen Beispielen können die Quantilverhältnisse gleichmäßig verteilt sein, z. B. „Dezile“, in denen die Quantilverhältnisse als 0,1, 0,2, 0,3, ...., 0,9 und 1,0 definiert sind, wobei jedes Quantilverhältnis um einen Faktor von 0,1 erhöht wird. In anderen Beispielen können die Quantilverhältnisse ungleich definiert sein, wie 0,1,...., 0,9, 0,92, 0,94, 0,998 und 1,0.
  • Die Art und Weise, in der die Quantilsschnitte implementiert werden, kann darauf basieren, wie die Werte innerhalb der sortierten Reihe von Betragswerten verteilt sind. Eine große Anzahl von Elementen innerhalb eines bestimmten Bereichs gegen Ende einer Verteilung kann gröbere Quantilsschnitte zu Beginn der Verteilung und granularere Schnitte gegen Ende der Verteilung nach sich ziehen.
  • zeigt ein Beispiel für eine Verteilung von Anforderungsgrößenmerkmalen 302, die in die Quantile 0,1, 0,2, 0,3, ...., 0,9 und 1,0 unterteilt sind, und eine Verteilung von Servicezeitmerkmalen 304, die in die Quantile 0,1, 0,2, 0,3, ...., 0,9 und 1,0 unterteilt sind. Man beachte, dass eine größere Anzahl von Nicht-Null-Elementen in der Verteilung der Dienstzeitmerkmale 304 in die zweite Hälfte der Quantile fällt, z. B. 0,5, 0,6, 0,7, 0,8, 0,9 und 1,0. Infolgedessen kann das Verarbeitungssystem 100 gröbere Quantilschnitte zu Beginn der Verteilung (z. B. einen Schnitt von 0,0 bis 0,5) und feinere Schnitte gegen Ende der Verteilung (z. B. feinere Schnitte zwischen 0,5 und 1,0) definieren. Im obigen Beispiel werden unterschiedliche Quantil-Binning-Strategien für die Verteilung der Anforderungsgrößenmerkmale 302 und die Verteilung der Dienstzeitmerkmale 304 verwendet.
  • In einigen Beispielen kann die Verteilung von Anforderungsgrößenmerkmalen 302 als die Sammlung von Anforderungsgrößen-Token 110 von verwendet werden, und eine Verteilung von Servicezeitmerkmalen mit den modifizierten Quantilschnitten kann als die Sammlung von Servicezeit-Token 112 von verwendet werden.
  • Die Quantilverhältnisse können als Eingabe von einer Person, z. B. einem Administrator, bereitgestellt werden oder auf einer automatischen Analyse basieren, die vom Verarbeitungssystem 100 durchgeführt wird. Zum Beispiel kann das Verarbeitungssystem 100 die sortierte Reihe von Betragswerten analysieren, um den Maximal- und den Minimalwert zu bestimmen. Basierend auf den Maximal- und Minimalwerten kann das Verarbeitungssystem 100 die Verhältnisse für die Implementierung der Quantilschnitte bestimmen.
  • Ferner ist zu beachten, dass sowohl die Verteilung der Anforderungsgrößenmerkmale 302 als auch die Verteilung der Dienstzeitmerkmale 304 im Gegensatz zu den unbeschränkten Betragswerten der Histogramme 104 und 106 begrenzte Betragswerte verwenden. So wird jedes „Anforderungsgrößenmerkmal“ in einem entsprechenden Quantil der Verteilung der Anforderungsgrößenmerkmale 302 durch einen begrenzten Betragswert dargestellt, und jedes „Dienstzeitmerkmal“ in einem entsprechenden Quantil der Verteilung der Dienstzeitmerkmale 304 wird durch einen begrenzten Betragswert dargestellt.
  • In einigen Beispielen kann das Verarbeitungssystem 100 das Perzentil-Binning anwenden, um die Grenzwerte für jede Verteilung 302 oder 304 abzuleiten. zeigt ein Beispiel für die Anwendung des Perzentil-Binnings, um den Bereich der begrenzten Betragswerte für die jeweiligen Bins des Anforderungsgrößen-Histogramms 104 zu erhalten. Im Beispiel von wird der Betragswert 1.134 für das 512B-Bin auf den Grenzbetragswert 5 abgebildet, der Betragswert 23.000 für das 1 kB-Bin auf den Grenzbetragswert 7, der Betragswert 910 für das 2kB-Bin auf den Grenzbetragswert 6 und so weiter.
  • Im Beispiel von reichen die Werte für die begrenzten Beträge für die Verteilung der Anforderungsgrößenmerkmale 302 von 0 bis 14, und die Werte für die begrenzten Beträge für die Verteilung der Zeitmerkmale 304 reichen von 0 bis 14. In anderen Beispielen können die Verteilung der Anforderungsgrößenmerkmale 302 und die Verteilung der Zeitmerkmale 304 unterschiedliche Wertebereiche für die begrenzten Beträge verwenden. Die aus dem Perzentil-Binning abgeleiteten Grenzwerte werden als Grenzwerte für die von dem Transformatormodell 102 verwendeten Tokensammlungen (110 und 112) verwendet.
  • Beachten Sie, dass die verwendeten Binning-Strategien dynamisch sind und von bestimmten Werten der Histogramme abhängen, die für verschiedene Speichersysteme unterschiedlich sein können.
  • Auf diese Weise werden die Eingaben (z. B. die Histogramme 104 und 108 in ) von einem kontinuierlichen Raum in einen diskreten Raum transformiert (z. B. die Sammlung von Anforderungsgrößen-Token 110 und die Sammlung von Servicezeit-Token 112).
  • 3. Transformator-Modell
  • Das Transformatormodell 102 berechnet eine bedingte Wahrscheinlichkeitsverteilung, die eine Wahrscheinlichkeit einer Ausgabesequenz in Abhängigkeit von einer Eingabesequenz schätzt. Die bedingte Wahrscheinlichkeitsverteilung enthält Wahrscheinlichkeiten, die mit jedem vom Decoder 116 vorhergesagten Ausgangstoken verbunden sind.
  • Wie bereits erwähnt, sind die Dienstzeit-Token (y1,y2, ··· ,yt) in sind Ausgangsmarken, die von dem Transformatormodell 102 einzeln berechnet werden. Für jede Position j (j = 1 to t) werden Wahrscheinlichkeiten für die jeweiligen Kandidaten-Servicezeitmarken berechnet, und die Kandidaten-Servicezeitmarke mit der höchsten Wahrscheinlichkeit wird als die Servicezeitmarke yj an der Position j. Die „Kandidaten“-Dienstzeitmarken sind alle möglichen Dienstzeitmarken aus der Sammlung der Dienstzeitmarken 112, die als Dienstzeitmarke zugewiesen werden können yj an jeder Position j.
  • Das Transformatormodell 102 sagt die Ausgabemarken einzeln voraus, wobei die gesamte Eingabesequenz (z. B. die Sammlung von Anforderungsgrößen-Marken 110) und die zuvor erzeugten Ausgabemarken auf der Grundlage der gelernten bedingten Wahrscheinlichkeit unten verwendet werden: p ( y ) = t = 1 T p ( y t | { y 1 , y 2 , , y t 1 } , c ) ,
    Figure DE102022108670A1_0001
    wobei y das aktuell berechnete Output-Token ist und p(y) die Wahrscheinlichkeit ist, die als gemeinsame bedingte Wahrscheinlichkeit aller Ausgabe-Token modelliert wird yj bedingt durch alle vorherigen Ausgabe-Token und Kontextvektoren c die aus den Eingabezeichen abgeleitet werden (die Kontextvektoren c werden weiter unten besprochen).
  • In weiteren Beispielen kann die gelernte bedingte Wahrscheinlichkeit von Gl. 1 angewandt werden, um eine Wahrscheinlichkeit zwischen einem gegebenen Paar von Eingabe- und Ausgabesequenzen zu bewerten, die verwendet werden kann, um Anomalien in der Verteilung der Servicezeiten angesichts der Anforderungsgrößenmerkmale (oder anderer Arbeitslastmerkmale) zu erkennen.
  • Es ist zu beachten, dass Mengenwerte in einem Bin eines Histogramms (z. B. 104 oder 106) eine örtliche, nicht aber eine zeitliche Bedeutung haben, z. B. hat der Mengenwert im 128kb-Bin des Anforderungsgrößen-Histogramms 104 keinen Einfluss auf die Beziehung zwischen dem Mengenwert im 64k-Bin und den Servicezeit-Bins.
  • 4. Aufmerksamkeitsfunktion
  • ist ein Blockdiagramm einer Aufmerksamkeitsfunktion 500 und einer linearen Logik 502. Die Aufmerksamkeitsfunktion 500 kann verwendet werden, um die Selbstaufmerksamkeitslogik 120, die Selbstaufmerksamkeitslogik 126 und die Aufmerksamkeitslogik 128 von zu implementieren. Die lineare Logik 502 kann verwendet werden, um jede der linearen Logiken 118 und 124 in zu implementieren.
  • Die lineare Logik 502 empfängt Eingabe-Token f1, f2, f3, f4, f5. Obwohl ein Beispiel mit fünf Eingabezeichen zeigt, kann in anderen Beispielen eine andere Anzahl von Eingabezeichen verwendet werden.
  • Für die lineare Logik 118 im Codierer 114 von sind die Eingangs-Token die Token der Anforderungsgröße x1,x2, ··· ,xr. Für die lineare Logik 124 im Decoder 116 sind die Eingangs-Token die bisher erzeugten Rückmeldedienstzeit-Token (y1, ···,), die bisher erzeugt wurden. Die lineare Logik 502 wandelt die Eingangsmusterstücke f1, f2, f3, f4, f5 in eine Sammlung von internen Vektoren h1, h2, h3, h4, h5.
  • Man beachte, dass die Aufmerksamkeitsfunktion 128 von nicht mit einer linearen Logik verbunden ist, da die Ausgabe des Encoders 114 und der Selbstbeobachtungslogik 126 bereits in Vektorform vorliegt. Der Eingang zur Aufmerksamkeitslogik 128 im Decoder 116 umfasst die vom Encoder 114 ausgegebenen Vektoren und die von der Selbstbeobachtungslogik 126 ausgegebenen Vektoren.
  • Die Ausgabe der Aufmerksamkeitsfunktion 500 ist eine Sammlung von Ausgangsvektoren z1, z2, z3, z4, z5.
  • In einigen Beispielen wendet die lineare Logik 502 einen Einbettungsalgorithmus auf die eingegebenen Token an f1, f2, f3, f4, f5. Jedes Eingabe-Token wird durch den Einbettungsalgorithmus in einen Vektor aus reellen Zahlen umgewandelt. Jeder durch den Einbettungsalgorithmus erzeugte Vektor hat eine feste Größe.
  • Die Aufmerksamkeitsfunktion 500 wendet eine Abfrage-, Schlüssel- und Wertoperation an, so dass, wenn die Abfrage mit einem Schlüssel übereinstimmt, der entsprechende Wert zurückgegeben wird.
  • Von jedem internen Vektor hk (k = 1 to 5) der internen Vektoren h1, h2, h3, h4, h5 erzeugt die Aufmerksamkeitsfunktion 500 einen Abfragevektor qk, einen Schlüsselvektor kk, und einen Wertvektor vk, so dass die Abfragevektoren (q1, q2, q3, q4, q5), Schlüsselvektoren (k1, k2, k3, k4, k5), und Wertvektoren (v1, v2, v3, v4, v5) erzeugt werden. Die Aufmerksamkeitsfunktion 500 kann die Abfragevektoren, die Schlüsselvektoren und die Wertvektoren durch Multiplikation der internen Vektoren h1, h2, h3, h4, h5 mit drei Parametermatrizen WQ, WK, und Wv multipliziert werden, die während des Trainings des Transformatormodells 102 erzeugt wurden. Genauer gesagt, durch Multiplikation hk mit WQ ergibt qk, die Multiplikation hk mit WK ergibt kk und Multiplikation hk mit WV ergibt vk.
  • Die Parametermatrizen WQ, WK, und WV werden während des Trainings des Transformatormodells 102 durch ein neuronales Vorwärtsnetzwerk (z. B. 122 oder 130 in ) aktualisiert.
  • Die Aufmerksamkeitsfunktion 500 gleicht die Abfrage (oder genauer gesagt den Abfragevektor) und den Schlüssel (oder genauer gesagt den Schlüsselvektor) ab und gibt einen entsprechenden Wert (oder genauer gesagt den Wertvektor) aus. Wenn die Aufmerksamkeitsfunktion 500 Selbstaufmerksamkeit anwendet, erfolgt die Ausrichtung zwischen Intervallvektoren aus derselben Sammlung interner Vektoren.
  • Bei der Aufmerksamkeitsfunktion 128 von erfolgt der Abgleich jedoch zwischen den Abfragevektoren, die den Ausgangsvektoren des Encoders 114 entsprechen, und den Schlüsselvektoren, die den Ausgangsvektoren der Selbstbeobachtungslogik 126 im Decoder 116 entsprechen.
  • Wenn eine Abfrage mit mehr als einem Schlüssel übereinstimmt, wird der gewichtete Durchschnitt der Werte zurückgegeben, gewichtet nach den Übereinstimmungswerten. Zum Beispiel, wenn h4 stark ausgerichtet ist auf h1 und h5 ist, ist die Ausgabe für h4 die von der Aufmerksamkeitsfunktion 500 erzeugt wird, ein gewichteter Durchschnitt der Ergebnisse für h1 und h2 basierend auf den von der Aufmerksamkeitsfunktion 500 berechneten Ausrichtungsgewichten.
  • Sobald die Abfragevektoren, Schlüsselvektoren und Wertvektoren abgeleitet sind, berechnet die Aufmerksamkeitsfunktion 500 eine Punktzahl für jeden internen Vektor hk. Wenn zum Beispiel ein Score berechnet wird für h2 berechnet wird, dann wird jeder andere interne Vektor h1, h3, h4, and h5 gegen h2. Die Punktzahl wird berechnet, indem man das Punktprodukt des Abfragevektors mit dem Schlüsselvektor des jeweiligen internen Vektors, der bewertet wird, bildet. Die Punktzahlen für h1 werden berechnet, indem man das Punktprodukt von q1 und k1, die Punktzahlen für h2 werden berechnet, indem man das Punktprodukt aus q2 und k2 und so weiter. Die Punktzahlen für jeden internen Vektor hm liegt in Form eines Score-Vektors vor, der mehrere Scores enthält (die hm relativ zu den anderen internen Vektoren).
  • Als Nächstes teilt die Aufmerksamkeitsfunktion 500 die Punktzahlen in den Score-Vektoren durch einen Skalierungsfaktor, z. B. die Quadratwurzel der Dimension der Schlüsselvektoren oder einen anderen Skalierungsfaktor. Die Skalierung liefert skalierte Score-Vektoren (ssv1, ssv2, ssv3, ssv4, and ssv5) für die jeweiligen internen Vektoren h1, h2, h3, h4, and h5. Der skalierte Score-Vektor ssv1 enthält skalierte Scores für h1, der skalierte Score-Vektor ssv2 enthält die skalierten Werte für h2, und so weiter.
  • Anschließend wird eine Gewichtungsfunktion auf die skalierten Punkte in den skalierten Punktevektoren angewandt, um die jeweiligen Gewichte zu ermitteln amk (wobei m = 1 to 5, und k = 1 to 5): α m k = exp ( e m k ) k = 1 T x exp ( e m k ) ,
    Figure DE102022108670A1_0002
    wobei emk eine Ähnlichkeitsbewertung ist (erzeugt durch eine Ähnlichkeitsfunktion, die auf die oben beschriebenen skalierten Bewertungsvektoren angewendet wird), die eine Ähnlichkeit zwischen hm und hk und Tx die Länge der eingegebenen Token ist (die im Beispiel von 5 beträgt). Die Funktion exp(emk) ist eine Exponentialfunktion, die den Exponenten von emk.
  • Jedes Gewicht amk spiegelt die Bedeutung des internen Vektors hm in Bezug auf den internen Vektor hk bei der Generierung der entsprechenden Kodierung und schließlich bei der Generierung eines Ausgabe-Tokens yj.
  • Die Gewichte {α11, α12, α13, α14, α15}, {α21, α22, α23, α24, α25}, {α31, α32, α33, α34, α35}, {α41, α42, α43, α44, α45}, und {α51, α52, α53, a54, α55} werden verwendet, um ein Ausrichtungsmodell zu erstellen azu erstellen, das in dargestellt ist.
  • Die Gewichte im Ausrichtungsmodell α werden dann mit den Wertvektoren multipliziert v1, v2, v3, v4, v5 zu multiplizieren, um die Einträge der Kontextvektoren c in zu erzeugen. Konkret bedeutet dies, v1 mit jeder Gewichtung in {α11, α12, α13, α14, α15} zum Ergebnis wv11, wv12, wv13, wv14, und wv15; v2 wird mit jedem Gewicht in {α21, α22, α23, α24, α25} zum Ergebnis wv21, wv22, wv23, wv24, und wv25; v3 wird mit jedem Gewicht in {α31, α32, α33, α34, α35} zum Ergebnis wv31, wv32, wv33, wv34, und wv35; v4 wird mit jedem Gewicht in {α41, α43, α43, α44, α45} zum Ergebnis wv41, wv42, wv43, wv44, und wv45; und v5 s multipliziert mit jedem Gewicht in {α51, α52, α53, α54, α55} zu erzeugen wv51, wv52, wv53, wv54, und wv55.
  • Dann werden die Summen der Einträge der Kontextvektoren c errechnet, um die Aufmerksamkeitsvektoren z1, z2, z3, z4, und z5 abzuleiten, die das Ergebnis der Aufmerksamkeitsfunktion 500 sind. Im Einzelnen, z1 ist die Summe aus wv11, wv12, wv13, wv14, und wv15; z2 ist die Summe aus wv21, wv22, wv23, wv24, und wv25; z3 ist die Summe aus wv31, wv32, wv33, wv34, und wv35; z4 ist die Summe aus wv41, wv42, wv43, wv44, und wv45; und z5 ist die Summe aus wv51, wv52, wv53, wv54, und wv55.
  • Während die Aufmerksamkeitsfunktion 500, die in jeder der Selbstaufmerksamkeitslogiken 120 und 126 in angewendet wird, Gewichte berechnet amk berechnet, die Beziehungen zwischen internen Vektoren spezifizieren, die einer einzelnen Sammlung von Eingabetokens (x1,x2, ···, xr oder y1, y2, ··· , yt), berechnet die in der Aufmerksamkeitslogik 128 angewandte Aufmerksamkeitsfunktion 500 Gewichte amk die Beziehungen zwischen Vektoren spezifizieren, die zwei verschiedenen Ausgaben entsprechen (der Ausgabe des Encoders 114 und der Ausgabe der Selbstbeobachtungslogik 126 im Decoder 116).
  • Somit sind die Gewichte amk die von der Aufmerksamkeitsfunktion 500 erzeugt werden, Beziehungen zwischen den Eingabe-Token und den Ausgabe-Token an, z. B. Beziehungen zwischen den Anfragegrößen-Token (x1,x2, ··· , xr) und den Token für die Servicezeit y1,y2, ··· ,yt. Die Gewichte können anzeigen, ob eine Beziehung zwischen einem Eingabe-Token (z. B., xi) und einem Ausgabe-Token (yj) besteht und wie stark diese Beziehung ist. Wenn zum Beispiel eine Gewichtung eine Beziehung darstellt zwischen xi und yj einen Schwellenwert übersteigt, bedeutet dies, dass eine Beziehung besteht zwischen xi und yj und die Stärke der Beziehung wird durch den Wert der Gewichtung angegeben (z. B. zeigt ein höherer Gewichtungswert eine stärkere Beziehung an). Wenn der Wert, der die Beziehung zwischen xi und yj kleiner als der Schwellenwert ist, bedeutet dies, dass keine Beziehung besteht zwischen xi und yj.
  • Die Beziehungen zwischen den Eingabe-Token und den Ausgabe-Token können in einer Ausgabedarstellung, wie z. B. einer Heatmap oder einer anderen grafischen Darstellung, präsentiert werden, um einem Benutzer die Möglichkeit zu geben, etwaige Beziehungen (z. B. angezeigt durch unterschiedliche Farben oder unterschiedliche Helligkeit oder unterschiedliche numerische Werte) zwischen den Eingabe-Token und den Ausgabe-Token zu visualisieren.
  • Auf diese Weise kann die Ausgabe des Transformatormodells 102 verwendet werden, um vorherzusagen, wie die Servicezeiten bei einer gegebenen Verteilung der Anforderungsgrößen verteilt sein würden. Darüber hinaus kann ein Benutzer oder eine andere Einheit (ein Programm oder eine Maschine) anhand der Gewichte, die die Beziehungen zwischen Anforderungsgrößen und Servicezeiten angeben, bestimmen, welche Servicezeiten bei bestimmten Anforderungsgrößen angesichts der Arbeitslast zu erwarten sind. Auf diese Weise kann der Benutzer oder eine andere Instanz geeignete Ressourcen in einem Speichersystem für die gegebenen Arbeitslasten für bestimmte Anforderungsgrößen zuweisen, so dass das Speichersystem die Arbeitslasten ausführen und gleichzeitig die Leistungsziele erfüllen kann.
  • Die Ausgabe des Transformatormodells 102 kann auch bei der Fehlersuche in einem Speichersystem verwendet werden. Ein Benutzer oder eine andere Stelle kann die tatsächlichen Betriebszeiten des Speichersystems mit den erwarteten Betriebszeiten vergleichen, die das Transformatormodell 102 für bestimmte Anforderungsgrößen ermittelt hat, um festzustellen, ob Anomalien im Speichersystem vorliegen (z. B. das Speichersystem ist überlastet und arbeitet schlecht, es liegt ein Fehler in einem Programm oder einer Hardwarekomponente vor usw.). Zur Behebung der Anomalien können Warnungen oder andere Abhilfemaßnahmen ergriffen werden.
  • 5. Beispiele
  • ist ein Blockdiagramm eines nicht-transitorischen maschinenlesbaren oder computerlesbaren Speichermediums 600, das maschinenlesbare Anweisungen speichert, die bei Ausführung ein System veranlassen, verschiedene Aufgaben durchzuführen. Das System kann einen Computer oder eine Sammlung von Computern umfassen.
  • Die maschinenlesbaren Anweisungen umfassen erste Token-Sammel-Empfangsanweisungen 602, um eine erste Sammlung von Token zu empfangen, die sich auf Merkmale von Arbeitslasten (z. B. Größen von E/A-Anforderungen) für ein Computersystem (z. B. ein Speichersystem, ein Computersystem, ein Netzwerksystem usw.) beziehen.
  • Die maschinenlesbaren Anweisungen umfassen erste Tokensammlungs-Codierungsanweisungen 604 zum Codieren der ersten Tokensammlung, wobei die Codierung das Berechnen von Gewichtungen, die Beziehungen zwischen Token der ersten Tokensammlung darstellen (z. B. durch die Selbstbeachtungslogik 120 von ), und das Erzeugen einer Darstellung der ersten Tokensammlung auf der Grundlage der Gewichtungen umfasst (wobei die Darstellung der ersten Tokensammlung z. B. die Ausgabe des Codierers 114 von sein kann).
  • Die maschinenlesbaren Anweisungen enthalten Anweisungen zur Token-Korrelation 606, um auf der Grundlage der Darstellung eine Korrelation zwischen der ersten Sammlung von Token und einer zweiten Sammlung von Token zu bestimmen, die sich auf die verstrichenen Zeiten bei der Ausführung der Arbeitslasten bezieht. Die Korrelation kann z. B. durch den Decoder 116 von durchgeführt werden.
  • In einigen Beispielen wird ein Transformatormodell verwendet, um rekursiv Token der zweiten Tokensammlung zu erzeugen und die erzeugten Token der zweiten Tokensammlung als Eingaben in das Transformatormodell zurückzumelden.
  • In einigen Beispielen gibt das Transformationsmodell eine Wahrscheinlichkeit für jedes Token der zweiten Sammlung von Token aus, wenn die erste Sammlung von Token und alle zuvor erzeugten Token der zweiten Sammlung von Token gegeben sind.
  • In einigen Beispielen werden die Gewichte auf der Grundlage der Anwendung einer Selbstaufmerksamkeitsfunktion auf die erste Sammlung von Token berechnet, wobei die Selbstaufmerksamkeitsfunktion die Gewichte auf der Grundlage der Ausrichtung entsprechender Paare von Token der ersten Sammlung von Token berechnet.
  • In einigen Beispielen richtet die Selbstbeobachtungsfunktion die jeweiligen Tokenpaare auf der Grundlage von Parametermatrizen aus (z. B., WQ, WK, und WV), die anhand eines Trainingsdatensatzes trainiert wurden.
  • In einigen Beispielen berechnet die Selbstaufmerksamkeitsfunktion ein Produkt aus den Gewichten und den Werten (z. B. den Wertvektoren vk), die sich aus dem Alignment der jeweiligen Tokenpaare ergeben.
  • In einigen Beispielen zeigen die maschinenlesbaren Anweisungen auf der Grundlage von Gewichtungen, die die Beziehungen zwischen den Token der ersten Tokensammlung und den Token der zweiten Tokensammlung darstellen, die Stärke der Beziehungen zwischen den verstrichenen Zeiten, die durch die zweite Tokensammlung dargestellt werden, und den Merkmalen der Arbeitslasten an, die durch die erste Tokensammlung dargestellt werden.
  • In einigen Beispielen zeigen unterschiedliche Werte der Gewichte unterschiedliche Stärken der Beziehungen zwischen den verstrichenen Zeiten, die durch die zweite Sammlung von Token dargestellt werden, und den Merkmalen der Arbeitslasten, die durch die erste Sammlung von Token dargestellt werden.
  • ist ein Blockdiagramm eines Systems 700 (z.B. ein Computer oder eine Sammlung von Computern).
  • Das System 700 umfasst einen Hardware-Prozessor 702 (oder mehrere Hardware-Prozessoren). Ein Hardware-Prozessor kann ein Mikroprozessor, ein Kern eines Multi-Core-Mikroprozessors, ein Mikrocontroller, eine programmierbare integrierte Schaltung, ein programmierbares Gate-Array oder eine andere Hardware-Verarbeitungsschaltung sein.
  • Das System 700 umfasst ein nichttransitorisches Speichermedium 704, auf dem maschinenlesbare Anweisungen gespeichert sind, die auf dem Hardware-Prozessor 702 ausgeführt werden können, um verschiedene Aufgaben durchzuführen. Maschinenlesbare Anweisungen, die auf einem Hardware-Prozessor ausführbar sind, können sich auf die Anweisungen beziehen, die auf einem einzelnen Hardware-Prozessor oder auf mehreren Hardware-Prozessoren ausführbar sind.
  • Die maschinenlesbaren Anweisungen im Speichermedium 704 enthalten erste Token-Sammel-Empfangsanweisungen 706, um an einem Codierer eine erste Sammlung von Token zu empfangen, die sich auf Merkmale von Anforderungen beziehen, die Arbeitslasten für ein Computersystem erzeugen.
  • Die maschinenlesbaren Anweisungen im Speichermedium 704 enthalten Anweisungen zur Berechnung der Gewichtung der ersten Tokensammlung 708, um unter Verwendung des Kodierers Gewichtungen zu berechnen, die die Beziehungen zwischen den Tokens der ersten Tokensammlung darstellen.
  • Die maschinenlesbaren Anweisungen im Speichermedium 704 enthalten Anweisungen zur Erzeugung einer ersten Tokensammlungsdarstellung 710, um mit dem Codierer eine Darstellung der ersten Tokensammlung auf der Grundlage der Gewichte zu erzeugen.
  • Die maschinenlesbaren Anweisungen im Speichermedium 704 enthalten Anweisungen für den Empfang der ersten TokenSammlungsdarstellung 712, um die Darstellung der ersten Token-Sammlung in einem Decoder vom Codierer zu empfangen.
  • Die maschinenlesbaren Anweisungen im Speichermedium 704 enthalten Korrelationsbestimmungsanweisungen 714, um im Decoder auf der Grundlage der Darstellung eine Korrelation zwischen der ersten Sammlung von Token und einer zweiten Sammlung von Token zu bestimmen, die sich auf die verstrichenen Zeiten bei der Ausführung der Arbeitslasten bezieht.
  • In einigen Beispielen umfassen sowohl der Kodierer als auch der Dekodierer ein neuronales Netz, das anhand von Trainingsdaten trainiert wird.
  • ist ein Flussdiagramm eines Prozesses 800 gemäß einigen Beispielen.
  • Der Prozess 800 umfasst das Trainieren (bei 802) eines Transformationsmodells, das verwendet werden kann, um Beziehungen zwischen einer Eingabesammlung von Token und einer Ausgabesammlung von Token zu bestimmen, wobei die Eingabesammlung von Token sich auf Merkmale von Arbeitslasten in einem Computersystem bezieht und die Ausgabesammlung von Token sich auf verstrichene Zeiten beim Ausführen der Arbeitslasten bezieht.
  • Der Prozess 800 beinhaltet die Bestimmung (bei 804), durch das trainierte Transformatormodell, von ersten Gewichten, die Beziehungen zwischen Token der Eingabesammlung von Token darstellen.
  • Der Prozess 800 umfasst das Erzeugen (bei 806) einer Darstellung der eingegebenen Token-Sammlung durch das trainierte Transformationsmodell auf der Grundlage der Gewichte.
  • Der Prozess 800 umfasst die Bestimmung (bei 808), durch das trainierte Transformatormodell, von zweiten Gewichten, die Beziehungen zwischen Token der Ausgabesammlung von Token darstellen.
  • Der Prozess 800 umfasst das Erzeugen (bei 810) einer Darstellung der Ausgangssammlung von Token durch das trainierte Transformatormodell, basierend auf den Gewichten.
  • Der Prozess 800 beinhaltet, basierend auf der Darstellung der Eingabe-Sammlung von Token und der Darstellung der Ausgabe-Sammlung von Token, die Bestimmung (bei 812) der Beziehungen zwischen der Eingabe-Sammlung von Token und der Ausgabe-Sammlung von Token.
  • Ein Speichermedium (z.B., 600 in oder in ) kann eine beliebige oder eine Kombination der folgenden Elemente umfassen: eine Halbleiterspeichereinrichtung wie ein DRAM oder SRAM, ein löschbarer und programmierbarer Festwertspeicher (EPROM), ein elektrisch löschbarer und programmierbarer Festwertspeicher (EEPROM) und ein Flash-Speicher; eine Magnetplatte wie eine Festplatte, eine Diskette und eine Wechselplatte; ein anderes magnetisches Medium einschließlich eines Bandes; ein optisches Medium wie eine Compact Disk (CD) oder eine digitale Videodisk (DVD); oder eine andere Art von Speichereinrichtung. Es ist zu beachten, dass die oben beschriebenen Anweisungen auf einem einzigen computer- oder maschinenlesbaren Speichermedium oder alternativ auf mehreren computer- oder maschinenlesbaren Speichermedien bereitgestellt werden können, die in einem großen System mit möglicherweise mehreren Knotenpunkten verteilt sind. Ein solches computerlesbares oder maschinenlesbares Speichermedium oder solche Speichermedien werden als Teil eines Artikels (oder eines Herstellungsartikels) betrachtet. Ein Artikel oder Herstellungsgegenstand kann sich auf jede hergestellte Einzelkomponente oder auf mehrere Komponenten beziehen. Das Speichermedium oder die Speichermedien können sich entweder in der Maschine befinden, auf der die maschinenlesbaren Anweisungen ausgeführt werden, oder an einem entfernten Standort, von dem maschinenlesbare Anweisungen über ein Netzwerk zur Ausführung heruntergeladen werden können.
  • In der vorstehenden Beschreibung sind zahlreiche Details aufgeführt, um ein Verständnis des hierin offengelegten Themas zu vermitteln. Allerdings können Implementierungen ohne einige dieser Details praktiziert werden. Andere Implementierungen können Modifikationen und Abweichungen von den oben beschriebenen Details enthalten. Es ist beabsichtigt, dass die beigefügten Ansprüche solche Modifikationen und Variationen abdecken.

Claims (20)

  1. Ein nicht-transitorisches, maschinenlesbares Speichermedium, das Anweisungen enthält, die bei der Ausführung ein System dazu veranlassen,: eine erste Sammlung von Tokens empfangen, die sich auf Merkmale von Arbeitslasten für ein Computersystem beziehen; Kodieren der ersten Sammlung von Token, wobei das Kodieren das Berechnen von Gewichten, die Beziehungen zwischen Token der ersten Sammlung von Token darstellen, und das Erzeugen einer Darstellung der ersten Sammlung von Token auf der Grundlage der Gewichte umfasst; und auf der Grundlage der Darstellung eine Korrelation zwischen der ersten Sammlung von Token und einer zweiten Sammlung von Token in Bezug auf die verstrichenen Zeiten bei der Ausführung der Arbeitslasten zu bestimmen.
  2. Das nicht-transitorische maschinenlesbare Speichermedium nach Anspruch 1, wobei die Anweisungen zum Bestimmen der Korrelation zwischen der ersten Token-Sammlung und der zweiten Token-Sammlung Anweisungen zum Bestimmen umfassen, dass eine Anforderung mit einer ersten Eigenschaft, die in der ersten Token-Sammlung dargestellt ist, zu einer ersten verstrichenen Zeit beiträgt, die in der zweiten Token-Sammlung dargestellt ist.
  3. Das nicht-transitorische maschinenlesbare Speichermedium nach Anspruch 1, wobei die erste Sammlung von Token Anforderungen mit unterschiedlichen Eigenschaften repräsentiert, wobei die Arbeitslasten auf die Anforderungen mit unterschiedlichen Eigenschaften reagieren.
  4. Das nicht-transitorische maschinenlesbare Speichermedium nach Anspruch 1, wobei die zweite Sammlung von Token unterschiedliche Servicezeiten oder Latenzen von Operationen in den Workloads repräsentiert.
  5. Das nicht-transitorische maschinenlesbare Speichermedium nach Anspruch 1, wobei die Anweisungen zum Kodieren der ersten Token-Sammlung und zum Bestimmen der Korrelation zwischen der ersten Token-Sammlung und der zweiten Token-Sammlung Anweisungen eines Transformationsmodells zum rekursiven Erzeugen von Token der zweiten Token-Sammlung und zum Rückkoppeln erzeugter Token der zweiten Token-Sammlung als Eingaben in das Transformationsmodell umfassen.
  6. Das nicht-transitorische maschinenlesbare Speichermedium nach Anspruch 5, wobei das Transformatormodell eine Wahrscheinlichkeit für jedes Token der zweiten Sammlung von Token ausgibt, wenn die erste Sammlung von Token und alle zuvor erzeugten Token der zweiten Sammlung von Token gegeben sind.
  7. Das nicht-transitorische maschinenlesbare Speichermedium nach Anspruch 1, wobei die Anweisungen zum Berechnen der Gewichte Anweisungen zum Anwenden einer Selbstbehauptungsfunktion auf die erste Sammlung von Token umfassen, und wobei die Selbstbehauptungsfunktion die Gewichte auf der Grundlage des Ausrichtens jeweiliger Paare von Token der ersten Sammlung von Token berechnet.
  8. Das nicht-transitorische maschinenlesbare Speichermedium nach Anspruch 7, wobei die Selbstbeobachtungsfunktion die jeweiligen Tokenpaare auf der Grundlage der Verwendung von Parametermatrizen, die unter Verwendung eines Trainingsdatensatzes trainiert wurden, ausrichtet.
  9. Das nicht-transitorische maschinenlesbare Speichermedium nach Anspruch 7, wobei die Selbstbeobachtungsfunktion ein Produkt der Gewichte mit Werten berechnet, die aus dem Ausrichten der jeweiligen Paare von Token erzeugt werden.
  10. Das nicht-transitorisches, maschinenlesbares Speichermedium nach Anspruch 1, wobei die Anweisungen zum Codieren der ersten Sammlung von Wertmarken Teil sind von einen Kodierer, und wobei das nicht-transitorische maschinenlesbare Speichermedium Anweisungen eines Dekodierers umfasst, die bei Ausführung das System veranlassen, die zweite Sammlung von Token zu dekodieren, basierend auf dem Berechnen weiterer Gewichtungen, die Beziehungen zwischen Token der zweiten Sammlung von Token darstellen, und dem Erzeugen einer Darstellung der zweiten Sammlung von Token basierend auf den weiteren Gewichtungen, und wobei die Anweisungen zur Bestimmung der Korrelation zwischen der ersten Sammlung von Wertmarken und der zweiten Sammlung von Wertmarken auf der Darstellung der ersten Sammlung von Wertmarken und der Darstellung der zweiten Sammlung von Wertmarken beruhen.
  11. Das nicht-transitorische, maschinenlesbare Speichermedium nach Anspruch 10, wobei die zu kodierenden Anweisungen Anweisungen zum Anwenden einer ersten Selbstbeobachtungsfunktion auf die erste Sammlung von Spielmarken umfassen und wobei die zu dekodierenden Anweisungen Anweisungen zum Anwenden einer zweiten Selbstbeobachtungsfunktion auf die zweite Sammlung von Spielmarken umfassen.
  12. Das nicht-transitorische maschinenlesbare Speichermedium nach Anspruch 11, wobei die Anweisungen zum Dekodieren Anweisungen zum Anwenden einer Aufmerksamkeitsfunktion auf der Grundlage der Darstellung der ersten Sammlung von Token und der Darstellung der zweiten Sammlung von Token umfassen.
  13. Das nicht-transitorische maschinenlesbare Speichermedium nach Anspruch 12, wobei die Aufmerksamkeitsfunktion Gewichte erzeugt, die Beziehungen zwischen Token der ersten Sammlung von Token und Token der zweiten Sammlung von Token darstellen.
  14. Das nicht-transitorische maschinenlesbare Speichermedium nach Anspruch 13, wobei die Anweisungen bei der Ausführung das System veranlassen: auf der Grundlage der Gewichte, die die Beziehungen zwischen den Token der ersten Tokensammlung und den Token der zweiten Tokensammlung darstellen, die Stärke der Beziehungen zwischen den verstrichenen Zeiten, die durch die zweite Tokensammlung dargestellt werden, und den Merkmalen der Arbeitslasten, die durch die erste Tokensammlung dargestellt werden, angeben.
  15. Das nicht-transitorische maschinenlesbare Speichermedium nach Anspruch 14, wobei unterschiedliche Werte der Gewichte unterschiedliche Stärken der Beziehungen zwischen den verstrichenen Zeiten, die durch die zweite Sammlung von Token repräsentiert werden, und den Eigenschaften der Arbeitslasten, die durch die erste Sammlung von Token repräsentiert werden, anzeigen.
  16. Ein System, das Folgendes umfasst: einen Prozessor; und ein nicht-übertragbares Speichermedium, das Anweisungen speichert, die auf dem Prozessor ausgeführt werden können, um: in einem Codierer eine erste Sammlung von Tokens empfangen, die sich auf Merkmale von Anfragen beziehen, die Arbeitslasten für ein Computersystem erzeugen; unter Verwendung des Kodierers Gewichte zu berechnen, die Beziehungen zwischen den Token der ersten Tokensammlung darstellen; mit dem Kodierer eine Darstellung der ersten Tokensammlung auf der Grundlage der Gewichte zu erzeugen; Empfangen der Darstellung der ersten Token-Sammlung in einem Decoder von dem Codierer; und im Decoder auf der Grundlage der Darstellung eine Korrelation zwischen der ersten Sammlung von Token und einer zweiten Sammlung von Token in Bezug auf die verstrichenen Zeiten bei der Ausführung der Arbeitslasten zu bestimmen.
  17. Das System nach Anspruch 16, wobei die Anweisungen auf dem Prozessor ausführbar sind, um: rekursiv Token der zweiten Sammlung von Token einzeln zu erzeugen; und Rückkopplung der erzeugten Token an einen Eingang des Decoders, um weitere Token der zweiten Tokensammlung zu erzeugen.
  18. Das System nach Anspruch 16, wobei sowohl der Kodierer als auch der Dekodierer ein neuronales Netz umfassen, das unter Verwendung von Trainingsdaten trainiert wird.
  19. Ein Verfahren für ein System mit einem Hardware-Prozessor, das Folgendes umfasst: Training eines Transformatormodells, das zur Bestimmung von Beziehungen zwischen einer Eingangssammlung von Token und einer Ausgangssammlung von Token verwendet werden kann, wobei sich die Eingangssammlung von Token auf Merkmale von Arbeitslasten in einem Computersystem und die Ausgangssammlung von Token auf verstrichene Zeiten bei der Ausführung der Arbeitslasten bezieht; Bestimmen, durch das trainierte Transformatormodell, erster Gewichte, die Beziehungen zwischen Token der Eingangssammlung von Token darstellen; Erzeugen einer Darstellung der eingegebenen Token-Sammlung auf der Grundlage der Gewichte durch das trainierte Transformationsmodell; Bestimmung, durch das trainierte Transformationsmodell, von zweiten Gewichten, die Beziehungen zwischen Token der Ausgangssammlung von Token darstellen; Erzeugen einer Darstellung der Ausgangssammlung von Token durch das trainierte Transformationsmodell auf der Grundlage der Gewichte; und auf der Grundlage der Darstellung der Eingangssammlung von Token und der Darstellung der Ausgangssammlung von Token die Beziehungen zwischen der Eingangssammlung von Token und der Ausgangssammlung von Token bestimmen.
  20. Das Verfahren nach Anspruch 19, wobei die Eingabesammlung von Token ein erstes Histogramm darstellt, das Bins umfasst, die verschiedene Merkmale der Arbeitslasten darstellen, und die Ausgabesammlung von Token ein zweites Histogramm darstellt, das Bins umfasst, die verschiedene verstrichene Zeiten darstellen.
DE102022108670.4A 2021-12-17 2022-04-10 Korrelationen zwischen arbeitsbelastungsmerkmalen und verstrichene zeiten Pending DE102022108670A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN202141059108 2021-12-17
IN202141059108 2021-12-17

Publications (1)

Publication Number Publication Date
DE102022108670A1 true DE102022108670A1 (de) 2023-06-22

Family

ID=86606025

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022108670.4A Pending DE102022108670A1 (de) 2021-12-17 2022-04-10 Korrelationen zwischen arbeitsbelastungsmerkmalen und verstrichene zeiten

Country Status (3)

Country Link
US (2) US11882175B2 (de)
CN (1) CN116266102A (de)
DE (1) DE102022108670A1 (de)

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5664106A (en) 1993-06-04 1997-09-02 Digital Equipment Corporation Phase-space surface representation of server computer performance in a computer network
US9507887B1 (en) 2013-03-13 2016-11-29 EMC IP Holding Company LLC Adaptive techniques for workload distribution across multiple storage tiers
US9753987B1 (en) 2013-04-25 2017-09-05 EMC IP Holding Company LLC Identifying groups of similar data portions
US9384227B1 (en) 2013-06-04 2016-07-05 Amazon Technologies, Inc. Database system providing skew metrics across a key space
US10795868B2 (en) 2013-11-22 2020-10-06 Teradata Us, Inc. Summarizing statistical data for database systems and/or environments
US9665288B1 (en) 2013-12-26 2017-05-30 EMC IP Holding Company LLC Techniques for determining workload skew
US10339455B1 (en) 2014-03-24 2019-07-02 EMC IP Holding Company LLC Techniques for determining workload skew
US10671431B1 (en) 2014-09-25 2020-06-02 EMC IP Holding Company LLC Extent group workload forecasts
US9983795B1 (en) 2015-03-31 2018-05-29 EMC IP Holding Company LLC Techniques for determining a storage configuration
US11632304B2 (en) 2016-10-31 2023-04-18 Hewlett Packard Enterprise Development Lp Methods and systems for characterizing computing system performance using peer-derived performance severity and symptom severity models
US10778552B2 (en) * 2018-04-30 2020-09-15 Hewlett Packard Enterprise Development Lp Storage system latency evaluation based on I/O patterns
US11436052B2 (en) 2019-06-17 2022-09-06 Hewlett Packard Enterprise Development Lp Shared resource operational metric

Also Published As

Publication number Publication date
US20230199060A1 (en) 2023-06-22
US20240195864A1 (en) 2024-06-13
CN116266102A (zh) 2023-06-20
US11882175B2 (en) 2024-01-23

Similar Documents

Publication Publication Date Title
Castro et al. Minimax bounds for active learning
DE102017125256A1 (de) Suche nach einer neuronalen Architektur
DE69908360T2 (de) Rechnersystem und verfahren zur erklärung des verhaltens eines modelles das eingangsdaten auf ausgangdaten abbildet
DE102018100239A1 (de) Schleifen- und Bibliotheksfusion
DE102016223193A1 (de) Verfahren und Vorrichtung zum Komplettieren eines Wissensgraphen
DE112016005290T5 (de) Anomliefusion auf temporalen kausalitätsgraphen
DE112011104487T5 (de) Verfahren und System zur prädiktiven Modellierung
DE102019004300A1 (de) Verwendung eines dynamischen speichernetzwerks zum verfolgen digitaler dialogzustände und erzeugen von antworten
Wallenius et al. An approach to solving multiple criteria macroeconomic policy problems and an application
DE112023000011T5 (de) Ein primäres Frequenzmodulationssteuersystem der thermischen Stromerzeugungseinheit mit kleinen Störungen
DE112012005559T5 (de) Software-Installation
DE102012204167A1 (de) Vorauslaufende genäherte Berechnungen
DE112021004559T5 (de) System zur robusten vorhersage bei unregelmässigen zeitreihen in dialysepatientenakten
DE4040348A1 (de) Vorrichtung zur designauswertung
DE102015201690A1 (de) Verfahren und systeme zur analyse eines finanzdatensatzes
Gillen et al. Demand estimation with high-dimensional product characteristics
DE102015009800A1 (de) Automatisiertes System zur sicheren Strategieanwendung
DE69926156T2 (de) Vorrichtung zur Auswertung der Verschlüsselungsstärke und Aufzeichnungsmedium zur Aufzeichnung eines Programms zur Auswertung der Verschlüsselungsstärke
DE112015005501B4 (de) Alterungsprofilbildungsmaschine für physikalische Systeme
DE102022108670A1 (de) Korrelationen zwischen arbeitsbelastungsmerkmalen und verstrichene zeiten
EP1264253B1 (de) Verfahren und anordnung zur modellierung eines systems
DE102016223484A1 (de) Bestimmen von Ähnlichkeiten in Computersoftwarecodes zur Leistungsanalyse
Béranger et al. Tail density estimation for exploratory data analysis using kernel methods
DE10056825C2 (de) Verfahren, Vorrichtung und Computerprogramm zum Erzeugen eines Zufallstestcodes
Boonyakunakorn et al. Forecasting of Thailand's Rice Exports Price: Based on Ridge and Lasso Regression

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: PROCK, THOMAS, DR., GB

R081 Change of applicant/patentee

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, SPR, US

Free format text: FORMER OWNER: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, HOUSTON, TX, US

R012 Request for examination validly filed