Systemverwaltungshandbuch: Oracle Solaris Container - Ressourcenverwaltung und Solaris Zones

Ressourcenverwaltung – Übersicht

Moderne Computerumgebungen müssen flexibel auf sich ändernde Arbeitslasten reagieren können, die von verschiedenen Anwendungen auf einem System erzeugt werden. Eine Arbeitslast ist die Zusammenfassung aller Prozesse einer Anwendung oder Anwendungsgruppe. Ohne die Funktionen der Ressourcenverwaltung reagiert Solaris auf die Ansprüche von Arbeitlasten, indem es sich den neuen Anforderungen dynamisch anpasst. Diese Standardreaktion bedeutet allgemein, dass allen Aktivitäten auf einem System der gleiche Zugriff auf Ressourcen gewährt wird. Mit der Solaris-Ressourcenverwaltung können Arbeitslasten jedoch individuell behandelt werden. Folgende Vorgehensweisen sind möglich:

Als Ressourcenverwaltung wird die Fähigkeit bezeichnet, arbeitslastübergreifende Leistungseinbußen zu minimieren. Dies wird kombiniert mit Funktionen zur Überwachung von Ressourcennutzung und -auslastung. Die Ressourcenverwaltung wird über verschiedene Algorithmen umgesetzt. Diese Algorithmen verarbeiten die Kapazitätsanforderungen, die eine Anwendung während ihrer Ausführung stellt.

Mit den Funktionen der Ressourcenverwaltung können Sie das Standardverhalten des Betriebssystems in Bezug auf die verschiedenen Arbeitslasten anpassen. Verhalten bezieht sich hier auf die Entscheidungen der Betriebssystemalgorithmen, wenn eine Anwendung Ressourcenanforderungen an das System stellt. Mit den Funktionen der Ressourcenverwaltung können Sie:

Die Übernahme einer Systemkonfiguration, die Funktionen der Ressourcenverwaltung verwendet, dient mehreren Zwecken. Folgende Vorgehensweisen sind möglich:

Bei der Planung einer ressourcenverwalteten Konfiguration sind die primären Anforderungen:

Nachdem kooperierende und konkurrierende Arbeitslasten identifiziert wurden, erstellen Sie eine Ressourcenkonfiguration, die den besten Kompromiss zwischen den betrieblichen Zielen Ihres Unternehmens und den Einschränkungen der Systemkapazitäten darstellt.

Eine effektive Ressourcenverwaltung in einem Solaris-System erfolgt über das Zusammenspiel von Mechanismen zur Steuerung, Benachrichtigung und Überwachung. Einige dieser Funktionen werden über Erweiterungen für vorhandene Mechanismen bereitgestellt, z. B. das proc(4)-Dateisystem, Prozessorsets und Scheduling-Klassen. Andere Funktionen sind nur für die Ressourcenverwaltung verfügbar. Diese Funktionen werden in den folgenden Kapiteln beschrieben.

Ressourcenklassifizierungen

Eine Ressource ist ein beliebiger Aspekt eines Computersystems, der geändert werden kann, um das Verhalten einer Anwendung zu beeinflussen. Somit ist eine Ressource ein Leistungsmerkmal, das eine Anwendung implizit oder explizit anfordert. Wird dieses Leistungsmerkmal verweigert oder ist es eingeschränkt, wird eine robust geschriebene Anwendung langsamer ausgeführt.

Im Gegensatz zur Identifizierung von Ressourcen kann die Klassifizierung von Ressourcen auf verschiedenen Achsen erfolgen. Die Achsen können implizit vs. explizit angefordert, zeitbasiert (z. B. CPU-Zeit) vs. zeitunabhängig (z. B. zugewiesene CPU-Shares) usw. darstellen.

Im Allgemeinen wird die Scheduler-basierte Ressourcenverwaltung für Ressourcen eingesetzt, die eine Anwendung implizit anfordern kann. So fordert eine Anwendung z. B. implizit zusätzliche CPU-Zeit an, um die Ausführung fortsetzen zu können. Eine andere Anwendung fordert implizit Bandbreite an, um Daten auf ein Netzwerk-Socket zu schreiben. Für implizit angeforderten Ressourcen können Einschränkungen hinsichtlich der Gesamtnutzung festgelegt werden.

Es können zusätzliche Schnittstellen eingeführt werden, so dass Bandbreite oder CPU-Serviceebenen explizit ausgehandelt werden können. Explizit angeforderte Ressourcen (beispielsweise eine Anforderung für einen zusätzlichen Thread) können mithilfe von Einschränkungen verwaltet werden.

Steuerungsmechanismen in der Ressourcenverwaltung

Im Betriebssystem Solaris gibt es drei Arten von Steuerungsmechanismen: Einschränkungen, Scheduling und Partitionierung.

Einschränkungen

Mit Einschränkungen kann der Administrator oder Anwendungsentwickler Grenzen für den Verbrauch von bestimmten Ressourcen durch eine Arbeitslast festlegen. Mit bekannten Grenzen wird das Erstellen von Szenarien zum Ressourcenverbrauch einfacher. Grenzen vereinfachen auch die Steuerung fehlerhafter Anwendungen, die sich andernfalls durch unkontrollierte Ressourcenanforderungen negativ auf die Systemleistung oder -verfügbarkeit auswirken würden.

Einschränkungen stellen Komplikationen für eine Anwendung dar. Das Zusammenspiel von Anwendung und System kann bis zu einem Punkt modifiziert werden, an dem die Anwendung nicht mehr ordnungsgemäß funktioniert. Eine Möglichkeit, dieses Risiko zu mindern, besteht darin, die Einschränkungen nur an Anwendungen mit unbekannten Ressourcenverhalten anzuwenden. Die in Kapitel 6Einführung in die Resource Controls beschriebene Funktion der Resource Controls stellt einen solchen Einschränkungsmechanismus dar. Neuere Anwendungen können so geschrieben werden, dass sie sich ihrer Ressourceneinschränkungen bewusst sind, aber nicht alle Autoren nutzen diese Möglichkeit.

Scheduling

Scheduling bedeutet, verschiedene Zuweisungsentscheidungen in bestimmten Intervallen zu treffen. Eine getroffene Entscheidung basiert auf einem berechenbaren Algorithmus. Eine Anwendung, die ihre aktuell zugewiesenen Ressourcen nicht benötigt, überlässt sie einer anderen Anwendung zur Nutzung. Scheduling-basierte Ressourcenverwaltung ermöglicht die volle Auslastung eines nicht vollständig genutzten Systems und steuert gleichzeitig die Zuweisungen in einem kritisch oder übermäßig ausgelastetem Szenario. Der zu Grunde liegende Algorithmus definiert, wie der Begriff „gesteuert“ interpretiert wird. In einigen Fällen kann der Scheduling-Algorithmus garantieren, dass alle Anwendungen einen bestimmten Zugriff auf die Ressourcen haben. Der in Kapitel 8Einführung in den Fair Share Scheduler beschriebene Fair Share Scheduler (FSS) verwaltet und steuert den Zugriff von Anwendungen auf CPU-Ressourcen.

Partitionierung

Die Partitionierung bindet eine Arbeitslast an einen Teil der verfügbaren Systemressourcen. Diese Binding garantiert, dass immer eine bekannte Ressourcenmenge für die Arbeitslast zur Verfügung steht. Mit der in Kapitel 12Einführung in Resource Pools beschriebenen Funktion der Resource Pools können Sie die Arbeitslasten auf bestimmte Teile des Computers beschränken.

Mit Konfigurationen, in denen die Partitionierung eingesetzt wird, lassen sich systemweite Überlastungen vermeiden. Andererseits könnte durch eben dieses Vermeiden von Überlastungen die Fähigkeit, eine möglichst hohe Systemauslastung zu erreichen, beeinträchtigt werden. Befindet sich die an eine Ressourcengruppe (z. B. Prozessoren) gebundene Arbeitslast im Leerlauf, steht diese gebundene Ressourcengruppe nicht mehr anderen Arbeitslasten zur Verfügung.

Konfiguration der Ressourcenverwaltung

Teile der Konfiguration einer Ressourcenverwaltung können in einem Netzwerk-Namen-Service platziert werden. So kann der Administrator die Einschränkungen einer Ressourcenverwaltung auf mehrere Computer anstatt nur auf ein System anwenden. Verwandte Arbeiten können einen gemeinsamen Bezeichner nutzen, und die Gesamtnutzung dieser Arbeiten kann anhand der Accounting-Daten tabellarisch dargestellt werden.

Die Konfiguration der Ressourcenverwaltung und arbeitslastbezogene Bezeichner werden in Kapitel 2Einführung in Projekte und Aufgaben ausführlich beschrieben. Das Extended Accounting, das diese Bezeichner mit der Ressourcennutzung durch Anwendungen verbindet, ist in Kapitel 4Einführung in das Extended Accounting beschrieben.

Interaktion mit Solaris Zones

Die Ressourcenverwaltung kann zusammen mit der Partitionierungssoftware Solaris Zones verwendet werden, um die Anwendungsumgebung genau anzupassen. Die Interaktionen zwischen den Funktionen der Ressourcenverwaltung und Solaris Zones werden in den entsprechenden Abschnitten dieses Handbuchs beschrieben.