Systemverwaltungshandbuch: Oracle Solaris Container - Ressourcenverwaltung und Solaris Zones

Kapitel 4 Einführung in das Extended Accounting

Mit den in Kapitel 2Einführung in Projekte und Aufgaben beschriebenen Leistungsmerkmalen Projekt und Aufgabe zum Bezeichnen und Trennen von Arbeitslasten können Sie den Ressourcenverbrauch durch einzelne Arbeitslasten überwachen. Mit dem Subsystem Extended Accounting können Sie detaillierte Statistiken zum Ressourcenverbrauch durch Prozesse und Aufgaben erfassen.

In diesem Kapitel werden folgende Themen behandelt.

Wenn Sie direkt mit der Arbeit in Extended Accounting beginnen möchten, lesen Sie So aktivieren Sie das Extended Accounting für Prozesse, Aufgaben und Flows.

Neue Funktionen im Extended Accounting für Solaris 10

mstate-Daten für das Prozess-Accounting können jetzt erstellt werden. Lesen Sie dazu So zeigen Sie die verfügbaren Accounting-Ressourcen an.

Eine vollständige Liste der neuen Funktionen in Solaris 10 sowie eine Beschreibung der Solaris-Releases finden Sie in Neuerungen in Oracle Solaris 9 10/10.

Einführung in das Extended Accounting

Das Subsystem Extended Accounting kennzeichnet Nutzungsdatensätze mit dem Projekt, für das die Arbeit ausgeführt wurde. Sie können das Extended Accounting auch zusammen mit dem in Kapitel 36, Verwenden von Flow Accounting und Erfassen von Statistiken (Aufgaben) in Systemverwaltungshandbuch: IP ServicesSystem Administration Guide: IP Services beschriebenen Internet Protocol Quality of Service (IPQoS) Flow Accounting-Modul verwenden, um Informationen zu den Netzwerkabläufen auf einem System zu erfassen.

Bevor Sie die Mechanismen einer Ressourcenverwaltung anwenden können, müssen Sie den Ressourcenverbrauch durch die verschiedenen Arbeitslasten auf dem System einschätzen. Das Extended Accounting im Betriebssystem Solaris kann den System- und Netzwerk-Ressourcenverbrauch auf Aufgaben- oder Prozessbasis oder auf Basis von Selektoren, die vom IPQoS-Modul flowacct bereitgestellt werden, flexibel erfassen. Weitere Informationen finden Sie unter ipqos(7IPP).

Im Gegensatz zu Online-Überwachungstools, die die Systemnutzung in Echtzeit messen, können Sie mit dem Extended Accounting Verlaufsdaten zur Nutzung auswerten. Mit diesen Ergebnissen können Sie Einschätzungen der Kapazitätsanforderungen künftiger Arbeitslasten erstellen.

Wenn Ihnen Daten aus dem Extended Accounting zur Verfügung stehen, können Sie Software zum Ressourcen-Chargeback, zur Arbeitlastüberwachung oder zur Kapazitätsplanung entwickeln oder erwerben.

Funktionsweise des Extended Accounting

Das Extended Accounting im Betriebssystem Solaris verwendet für die Accounting-Daten ein mit Versionsnummer gekennzeichnetes, erweiterbares Dateiformat. Dateien in diesem Dateiformat können mithilfe der in der Bibliothek libexacctenthaltenen API geöffnet oder erstellt werden (siehe libexacct(3LIB)). Diese Dateien können dann auf jeder Plattform mit aktiviertem Extended Accounting analysiert werden. Die darin enthaltenen Daten können zur Kapazitätsplanung und für das Chargeback verwendet werden.

Bei aktiviertem Extended Accounting werden Statistiken erfasst, die mit der libexacct-API ausgewertet werden können. libexacct ermöglicht sogar eine vorwärts- und rückwärts gerichtete Auswertung der exacct-Dateien. Die API unterstützt von libexacct erzeugte Drittanbieterdateien sowie vom Kernel erstellte Dateien. Weiterhin gibt es eine Perl-Schnittstelle zu libexacct, mit der Sie benutzerdefinierte Skripten zur Berichterstattung und Extraktion entwickeln können. Lesen Sie dazu Perl-Schnittstelle für libexacct.

Beispielsweise verfolgt die Aufgabe bei aktiviertem Extended Accounting die aggregierte Ressourcennutzung ihrer Mitgliederprozesse. Nach Beendigung der Aufgabe wird ein Aufgaben-Accounting-Datensatz gespeichert. Für laufende Prozesse und Aufgaben können auch Zwischendatensätze gespeichert werden. Weitere Informationen zu Aufgaben finden Sie in Kapitel 2Einführung in Projekte und Aufgaben.

Abbildung 4–1 Aufgabenverfolgung bei aktiviertem Extended Accounting

Das Flussdiagramm zeigt, wie die aggregierte Ressourcennutzung durch die Prozesse einer Aufgabe in einem Datensatz erfasst werden, der nach Beendigung der Aufgabe gespeichert wird.

Erweiterbares Format

Das Extended Accounting-Format ist wesentlich flexibler als das der SunOS-Accounting-Legatsoftware (siehe What is System Accounting? in System Administration Guide: Advanced Administration ). Mit dem Extended Accounting können Accounting-Metriken zwischen einzelnen Releases und sogar während des Systembetriebs zum System hinzugefügt bzw. davon gelöscht werden.


Hinweis –

Das Extended Accounting und die Accounting-Legatsoftware können gleichzeitig auf einem System aktiviert sein.


exacct – Datensätze und Format

Programmroutinen zum Erstellen von exacct-Datensätzen erfüllen zwei Aufgaben.

Das Format ermöglicht, dass verschiedene Arten von Accounting-Datensätzen erfasst werden können, ohne dass jede Änderung eine explizite Versionsänderung erfordert. Gut geschriebene Anwendungen zur Verarbeitung von Accounting-Daten ignorieren Datensätze, die sie nicht verstehen.

Die Bibliothek libexacct konvertiert und erstellt Dateien im exacct-Format. Diese Bibliothek ist die einzige unterstützte Schnittstelle für Dateien im exacct-Format.


Hinweis –

Die Systemaufrufe getacct, putacct und wracct gelten nicht für Flows. Der Kernel erstellt Flow-Datensätze und schreibt sie in die Datei, wenn das IPQoS Flow-Accounting konfiguriert ist.


Verwenden des Extended Accounting auf einem Solaris-System mit installierten Zonen

Wenn das Extended Accounting in der globalen Zone ausgeführt wird, sammelt es Daten und erstellt Berichte für das gesamte System (einschließlich der nicht-globalen Zonen). Der globale Administrator kann darüber hinaus den Ressourcenverbrauch pro Zone festlegen. Weitere Informationen finden Sie unter Extended Accounting auf einem Solaris-System mit installierten Zonen.

Konfiguration des Extended Accounting

Die aktuelle Konfiguration des Extended Accounting ist in der Datei/etc/acctadm.conf gespeichert. Diese Datei wird über die Schnittstelle acctadm und nicht vom Benutzer bearbeitet.

Standardmäßig werden die Extended Accounting-Daten im Verzeichnis /var/adm/exacct gespeichert. Mit dem Befehl acctadm können Sie einen anderen Speicherort für die Accounting-Datendateien von Prozessen und Aufgaben zuweisen. Weitere Informationen finden Sie unter acctadm(1M).

Mit Extended Accounting verwendete Befehle

Befehl 

Beschreibung 

acctadm(1M)

Ändert verschiedene Attribute des Extended Accounting, startet und stoppt das Extended Accounting und dient zum Auswählen der Accounting-Attribute für das Verfolgen von Prozessen, Aufgaben und Flows. 

wracct(1M)

Schreibt die Extended Accounting-Datensätze für aktive Prozesse und Aufgaben. 

lastcomm(1)

Zeigt die zuvor aufgerufenen Befehle an. lastcomm kann Prozessdaten entweder aus dem standardmäßigen Accounting oder dem Extended Accounting verarbeiten.

Weitere Informationen zu den Befehlen, die Aufgaben und Projekten zugeordnet sind, finden Sie unter Beispiele für Befehle und Befehlsoptionen. Informationen zum IPQoS Flow-Accounting finden Sie in der Manpage ipqosconf(1M).

Perl-Schnittstelle für libexacct

Mit der Perl-Schnittstelle können Sie Perl-Skripten erstellen, die vom exacct-Framework erstellte Accounting-Dateien lesen können. Auch lassen sich Perl-Skripten zum Schreiben von exacct-Dateien erstellen.

Die Schnittstelle entspricht in der Funktion der zu Grunde liegenden C API. Wenn möglich, werden die von der zu Grunde liegenden C API erfassten Daten als Perl-Datentypen dargestellt. Diese Funktion vereinfacht den Datenzugriff und macht das Packen und Entpacken des Puffers überflüssig. Darüber hinaus wird die gesamte Speicherverwaltung von der Perl-Bibliothek übernommen.

Die einzelnen Projekt-, Aufgabe- und exacct-bezogenen Funktionen werden in Gruppen aufgeteilt. Jede Funktionsgruppe befindet sich in einem separaten Perl-Modul. Jedes Modul beginnt mit dem standardmäßigen Sun-Präfix Sun::Solaris:: für Perl-Pakete. Alle von der Perl-Bibliothek exacct bereitgestellten Klassen befinden sich im Sun::Solaris::Exacct-Modul.

Die zu Grunde liegende libexacct(3LIB)-Bibliothek stellt die Vorgänge für Dateien im exacct-Format, Katalog-Tags und exacct-Objekte bereit. exacct-Objekte sind in zwei Typen unterteilt:

In der folgenden Tabelle werden die einzelnen Module zusammenfassend beschrieben.

Modul (darf keine Leerzeichen enthalten) 

Beschreibung 

Weitere Informationen 

Sun::Solaris::Project

Dieses Modul bietet Funktionen für den Zugriff auf die Funktionen zur Projektbearbeitung getprojid(2), endprojent(3PROJECT) , fgetprojent(3PROJECT), getdefaultproj(3PROJECT), getprojbyid(3PROJECT), getprojbyname(3PROJECT), getprojent(3PROJECT), getprojidbyname(3PROJECT), inproj(3PROJECT), project_walk(3PROJECT), setproject(3PROJECT) und setprojent(3PROJECT).

Project(3PERL)

Sun::Solaris::Task

Dieses Modul bietet Funktionen für den Zugriff auf die Funktionen zur Aufgabenbearbeitung gettaskid(2) und settaskid(2).

Task(3PERL)

Sun::Solaris::Exacct

Dieses Modul ist das übergeordnete exacct-Modul. Dieses Modul bietet Funktionen für den Zugriff auf die exacct-bezogenen Systemaufrufe getacct(2), putacct(2) und wracct(2). Dieses Modul bietet darüber hinaus Funktionen zum Zugriff auf die libexacct(3LIB)-Bibliotheksfunktion ea_error(3EXACCT). Weiterhin werden Konstanten für alle exacct EO_*, EW_*, EXR_*, P_*, und TASK_*-Makros in diesem Modul bereitgestellt.

Exacct(3PERL)

Sun::Solaris::Exacct:: Catalog

Dieses Modul enthält die objektorientierten Methoden für den Zugriff auf die Bitfelder in einem exacct-Katalog-Tag. Darüber hinaus bietet dieses Modul Zugriff auf die Konstanten der Makros EXC_*, EXD_* und EXD_*.

Exacct::Catalog(3PERL)

Sun::Solaris::Exacct:: File

Dieses Modul bietet enthält objektorientierten Methoden für den Zugriff auf die Funktionen der libexacct-Accounting-Datei ea_open(3EXACCT), ea_close(3EXACCT), ea_get_creator(3EXACCT), ea_get_hostname(3EXACCT), ea_next_object(3EXACCT), ea_previous_object(3EXACCT) und ea_write_object(3EXACCT).

Exacct::File(3PERL)

Sun::Solaris::Exacct:: Object

Dieses Modul enthält die objektorientierten Methoden für den Zugriff auf ein einzelnes Objekt einer exacct-Accounting-Datei. Ein exacct-Objekt wird als ein Verweis dargestellt, der in der entsprechenden Unterklasse Sun::Solaris::Exacct::Object enthalten ist. Das Modul ist weiter in die Objekttypen „Item“ und „Group“ unterteilt. Auf dieser Ebene gibt es Methoden für den Zugriff auf die Funktionen ea_match_object_catalog(3EXACCT) und ea_attach_to_object(3EXACCT).

Exacct::Object(3PERL)

Sun::Solaris::Exacct:: Object::Item

Dieses Modul enthält die objektorientierten Methoden für den Zugriff auf ein einzelnes Element in einer exacct-Accounting-Datei. Objekte dieses Typs erben von Sun::Solaris::Exacct::Object.

Exacct::Object::Item(3PERL)

Sun::Solaris::Exacct:: Object::Group

Dieses Modul enthält die objektorientierten Methoden für den Zugriff auf eine einzelne Gruppe einer exacct-Accounting-Datei. Objekte dieses Typs erben von Sun::Solaris::Exacct::Object. Diese Objekte bieten Zugriff auf die Funktion ea_attach_to_group(3EXACCT) Die in der Gruppe enthaltenen Elemente werden als ein Perl-Array dargestellt.

Exacct::Object::Group(3PERL)

Sun::Solaris::Kstat

Dieses Modul enthält eine an Perl gebundene Hash-Schnittstelle für die kstat-Funktion. Ein in Perl geschriebenes Nutzungsbeispiel dieses Moduls finden Sie in /bin/kstat.

Kstat(3PERL)

Beispiele, in denen die Verwendung der in der obigen Tabelle beschriebenen Module gezeigt wird, finden Sie unter Verwenden der Perl-Schnittstelle für libexacct.