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.
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.
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.
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.
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:
Anwendungsnamen in der Governor-Konfigurationsdatei werden auf 20 Zeichen abgeschnitten, damit sie mit ihrer internen Darstellung übereinstimmen.
Anmerkung: | Diese Option ist in Windows NT- und OS/2-Umgebungen nicht verfügbar. |
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. |
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. |
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. |
Dieser Parameter ist unter folgenden Voraussetzungen wirksam:
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:
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:
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;
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;
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;