Systemverwaltungshandbuch: Oracle Solaris Container - Ressourcenverwaltung und Solaris Zones

Kapitel 1 Einführung in Solaris 10-Ressourcenverwaltung

Die Funktionen zur Ressourcenverwaltung bilden eine Komponente der Solaris Container-Umgebung. Mit der Ressourcenverwaltung können Sie festlegen, wie verfügbare Systemressourcen durch Anwendungen genutzt werden. Folgende Vorgehensweisen sind möglich:

In diesem Kapitel werden die folgenden Themen behandelt.

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.

Einsatzgebiete für die Ressourcenverwaltung

Die Ressourcenverwaltung wird immer dann eingesetzt, wenn sichergestellt werden muss, dass Ihre Anwendungen vorgeschriebene Reaktionszeiten einhalten.

Die Ressourcenverwaltung kann auch die Ressourcenauslastung erhöhen. Durch Kategorisieren und Priorisieren der Nutzung können freie Kapazitäten außerhalb der Hauptbelastungszeiten effizient genutzt und so häufig den Bedarf für zusätzliche Prozessorleistung eliminiert werden. Außerdem können Sie sicherstellen, dass Ressourcen aufgrund sich ändernder Arbeitslasten nicht ungenutzt bleiben.

Server-Konsolidierung

Die Ressourcenverwaltung eignet sich besonders für Umgebungen, in denen zahlreiche Anwendungen auf einem Server zusammengelegt sind.

Die hohen Kosten für die Verwaltung mehrerer Computer und deren Komplexität sprechen dafür, mehrere Anwendungen auf großen, besser skalierbaren Servern zu konsolidieren. Doch anstatt jeder Arbeitslast auf einem separaten System den vollen Zugriff auf die Systemressourcen zu gewähren, können Sie die Ressourcenverwaltung einsetzen, um Arbeitslasten innerhalb des Systems zu trennen. Die Ressourcenverwaltung kann zur Senkung der Gesamtkosten beitragen, indem mehrere unterschiedliche Anwendungen auf einem einzigen Solaris-System ausgeführt und gesteuert werden.

Wenn Sie Internet- und Anwendungsservices bereitstellen, können Sie mit der Ressourcenverwaltung:

Unterstützen einer großen oder variierenden Benutzerzahl

Ein ideales Einsatzgebiet für die Ressourcenverwaltung ist ein System, das zahlreiche Benutzer mit unterschiedlichen Anforderungen bedient, z. B. bei einem Bildungsinstitut. Wenn unterschiedliche Arbeitslasten vorliegen, kann die Software so konfiguriert werden, dass sie bestimmten Projekten Prioritäten einräumt.

Beispielsweise benötigen die Broker großer Maklerfirmen in unregelmäßigen Abständen schnellen Zugriff auf Ressourcen, um eine Abfrage oder eine Berechnung durchzuführen. Andere Systembenutzer haben hingegen konsistente Arbeitslasten. Wenn Sie den Projekten der Broker einen proportional größeren Betrag der Rechenleistung zuweisen, haben sie die benötigte Reaktionsschnelligkeit.

Die Ressourcenverwaltung eignet sich auch ideal für die Unterstützung von Thin-Client-Systemen. Diese Plattformen bieten statusfreie Konsolen mit Frame-Buffern und Eingabegeräte, z. B. SmartCards. Die tatsächliche Berechnung erfolgt auf einen gemeinsam genutzten Server, die gesamte Umgebung entspricht einem Timesharing-Modell. Mit den Funktionen der Ressourcenverwaltung können Sie die Benutzer auf dem Server voneinander isolieren. In diesem Fall kann ein Benutzer, der eine übermäßig hohe Last erzeugt, keine Hardwareressourcen monopolisieren oder die Leistung anderer Benutzer des gleichen Systems negativ beeinflussen.

Einrichten der Ressourcenverwaltung (Übersicht der Schritte)

Die folgende Übersicht der Schritte bietet einen allgemeinen Überblick der Schritte, die zum Einrichten der Ressourcenverwaltung auf dem System erforderlich sind.

Aufgabe 

Beschreibung 

Siehe 

Identifizieren der Arbeitslasten auf dem System und Kategorisieren jeder Arbeitslast nach Projekt. 

Erstellen von Projekteinträgen entweder in der Datei /etc/project, in der NIS-Map oder im LDAP-Verzeichnisservice.

project-Datenbank

Priorisieren der Arbeitslasten auf dem System. 

Festlegen der unternehmenskritischen Anwendungen. Diese Arbeitslasten benötigen eventuell bevorzugten Zugriff auf Ressourcen. 

Lesen Sie die betrieblichen Ziele Ihres Unternehmens. 

Überwachen der Echtzeitaktivität auf dem System. 

Verwenden der Leistungswerkzeuge zum Anzeigen des aktuellen Ressourcenverbrauchs durch Arbeitslasten, die auf dem System ausgeführt werden. Schränken Sie aufgrund der Ergebnisse den Zugriff auf bestimmte Ressourcen ein oder isolieren Sie bestimmte Arbeitslasten. 

Überwachung nach System und in den Manpages cpustat(1M), iostat(1M), mpstat(1M), prstat(1M), sar(1) und vmstat(1M)

Vornehmen von vorübergehenden Änderungen an Arbeitslasten, die auf dem System ausgeführt werden. 

Prüfen der im Solaris System verfügbaren Resource Controls, um festzustellen, welche Werte geändert werden können. Die Werte können während der Aufgaben- oder Prozessausführung von der Befehlszeile aus geändert werden. 

Verfügbare Resource Controls, Globale und lokale Aktionen mit Resource Control-Werten, Vorübergehendes Aktualisieren der Resource Control-Werte bei laufendem System und in den Manpages rctladm(1M) und prctl(1).

Einstellen der Resource Controls und Projektattribute für jeden Projekteintrag in der project-Datenbank oder der Namen-Service-Projektdatenbank.

Jeder Projekteintrag in der Datei /etc/project oder der Namen-Service-Projektdatenbank kann eine oder mehrere Resource Controls oder Attribute enthalten. Resource Controls schränken Aufgaben und Prozesse ein, die an das Projekt angehängt sind. Jedem für eine Resource Control eingerichteten Schwellenwert können eine oder mehrere Aktionen zugewiesen werden, die beim Erreichen des Schwellenwerts ausgeführt werden.

Resource Controls können über die Befehlszeilenschnittstelle eingerichtet werden. Bestimmte Konfigurationsparameter können auch über die Solaris Management Console eingerichtet werden. 

project-Datenbank, Format der lokalen Datei /etc/project , Verfügbare Resource Controls, Globale und lokale Aktionen mit Resource Control-Werten und Kapitel 8Einführung in den Fair Share Scheduler

Einrichten einer oberen Grenze für den Ressourcenverbrauch des reellen Speichers durch Prozesse, die an ein Projekt angehängt sind. 

Der Daemon zur Durchsetzung einer Ressourcenbegrenzung (Resource Cap Enforcement Daemon) setzt eine Begrenzung des reellen Speichers durch, die mit dem Projektattribut rcap.max-rss in der Datei /etc/project definiert wurde.

project-Datenbank und Kapitel 10Einführung in die Steuerung des reellen Arbeitsspeichers mithilfe des Resource Capping Daemons

Erstellen von Resource Pool-Konfigurationen. 

Resource Pools stellen eine Möglichkeit dar, Systemressourcen wie z. B. Prozessoren zu partitionieren und diese Partitionen auch nach einem Neustart beizubehalten. Sie können in jedem Eintrag in der Datei /etc/project ein project.pool-Attribut hinzufügen.

project-Datenbank und Kapitel 12Einführung in Resource Pools

Einrichten des Fair Share Scheduler (FSS) als standardmäßigem System-Scheduler. 

Sicherstellen, dass alle Benutzerprozesse auf einem System mit nur einer CPU oder einem Prozessorset zur gleichen Scheduling-Klasse gehören. 

Konfigurieren des FSS und in der Manpage dispadmin(1M)

Aktivieren des Extended Accounting zum Überwachen und Aufzeichnen des Ressourcenverbrauchs auf Aufgaben- oder Projektbasis. 

Verwenden der Extended Accounting-Daten zur Bewertung der aktuellen Resource Controls und Planung der Kapazitätsanforderungen künftiger Arbeitslasten. Die aggregierte Nutzung kann systemweit aufgezeichnet werden. Um vollständige Nutzungsstatistiken für verwandte, mehrere Systeme umfassende Arbeitslasten zu erhalten, kann der Projektname auf mehreren Computern gemeinsam genutzt werden. 

So aktivieren Sie das Extended Accounting für Prozesse, Aufgaben und Flows und in der Manpage acctadm(1M)

(Optional) Wenn zusätzliche Anpassungen an der Konfiguration vorgenehmen werden müssen, können Sie die Werte weiterhin über die Befehlszeile ändern. Sie können die Werte während der Aufgaben- oder Prozessausführung über die Befehlszeile ändern. 

Änderungen an bestehenden Aufgaben können vorübergehend angewendet werden, ohne dass das Projekt neu gestartet werden muss. Passen Sie die Werte weiter an, bis Sie mit der Leistung zufrieden sind. Dann aktualisieren Sie die aktuellen Werte in der Datei /etc/project oder in der Namen-Service-Projektdatenbank.

Vorübergehendes Aktualisieren der Resource Control-Werte bei laufendem System und in den Manpages rctladm(1M) und prctl(1)

(Optional) Erfassen der Extended Accounting-Daten. 

Schreiben der Extended Accounting-Datensätze für aktive Prozesse und Aufgaben. Die erzeugten Dateien können für Planung, Chargeback und Abrechnungszwecke verwendet werden. Darüber hinaus gibt es eine Perl-Schnittstelle zu libexacct, mit der Sie benutzerdefinierte Skripten zur Berichterstattung und Extraktion entwickeln können.

wracct(1M) Manpage und Perl-Schnittstelle für libexacct