DB2 Universal Database - Systemverwaltung


Erstellen der Governor-Konfigurationsdatei

Beim Start von Governor geben Sie den Namen der Konfigurationsdatei an, die die Regeln zum Überprüfen der in einer Datenbank aktiven Anwendungen enthält. Governor handelt auf der Grundlage dieser Regeln.

Wenn Ihre Anforderungen zur Verwaltung der Datenbank sich ändern, können Sie die Konfigurationsdatei editieren, ohne Governor zu stoppen. Jeder Governor-Dämon findet die geänderte Datei und liest sie erneut.

Sie müssen die Konfigurationsdatei in einem Verzeichnis erstellen, das über alle Datenbankknoten angehängt ist, denn alle Governor-Dämonen auf sämtlichen Knoten müssen in der Lage sein, dieselbe Konfigurationsdatei zu lesen.

Die Konfigurationsdatei enthält Regeln und Kommentare. Die meisten Einträge können in Großbuchstaben, Kleinbuchstaben oder gemischt angegeben werden. Die Ausnahme ist applname, wo Groß- und Kleinschreibung unterschieden wird.

Kommentare werden mit geschweiften Klammern { } begrenzt. Die Regeln umfassen folgendes:

Jede Regel in der Datei muß mit einem Semikolon (;) abgeschlossen werden.

Die folgenden Regeln dienen zur Angabe der überwachten Datenbank und der Zeitdauer nach Beendigung der Aktivitäten des Dämons (beschrieben in Der Governor-Dämon) bis zu seinem erneuten Erwachen. Diese Regeln werden nur einmal in der Datei angegeben.

dbname
Der Name oder Aliasname der zu überwachenden Datenbank

account nnn
Benutzereintragsdatensätze, die statistische Daten zur CPU-Auslastung für jede Verbindung enthalten, werden jeweils nach Ablauf der angegebenen Anzahl Minuten geschrieben.
Anmerkung:Diese Option ist in Windows NT- und OS/2-Umgebungen nicht verfügbar.

Liegt eine kurze Verbindung ganz innerhalb einer Aufzeichnungsperiode, so wird kein Protokollsatz geschrieben. Wenn Protokollsätze geschrieben werden, enthalten Sie CPU-Statistik, die Aufschluß über die CPU-Verwendung der Verbindung seit dem vorangegangenen Protokollsatz geben. Wird Governor gestoppt und erneut gestartet, wird die CPU-Verwendung möglicherweise in zwei Protokollsätzen aufgezeichnet; diese können über die Anwendungs-IDs in den Protokollsätzen erkannt werden. Weitere Informationen zu Governor-Protokolldateien finden Sie in Governor-Protokolldateien.

interval
Das Intervall in Sekunden, in dem der Dämon aktiv wird. Wenn kein Intervall angegeben wird, wird ein Intervall von 120 Sekunden verwendet.

Sie verbinden die folgenden Regelklauseln zu einer Regel (d.h. nicht jede einzelne Klausel, sondern nur die gesamte Regel wird mit einem Semikolon abgeschlossen). In den Klausel geben Sie die Zeitspanne für die Anwendung einer Regel und die Obergrenze für die verwendbaren Betriebsmittel an. Optional können Sie außerdem noch bestimmte Benutzer oder Anwendungen und Aktionen angeben, die Governor ausführen soll, wenn in einer Regel angegebne Grenzen überschritten werden. Dies Klauseln können innerhalb einer Regel nur einmal, in unterschiedlichen Regeln jedoch mehrmals angegeben werden. Die Klauseln müssen in der angezeigten Reihenfolge angegeben werden. In der folgenden Beschreibung wird eine wahlfreie Klausel durch [ ] angezeigt.

[desc]
Gibt eine Textbeschreibung der Regel an. Die Beschreibung muß in einfachen oder doppelten Anführungszeichen stehen.

[time]
Gibt die Zeitspanne an, während der die Regel auswertet werden soll.

Die Zeitspanne muß im Format time hh:mm hh:mm angegeben werden, z. B. time 8:00 18:00. Wird diese Klausel nicht angegeben, ist die Regel 24 Stunden am Tag gültig.

[SQL-Berechtigungs-ID ]
Gibt eine oder mehrere Berechtigungs-IDs (authid) an, mit denen die Anwendung ausgeführt wird. Mehrere Berechtigungs-IDs müssen durch ein Komma (,) voneinander getrennt werden, z. B. authid gene, michael, james. Wird diese Klausel in einer Regel nicht angezeigt, wird sie auf alle Berechtigungs-IDs angewendet.

[applname]
Gibt den Namen der ausführbaren Datei (oder Objektdatei) an, welche die Verbindung zu der Datenbank herstellt.

Mehrere Anwendungsnamen müssen durch ein Komma (,) voneinander getrennt werden, z. B. applname db2bp, batch, geneprog. Wird diese Klausel in einer Regel nicht angezeigt, wird sie auf alle Anwendungsnamen angewendet.

Anmerkungen:

  1. Bei Anwendungsnamen muß Groß-/Kleinschreibung beachtet werden.

  2. Der Datenbankmanager schneidet alle Anwendungsnamen auf 20 Zeichen ab. Stellen Sie sicher, daß die zu prüfende Anwendung mit den ersten 20 Zeichen ihres Anwendungsnamens eindeutig identifiziert wird; ist das nicht der Fall, wird möglicherweise unbeabsichtigt eine andere Anwendung überprüft.

    Anwendungsnamen in der Governor-Konfigurationsdatei werden auf 20 Zeichen abgeschnitten, damit sie mit ihrer internen Darstellung übereinstimmen.

setlimit
Gibt Begrenzungen ein, die Governor überprüfen soll. Die Begrenzungen dürfen nur die Werte -1 oder größer als 0 annehmen (z. B. cpu -1 locks 1000 rowssel 10000). Sie müssen mindestens eine der Begrenzungen (cpu, locks, rowsread, uowtime) angeben; jede nicht angegebene Begrenzung wird nicht der entsprechenden Regel nicht eingeschränkt. Governor kann folgende Begrenzungen überprüfen:

cpu nnn
Gibt die Anzahl der CPU-Sekunden an, die eine Anwendung nutzen kann. Wenn Sie -1 angeben, schränkt Governor die CPU-Verwendung der Anwendung nicht ein.
Anmerkung:Diese Option ist in Windows NT- und OS/2-Umgebungen nicht verfügbar.

locks nnn
Gibt die Anzahl der Sperren an, die eine Anwendung enthalten kann. Wenn Sie -1 angeben, schränkt Governor die Anzahl der in der Anwendung enthaltenen Sperren nicht ein.

rowssel nnn
Gibt die Anzahl von Zeilen an, die an die Anwendung zurückgegeben werden. Dieser Wert ist nur auf dem Koordinatorknoten ungleich Null. Wenn Sie -1 angeben, schränkt Governor die Anzahl der auswählbaren Zeilen nicht ein.

uowtime nnn
Gibt die Zeitspanne in Sekunden an, die verstreichen kann, nachdem eine Arbeitseinheit (UOW) zum ersten Mal aktiv wird. Wenn Sie -1 angeben, wird die abgelaufene Zeit nicht eingeschränkt.
Anmerkung:Wenn Sie die API sqlmon (den Datenbanksystemmonitor-Schalter) zum Inaktivieren des Schalters der Arbeitseinheit verwendet haben, wird die Fähigkeit von Governor beeinträchtigt, Anwendungen auf der Grundlage der abgelaufenen Zeit der Arbeitseinheit zu überprüfen. Governor verwendet das Überwachungsprogramm zum Sammeln von Systeminformationen. Wenn Sie die Schalter in der Konfigurationsdatei des Datenbankmanagers ausschalten, wird dieses Programm für das gesamte Exemplar abgeschaltet; dadurch erhält Governor diese Informationen nicht mehr.

idle nnn
Gibt die für eine Verbindung zulässige Leerlaufzeit in Sekunden an, bevor eine Aktion ausgeführt wird. Wenn Sie -1 angeben, wird die Leerlaufzeit der Verbindung nicht eingeschränkt.

rowsread nnn
Gibt die Anzahl der von einer Anwendung auswählbaren Zeilen an. Wenn Sie -1 angeben, kann die Anwendung eine unbegrenzte Anzahl an Zeilen auswählen.
Anmerkung:Diese Begrenzung ist nicht mit rowssel identisch. Der Unterschied besteht darin, daß sich rowsread auf die Anzahl der Zeilen bezieht, die gelesen werden mußten, um eine Ergebnismenge zurückgeben zu können. Die Anzahl der gelesenen Zeilen schließt Lesevorgänge der Katalogtabellen durch die Steuerkomponente ein; sie kann durch die Verwendung von Indizes verringert werden.

[action]
Gibt die Aktion an, die ausgeführt werden muß, wenn eine angegebene Begrenzung überschritten wird. Sie können folgende Aktionen angeben:
Anmerkung:Wenn eine Begrenzung überschritten wird und die Aktionsklausel nicht angegeben ist, verringert Governor die Priorität der in der Anwendung aktiven Agenten um 10.

priority nnn
Gibt eine Änderung der Priorität der in der Anwendung aktiven Agenten an. Gültige Werte: -20 bis +20.

Dieser Parameter ist unter folgenden Voraussetzungen wirksam:

  • Auf UNIX-Plattformen muß der Parameter agentpri des Datenbankmanagers den Standardwert aufweisen; andernfalls überschreibt er die Prioritätsklausel.
  • Auf OS/2- und Windows NT-Plattformen kann der Datenbankmanagerparameter agentpri gemeinsam mit der Aktion priority verwendet werden.

force
Gibt an, daß der Agent, der die Anwendung wartet, zum Abmelden gezwungen wird. (Setzt die Anweisung FORCE APPLICATION ab, um den koordinierenden Agenten zu beenden.)

schedule [class]
Durch Zeitzuweisung werden die Prioritäten der in den Anwendungen aktiven Agent verbessert und dadurch die durchschnittlichen Antwortzeiten minimiert, ohne irgendeine Anwendung tz benachteiligen.

Governor legt mit Hilfe von Schätzwerten für Abfrageaufwände aus dem internen DB2-Abfragecompiler Prioritäten für die in den Anwendungen aktiven Agenten fest und setzt so seine Zeitzuweisung durch. Wenn die Option class angegeben wird, erfolgt die Zeitzuweisung nur innerhalb der durch die Regel ausgewählten Anwendungen. Wird diese Option nicht angegeben, verwendet Governor eine oder mehrere Klassen, wobei die Zeitzuweisung innerhalb jeder Klasse erfolgt.

Innerhalb einer Klasse werden die Prioritäten für Anwendungen nach folgenden Kriterien vergeben:

  • Anzahl der Sperren der Anwendung innerhalb der Klasse (Eine Anwendung, die viele andere Anwendungen durch Sperren aufhält, erhält ein hohe Priorität.)
  • Alter der Anwendung (Eine Anwendung, die schon lange auf einem System ist, erhält eine hohe Priorität.)
  • Voraussichtliche Restlaufzeit der Anwendung (Eine Anwendung, die kurz vor dem Abschluß steht, erhält eine hohe Priorität.)

Anwendungen, die in keiner Zeitzuweisung enthalten sind, werden mit der höchsten Berechtigung ausgeführt.
Anmerkung:Wenn Sie die API sqlmon (den Datenbanksystemmonitor-Schalter) zum Inaktivieren des Schalters der Anweisung verwendet haben, wird die Fähigkeit von Governor beeinträchtigt, Anwendungen auf der Grundlage der abgelaufenen Zeit der Anweisung zu überprüfen. Governor verwendet das Überwachungsprogramm zum Sammeln von Systeminformationen. Wenn Sie die Schalter in der Konfigurationsdatei des Datenbankmanagers ausschalten, wird dieses Programm für das gesamte Exemplar abgeschaltet; dadurch erhält Governor diese Informationen nicht mehr.

Eine Aktion für die Zeitzuweisung kann folgendes erreichen:

  • Anwendungen in unterschiedlichen Gruppen erhalten Zeit zugewiesen, ohne daß diese Zeit gleichmäßig unter allen Anwendungen aufgeteilt wird.

    Wenn beispielsweise 12 Anwendungen (3 kurze, 5 mittlere und 6 lange) gleichzeitig aktiv sind, haben möglicherweise alle eine schlechte Antwortzeit, weil sie die CPU teilen. Der Datenbankadministrator kann zwei Gruppen einrichten, mittlere Anwendungen und lange Anwendungen. Mit Hilfe der Prioritäten kann Governor alle kurzen Anwendungen ausführen und sicherstellen, daß höchstens drei mittlere und drei lange Anwendungen gleichzeitig aktiv sind. Zu diesem Zweck enthält die Governor-Konfigurationsdatei je eine Regel für mittlere bzw. lange Anwendungen. Das folgende Beispiel zeigt einen Abschnitt einer Governor-Konfigurationsdatei, der diesen Punkt verdeutlicht:

    desc "Mittellange Anwendungen in 1
    Zeitzuweisungsklasse zusammenfassen"
    applname medq1, medq2, medq3, medq4, medq5
    setlimit cpu -1
    action schedule class;
     
    desc "Lange Anwendungen in 1 Zeitzuweisungsklasse zusammenfassen"
    applname longq1, longq2, longq3, longq4, longq5, longq6
    setlimit cpu -1
    action schedule class;
    
  • Unterschiedliche Benutzergruppen (z. B. Abteilungen in Unternehmen) erhalten identische Kriterien für die Vergabe von Prioritäten.

    Wenn eine Gruppe eine Vielzahl von Anwendungen ausführt, kann der Administrator sicherstellen, daß andere Gruppen dennoch akzeptable Antwortzeiten für ihre Anwendungen erhalten. Sind zum Beispiel drei Abteilungen beteiligt (Finanzen, Lagerbestand und Planung), kann man alle Benutzer der Finanzabteilung in eine Gruppe legen, alle Benutzer aus dem Lager in eine andere und alle Planer in die dritte. Dann werden die Verarbeitungskapazitäten etwa gleichmäßig unter den drei Abteilungen aufgeteilt. Das folgende Beispiel zeigt einen Abschnitt einer Governor-Konfigurationsdatei, der diesen Punkt verdeutlicht:

    desc "Benutzer der
    Finanzwesenabteilung in Gruppe zusammenfassen"
    authid tom, dick, harry, mo, larry, curly
    setlimit cpu -1
    action schedule class;
     
    desc "Benutzer der Lagerabteilung in Gruppe zusammenfassen"
    authid pat, chris, jack, jill
    setlimit cpu -1
    action schedule class;
     
    desc "Benutzer der Planungsabteilung in Gruppe zusammenfassen"
    authid tara, dianne, henrietta, maureen, linda, candy
    setlimit cpu -1
    action schedule class;
    
  • Governor bindet alle Anwendungen in eine Zeitzuweisung ein.

    Wenn die Option class nicht mit der Aktion angegeben wird, erstellt Governor eigene Klassen nach der Anzahl der Anwendungen, für die diese Aktion gilt, und ordnet die Anwendungen in verschiedene Klassen ein. Dies erfolgt entsprechend dem Kostenvoranschlag des DB2-Abfragecompilers für die Abfrage, die eine Anwendung gerade ausführt. Der Administrator kann alle Anwendungen für die Zeitzuweisung (Scheduling) auswählen, indem er nicht angibt, welche Anwendungen ausgewählt sind. Die Klauseln applname und authid werden also nicht angegeben, und die Klausel setlimit verursacht keine Einschränkungen.

Anmerkung:Wenn eine Begrenzung überschritten wird und die Aktionsklausel nicht angegeben ist, verringert Governor die Priorität der in der Anwendung aktiven Agenten.

Wenn mehrere Regeln auf eine Anwendung zutreffen, wird diejenige angewendet, die dem Ende der Konfigurationsdatei am nächsten ist. Eine Ausnahme wird gemacht, wenn -1 für eine Klausel in einer Regel angegeben ist. In diesem Fall kann ein in der Klausel der nachfolgenden Regel angegebener Wert nur den zuvor in derselben Klausel angegebenen Wert überschreiben: die übrigen Klauseln in der vorhergehenden Regel sind weiterhin gültig. Beispielsweise gibt eine Regel an, daß die Priorität einer Anwendung verringert werden muß, wenn Ihre abgelaufene Zeit 1 Stunde überschritten bzw. wenn Sie mehr als 100 000 Zeilen auswählt (d. h. rowssel 100000 uowtime 3600). Eine nachfolgende Regel besagt dagegen, daß diese Anwendung keine Einschränkung bei abgelaufener Zeit hat (d. h. uowtime -1). In diesem Fall wird die Priorität der Anwendung nicht geändert, wenn sie länger als eine Stunde aktiv ist (d. h. uowtime -1 überschreibt uowtime 3600). Wählt die Anwendung jedoch mehr als 100 000 Zeilen aus, wird ihre Priorität verringert (da rowssel 100000 weiterhin gültig ist).

Abbildung 95 zeigt ein Beispiel für eine Konfigurationsdatei.

Abbildung 95. Beispielkonfigurationsdatei (Governor)

{ Einmal pro Sekunde aktiv werden, Datenbankname lautet ibmsampl
 Benutzereintragsdatensätze alle 30 Minuten }
interval 1; dbname ibmsampl; account 30;
 
desc "CPU-Einschränkungen gelten 24 Stunden pro Tag für alle"
setlimit cpu 600 rowssel 1000000 rowsread 5000000;
 
desc "Keine Arbeitseinheit darf länger als 1 Stunde dauern"
setlimit uowtime 3600 action force;
 
desc 'Verlangsamen einer Untermenge von Anwendungen'
applname jointA, jointB, jointC, quryA
setlimit cpu 3 locks 1000 rowssel 500 rowsread 5000;
 
desc "Governor soll diese 6 langen Anwendungen in 1
Prioritätenklasse einordnen"
applname longq1, longq2, longq3, longq4, longq5, longq6
setlimit cpu -1
action schedule class;
 
desc "Zeitzuweisung für alle Anwendungen von der Planungsabteilung"
authid planid1, planid2, planid3, planid4, planid5
setlimit cpu -1
action schedule;
 
desc "Einordnen (Scheduling) aller CPU-Fresser in eine Klasse zur
      Verbrauchssteuerung"
setlimit cpu 3600
action schedule class;
 
desc "Beschränken der Nutzung von db2 CLP durch neuen Benutzer novice"
authid novice
applname db2bp.exe
setlimit cpu 5 locks 100 rowssel 250;
 
desc "Während der Tagesarbeitszeit darf keine Anwendung länger als 10"
      Sekunden aktiv sein"
time 8:30 17:00 setlimit cpu 10 action force;
 
desc "Einige Benutzer, die mit Leistungsoptimierung befaßt sind, dürfen
      einige Ihrer Anwendungen in der Mittagspause durchführen"
time 12:00 13:00 authid ming, geoffrey, john, bill
applname tpcc1, tpcc2, tpcA, tpvG setlimit cpu 600 rowssel 120000 action force;
 
desc "Einige Benutzer sollten nicht eingeschränkt werden -- Datenbankadministrator
  und einige andere. Da dies die letzte Angabe in der Datei ist,
    wird zuvor Angegebenes hierdurch überschrieben. "
authid gene, hershel, janet setlimit cpu -1 locks -1 rowssel -1 uowtime -1;
 
desc "Erhöhen der Priorität einer wichtigen Anwendung, so daß sie immer
      schnell verarbeitet wird"
applname V1app setlimit cpu 1 locks 1 rowssel 1 action priority -20;


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]