# Workload Manager

Der Workload-Manager (WLM) ist ein integraler Bestandteil des z/OS-Großrechner-Betriebssystems von IBM. Es ist die Komponente, die für die Arbeit auf einem z/OS den Zugang zu den Betriebsmitteln steuert. Ferner stellt er Daten zur Verfügung, die zur Lastverteilung innerhalb eines Parallel Sysplex genutzt werden können.

## Eigenschaften

Auf einem Großrechner ist ein priorisierter Zugang zu Betriebsmitteln notwendig, da viele unterschiedliche Anwendungen den Rechner gleichzeitig nutzen und eine den Kundenwünschen entsprechende Ressourcenverteilung erfolgen muss. Der Workload-Manager ist somit die zentrale Komponente, die eine verlässliche Ausführungszeit von Arbeitseinheiten unter z/OS garantiert und somit eine Grundvoraussetzung für einen verlässlichen Zugriff auf Datenbanksysteme ermöglicht.
WLM steuert die Betriebsmittelvergabe auf der Basis von Dienstklassen (im Fachbegriff: Service Classes). Arbeitseinheiten werden den Dienstklassen über einen Klassifizierungsmechanismus zugeordnet. Die Klassifizierung wird durch den Systemverwalter des z/OS-Systems vorgenommen und kann anhand von Attributen, die für die Programmprodukte unter z/OS existieren, vorgenommen werden. Beispielhafte Attribute sind Benutzernamen, Transaktionsnamen, Transaktionsklassen oder Programmnamen, die in den Anwendungen verwendet werden. Als weiteres definiert der Verwalter eine Zielvorgabe für die Dienstklassen. Die Zielvorgabe kann die durchschnittliche Antwortzeit der Arbeitseinheiten, die in der Klasse laufen, umfassen, einen prozentualen Anteil der Arbeitseinheiten, die in einer bestimmten Zeit enden sollen, oder eine durchsatzorientierte Vorgabe darstellen. Welches Ziel für eine Dienstklasse vergeben werden kann, hängt davon ab, wie viele Informationen der Workload-Manager über die Anwendungen erhält. Neben der Zielvorgabe wird jeder Dienstklasse eine Wichtigkeit zugeordnet, die festlegt, welche Klassen bevorzugt bzw. benachteiligt werden sollen, wenn die Betriebsmittel im System nicht mehr ausreichend zur Verfügung stehen.
WLM benutzt einen Regelmechanismus, um zur Laufzeit den Zugang zu den Betriebsmitteln zu steuern. Dazu werden kontinuierlich Daten aus dem z/OS-System gesammelt. Dies sind Informationen über die Wartezustände der Arbeitseinheiten auf die Betriebsmittel, die Anzahl der laufenden Arbeitseinheiten und deren Abarbeitungszeiten. Die Informationen werden in Dienstklassen zusammengefasst entsprechend der Klassifizierung, die durch den Systemverwalter vorgenommen wurde. Dann wird auf der Basis dieser Informationen die Zielerfüllung für jede Klasse berechnet und, falls notwendig, der Zugang zu den Betriebsmitteln angepasst. Die Anpassung erfolgt immer in Abhängigkeit von der Wichtigkeit der Klassen und dem Grad, in dem das Ziel verfehlt wird. Das heißt, die wichtigste Klasse, die am weitesten ihr vorgegebenes Ziel verfehlt hat, wird als erste betrachtet und die Klassen mit der geringsten Wichtigkeit sind die potenziellen Kandidaten, um Betriebsmittel abzugeben. Dabei wird allerdings berücksichtigt, ob ein potenzieller Spender (Donor) auch tatsächlich das benötigte Betriebsmittel verwendet. Dieser Regelmechanismus läuft alle 10 Sekunden im z/OS ab. In der Zwischenzeit werden die Daten für das nächste Berechnungsintervall gesammelt. Ein Berechnungsintervall endet, wenn eine Anpassung zugunsten einer Dienstklasse durchgeführt werden kann.
WLM steuert den Zugang zu den Prozessoren und E/A-Einheiten des Systems, den Zugang zum Speicher und die Bereitstellung von Adressräumen, um Programme für bestimmte Anwendungen abarbeiten zu lassen. Der Zugang zu den Prozessoren wird zum Beispiel über Dispatch Priorities geregelt. Dazu wird allen Arbeitseinheiten einer Dienstklasse dieselbe Priorität zugeordnet, wobei jedoch die Vergabe dieser Priorität nicht in jedem Fall mit der Definition der Wichtigkeit der Dienstklasse übereinstimmen muss. Vielmehr orientiert sie sich an der aktuellen Auslastung des Systems, den Anforderungen der Klasse und ihrer Zielerfüllung. Dieses Verhalten des z/OS-WLM nennt man auch zielorientiertes Workload-Management, und es ist ein wichtiges Unterscheidungskriterium zum anteilsorientierten Workload-Management, bei dem feste Zugänge zu den Betriebsmitteln vergeben werden. Letzteres findet sich häufig in Workload-Management-Komponenten von Unix-Systemen.
Der zweite essenzielle Unterschied des z/OS-WLM zu anderen Workload-Management-Komponenten ist die starke Verflechtung mit den Anwendungen und Programmprodukten, die unter einem z/OS-Betriebssystem ablaufen. So ist es durch die ständige Kommunikation zwischen dem WLM und diesen Anwendungen möglich, die Transaktionen der Anwendungen zu erkennen und im System durch den WLM zu steuern. Dies ist bis dato auf keinem anderen System möglich, in denen jedwede Steuerung auf Prozesse begrenzt ist.
Neben der Steuerung eines Systems bietet der z/OS-WLM eine Reihe von Schnittstellen, die es Lastverteilungskomponenten erlauben, Informationen aus dem System zu erhalten, um eine intelligente Verteilung von Arbeit auf eines oder mehrere z/OS-Systeme vorzunehmen. Mehrere z/OS-Systeme können in einem Parallel Sysplex zusammengeschaltet werden, und diese Kombination wird ebenfalls unterstützt, um nach außen ein einheitliches Bild abzugeben. z/OS WLM verfügt außerdem über eine Reihe von weiteren Funktionen, die die Lastverteilung auf einem physischen System zwischen mehreren logischen Systemen unterstützen und den Zugang zu großen Plattenfarmen in Abhängigkeit von der darauf zugreifenden Arbeit steuern.