Systemverwaltungshandbuch: Oracle Solaris Container - Ressourcenverwaltung und Solaris Zones

Das Konzept von Resource Controls

Im Betriebssystem Solaris wurde das Konzept einer prozessbasierten Ressourceneinschränkung auf die in Kapitel 2Einführung in Projekte und Aufgaben beschriebenen Funktionen Aufgabe und Projekt erweitert. Diese Erweiterungen werden über Resource Controls (rctls) umgesetzt. Darüber hinaus sind Zuweisungen, die über die Tunables /etc/system eingestellt wurden, jetzt automatisiert oder können ebenfalls über Resource Controls konfiguriert werden.

Eine Resource Control ist durch das Präfix zone, project, task oder process gekennzeichnet. Resource Controls können systemweit überwacht werden. Die Werte von Resource Controls können bei laufendem System aktualisiert werden.

Eine Liste der standardmäßigen Resource Controls für dieses Release finden Sie unter Verfügbare Resource Controls. Informationen zu den verfügbaren zonenweiten Resource Controls finden Sie unter Ressourcentypeigenschaften.

Eine Liste der standardmäßigen Resource Controls für dieses Release finden Sie unter Verfügbare Resource Controls.

Maximaler Ressourcenverbrauch und Resource Controls

UNIX-Systeme verfügen traditionell über eine Funktion zur Begrenzung des maximalen Ressourcenverbrauchs (rlimit). Mit „rlimit“ können Administrator einen oder mehrere numerische Grenzwerte für die Ressourcen einrichten, die ein Prozess maximal verbrauchen darf. Diese Grenzwerte enthalten die verwendete CPU-Zeit pro Prozess, die Kerndateigröße pro Prozess und die maximale Heap-Größe pro Prozess. Heap-Größe ist der für das Prozessdatensegment zugewiesene Scratch-Speicher.

Resource Controls bilden u. a. Kompatibilitätsschnittstellen für den maximalen Ressourcenverbrauch. Vorhandene Anwendungen, für die ein maximaler Ressourcenverbrauch festgelegt wurde, laufen unverändert weiter. Diese Anwendungen können auf die gleiche Weise überwacht werden wie Anwendungen, die geändert wurden, um von den Vorteilen der Resource Controls profitieren zu können.

Prozessübergreifende Kommunikation und Resource Controls

Prozesse können über verschiedene Arten von prozessübergreifender Kommunikation (Interprocess Communication, IPC) miteinander kommunizieren. IPC ermöglicht die Übertragung oder Synchronisierung von Informationen zwischen Prozessen. Vor dem Solaris-Release 10 wurden die einstellbaren IPC-Parameter durch Hinzufügen eines Eintrags zur Datei /etc/system gesetzt. Die Resource Controls umfassen jetzt Funktionen, die das Verhalten der IPC-Funktionen des Kernel definieren. Diese Resource Controls ersetzen die /etc/system-Tunables.

Auf diesem Solaris-System können in der Datei /etc/system veraltete Parameter enthalten sein. In diesem Fall dienen die Parameter zur Initialisierung der Standardwerte für Ressourcenobjekte gemäß den vorigen Solaris-Versionen. Von der Verwendung der veralteten Parameter wird jedoch abgeraten

Um festzustellen, welche IPC-Objekte zur Nutzung durch ein Projekt beitragen, verwenden Sie den Befehl ipcs mit der Option -J. Eine Beispielanzeige finden Sie unter So verwenden Sie ipcs Weitere Informationen zum Befehl ipcs finden Sie unter ipcs(1).

Informationen zur Einstellung eines Solaris-Systems finden Sie im Oracle Solaris Tunable Parameters Reference Manual .

Einschränkungsmechanismen der Resource Controls

Resource Controls bieten einen Mechanismus zur Einschränkung der Systemressourcen. Mit diesem Mechanismus kann verhindert werden, dass Prozesse, Aufgaben, Projekte und Zonen bestimmte angegebene Systemressourcen verbrauchen. Das System lässt sich besser verwalten, da übermäßiger Ressourcenverbrauch verhindert wird.

Die Einschränkungsmechanismen können auch in Prozessen zur Kapazitätsplanung verwendet werden. Wenn eine Anwendung auf eine Einschränkung trifft, kann diese auch Informationen zu den Ressourcenanforderungen der Anwendung liefern, ohne dass diese Ressourcen unbedingt verweigert werden.

Projektattribute

Resource Controls können auch als einfache Attribute für die Ressourcenverwaltung verwendet werden. Beispielsweise wird die Anzahl der CPU-Shares, die einem Projekt in der Scheduling-Klasse Fair Share Scheduler (FSS) zur Verfügung stehen, von der Resource Control project.cpu-shares definiert. Da dem Projekt von der Resource Control eine feste Anzahl an Shares zugewiesen wird, werden die Aktionen, die dem Überschreiten der Resource Control zugeordnet sind, nicht angewendet. In diesem Zusammenhang wird der aktuelle Wert für die Resource Control project.cpu-shares als Attribut für das angegebene Projekt betrachtet.

Ein anderer Projektattributtyp dient zum Begrenzen des Speicherressourcenverbrauchs durch Prozesse, die an ein Projekt angehängt sind. Dieser Attribute haben das Präfix rcap, z. B. rcap.max-rss. Dieser Attributtyp wird wie eine Resource Control in der project-Datenbank konfiguriert. Während Resource Controls synchron vom Kernel durchgesetzt werden, werden Resource Caps (Speicherbegrenzungen) asynchron auf Benutzerebene über den Resource Capping Daemon rcapd durchgesetzt. Weitere Informationen zum rcapd finden Sie in Kapitel 10Einführung in die Steuerung des reellen Arbeitsspeichers mithilfe des Resource Capping Daemons und in der Manpage rcapd(1M).

Mit dem Attribut project.pool wird eine Pool-Bindung eines Projekt angegeben. Weitere Informationen zu Resource Pools finden Sie in Kapitel 12Einführung in Resource Pools.