Verwaltung und Programmierung

Net.Data-Caching

Durch Caching werden die Antwortzeiten für den Anwendungsbenutzer verbessert. Net.Data speichert Ergebnisse einer Anforderung an den Webserver lokal, bis die Informationen aktualisiert werden, damit sie rasch abgerufen werden können. In diesem Kapitel werden die Konzepte, Funktionen und Einschränkungen vom Net.Data-Caching beschrieben.

Informationen zum Caching von Webseiten

Viele Softwarekomponenten führen Caching für Webanwendungen aus. Es folgen einige Beispiele von Caching-Anwendungen:

Alle diese Komponenten führen Ihr Caching unabhängig voneinander aus, das Gesamtergebnis sind jedoch verbesserte Antwortzeiten für Benutzer. Die Webkomponenten (Browser, Proxyserver und Webserver) berücksichtigen in der Regel beim Ermitteln, wann ein zwischengespeichertes Element aktualisiert werden muss, verschiedene Optionen, wie zum Beispiel:

Informationen zum Net.Data-Caching

Net.Data stellt eine eigene Caching-Funktion für häufig abgerufene Seiten und zugehörige, durch Net.Data-Makros generierte Datenelemente bereit. Durch Bereitstellen einer Seite aus dem Net.Data-Cache wird die zur Ausführung eines Net.Data-Makros und zum Zugriff auf eine Datenbank erforderliche Zeit bei der Erstellung der Seite verringert.

Sie können einen Cache-Manager pro Server verwenden. Empfehlung: Verwenden Sie einen Cache-Manager für viele Exemplare von Net.Data und mehrere Caches pro Cache-Manager.

Abbildung 26 zeigt, dass Net.Data einen Cache-Manager zum Verwalten des Caching der HTML-Ausgabe von einem Makro verwendet. Zu dieser Ausgabe können Daten aus einer Datenbank gehören.

Abbildung 26. Net.Data-Caching

Figure dtwa1100 not displayed.

Terminologie für Net.Data-Caching

In der Net.Data-Dokumentation werden die folgenden Begriffe zum Beschreiben von Net.Data-Caching verwendet.

Cache
Eine Art von Speicher, der die Daten enthält, auf die zuletzt zugegriffen wurde. Damit wird der nachfolgende Zugriff auf die gleichen Daten beschleunigt. Im Cache wird oft eine lokale Kopie der häufig verwendeten Daten gespeichert, auf die über ein Netzwerk zugegriffen werden kann. In Net.Data ist der Cache der lokale Hauptspeicher, der von Net.Data generierte HTML-Webseiten zur Wiederverwendung durch das Net.Data-Makro enthält. Da die Seiten im Cache zwischengespeichert werden, muss Net.Data die Informationen im Cache nicht erneut generieren. Jeder Cache wird durch den Cache-Manager verwaltet, der für mehrere Caches verwendet werden kann und zudem mehrere Exemplare von Net.Data bedienen kann.

Cache-ID
Eine Zeichenfolge, die einen bestimmten Cache angibt.

Cache-Manager
Das Programm, das Caching für eine Maschine verwaltet. Es kann mehrere Caches verwalten.

Konfigurationsdatei für Cache-Manager
Die Datei, die die von Net.Data verwendeten Einstellungen zum Ermitteln der Einstellungen für Protokollieren, Ablaufverfolgung, Cache-Größe und andere Optionen enthält. Sie enthält Einstellungen für einen Cache-Manager und alle von einem bestimmten Cache-Manager verwalteten Cache-Dateien. Der Name der mit Net.Data gelieferten Datei lautet cachemgr.cnf.

Konzepte des Net.Data-Caching

Je nachdem, wie viele HTTP-Server sich auf Ihrem System befinden und ob jeder HTTP-Server (unter Verwendung separater Net.Data-Konfigurationsdateien) eine eigene Kopie von Net.Data ausführt, können alle Kopien von Net.Data einem bzw. mehreren Cache-Managern zugeordnet sein. Ein Cache-Manager kann eine Anzahl von Caches im Hauptspeicher unterstützen, wobei jeder Cache über eine Cache-Kennung, die sogenannte Cache-ID, verfügt. Abbildung 27 zeigt einen Cache-Manager, der mit mehreren Makros arbeitet und zwei Caches verwaltet.

Abbildung 27. Cache-Manager arbeitet mit mehreren Makros und Caches

Figure dtwa1110 not displayed.

Sie können eine beliebige Anzahl Elemente, sogenannte zwischengespeicherte Seiten, in einen Cache stellen. Jede zwischengespeicherte Seite weist eine eindeutige Kennung auf, zum Beispiel eine URL-Adresse (URL - Uniform Resource Locator). Eine Seite ist ein Teil einer oder eine vollständige HTML-Seite.

Empfängt Net.Data eine Anforderung nach zwischengespeicherten Daten (zum Beispiel von der integrierten Funktion DTW_CACHE_PAGE), werden die folgenden Schritte ausgeführt:

  1. Net.Data stellt die Verbindung zum Cache-Manager her.
  2. Net.Data prüft, ob sich die Daten im Cache befinden.
  3. Net.Data trennt die Verbindung zum Cache-Manager.

Der Cache-Manager speichert die HTML-Ausgabe zwischen, wenn das Makro die Verarbeitung erfolgreich abgeschlossen hat. Dadurch wird sichergestellt, dass nur erfolgreich generierte Webseiten zwischengespeichert werden. Die Daten werden erst dann zwischengespeichert, nachdem sie an den Browser gesendet wurden. Die Daten, die der Benutzer dann sieht, sind diese zwischengespeicherten Daten.

Wenn Net.Data einen Fehler feststellt oder das Makro vorzeitig beendet wird, führt der Cache-Manager folgende Funktionen aus:

Einschränkungen des Net.Data-Caching

Net.Data-Caching hat die folgenden Einschränkungen:

Sicherheit
Der Cache-Manager bietet keine Sicherheitsfunktion. Wenn z. B. ein Datenbankbenutzer ein Makro ausführt und eine Seite mit Datenbankergebnissen zwischenspeichert, kann ein anderer Datenbankbenutzer die zwischengespeicherte Seite abrufen.

Direktanforderung
Ein Direktanforderungsaufruf von Net.Data kann Net.Data-Caching nicht verwenden.

Schnittstellen des Net.Data-Caching

Net.Data stellt eine Gruppe flexibler Schnittstellen bereit, mit denen Sie das Caching für Ihre Anwendung konfigurieren und definieren können. Die verschiedenen Optionen zur Verwendung der Net.Data-Caching-Funktionen werden in Tabelle 14 erläutert. Außerdem finden Sie Informationen dazu, wo diese Funktionen beschrieben werden.

Tabelle 14. Net.Data-Cache-Schnittstellen
Schnittstelle Beschreibung Weitere Informationen
Konfigurationsoptionen für den Cache-Manager Sie können in der Zeilengruppe für den Cache-Manager in der Konfigurationsdatei für den Cache-Manager eine Anzahl von Optionen wie Protokollieren und Ablaufverfolgung angeben. Definieren des Cache-Managers
Cache-Konfigurationsoptionen In einem einzigen Exemplar des Net.Data-Cache-Managers können Sie eine Anzahl von Caches zum Aufbewahren der zwischengespeicherten Elemente definieren. Jeder Cache verfügt über eine eigene Gruppe von Kenndaten, wie Größe und Speicherposition sowie die Cache-ID. Diese Kenndaten werden in der Zeilengruppe für den Cache in der Konfigurationsdatei für den Cache-Manager definiert. Jede Zeilengruppe wird durch die Cache-ID angegeben. Definieren eines Cache
Net.Data-Initialisierungsoptionen Wenn Net.Data und der entsprechende Cache-Manager auf separaten Systemen ausgeführt werden, dann geben Sie das Cache-Manager-System und die Anschlussnummer in der Net.Data-Initialisierungsdatei an. Konfigurationsvariablen für den Cache-Manager
Integrierte Net.Data-Cache-Funktionen Sie können den Inhalt eines Net.Data-Cache mit den integrierten Net.Data-Cache-Funktionen bearbeiten. Geben Sie die Cache-ID in der entsprechenden Makrofunktion an, um den Cache mit den geeignetsten Kenndaten auszuwählen. Siehe das Kapitel zu integrierten Funktionen im Handbuch Net.Data Reference.

Planen für den Cache-Manager

Berücksichtigen Sie beim Planen der Verwendung von Net.Data-Cache-Funktionen Folgendes:

Führen Sie die folgenden Schritte aus, um Net.Data-Caching zu verwenden. Dazu müssen Sie wissen, wie Sie das Caching einsetzen wollen.

Empfehlung: Es wird dringend empfohlen, vor dem Einsatz einer wichtigen Anwendung, die Caching verwendet, Ihre Anwendung zu planen und mit Hilfe eines Prototyps zu testen.

Cache-Fehler

Der Cache-Manager speichert keine Webseiten zwischen, wenn Net.Data einen internen Fehler feststellt, durch den das Makro vor Beendigung der Verarbeitung beendet wird. Der Cache-Manager speichert keine Seiten zwischen, die unvollständig sind oder Net.Data-Fehler enthalten. Zu diesen Fehlerarten gehören Makrosyntaxfehler und SQL-Fehler.

Fehlerhafte Seiten werden in folgenden Fällen zwischengespeichert:

Cache-Kennungen

Sie müssen zwei Arten von Kennungen einplanen, wenn Sie Caching für Ihre Anwendung entwerfen.

Konfigurieren des Cache-Managers und der Net.Data-Caches

Der Cache-Manager verwaltet mindestens einen Cache in Ihrem System. Jeder dieser Caches weist den Inhalt dynamisch erstellter HTML-Seiten auf. Konfigurieren Sie den Cache-Manager und die einzelnen Caches, indem Sie die Schlüsselwortwerte in der Konfigurationsdatei für den Cache-Manager cachemgr.cnf aktualisieren.

Die Konfigurationsdatei für den Cache-Manager enthält zwei Arten von Zeilengruppen, und zwar die Zeilengruppe für den Cache-Manager und die Zeilengruppe für die Cache-Definition. In den folgenden Schritten wird beschrieben, wie Sie diese beiden Arten von Zeilengruppen für Ihre Anwendung anpassen.

Definieren des Cache-Managers

Definieren Sie die Zeilengruppe für den Cache-Manager, indem Sie Werte für die zulässigen Schlüsselwörter angeben. Alle Schlüsselwörter sind optional, d. h., Sie brauchen sie nur anzugeben, wenn Sie den Standardwert nicht übernehmen wollen.

Gehen Sie wie folgt vor, um den Cache-Manager zu definieren:

  1. Geben Sie den Namen der Protokolldatei für den Cache-Manager an. Das Protokoll zeigt die Aktivität aller Transaktionen für alle Caches an und wird zur Fehlerbehebung und Problemanalyse bereitgestellt.

    Nachrichten werden standardmäßig über die Konsole angezeigt.

    Syntax:

    log=path
    

    Dabei ist path der Pfad und Dateiname der Cache-Datei.

    Hinweis: Geben Sie eine Protokolldatei für jeden einzelnen Cache mit dem Schlüsselwort tran-log aus der Zeilengruppe für die Cache-Definition an.

  2. Geben Sie die TCP/IP-Anschlussnummer an, die vom Cache-Manager für eingehende Anforderungen verwendet wird. Diese Anschlussnummer wird nur für das Ansteuern des Cache-Managers von einer fernen Maschine aus verwendet.

    Dieser Wert muss mit der Anschlussnummer übereinstimmen, die durch die Konfigurationsvariable DTW_CACHE_PORT in der Net.Data-Initialisierungsdatei angegebenen ist. Der Standardwert wird auf folgende Art ermittelt:

    1. Der Cache-Manager überprüft den Pfad /etc/services auf den Wert, der dem Namen ibm-cachemgrd zugeordnet ist. Wenn dieser Wert gefunden wird, verwendet der Cache-Manager den Wert. Wenn er nicht gefunden wird, verwendet er die nächste Methode.
    2. Der Cache-Manager verwendet den Standardanschluss 7175.

    Syntax:

    port=port_number
    

    Dabei ist port_number eine eindeutige TCP/IP-Anschlussnummer.

  3. Geben Sie die maximale Zeitspanne in Sekunden an, die der Cache-Manager einen anstehenden Lesevorgang aktiv lassen soll. Wenn diese Dauer überschritten wird, beendet der Cache-Manager die Verbindung.

    Der Standardwert ist 30 Sekunden.

    Syntax:

    connection-timeout=seconds
    

    Dabei ist seconds die Anzahl der Sekunden, die ein anstehender Lesevorgang aktiv sein soll.

  4. Geben Sie an, ob Nachrichten protokolliert werden sollen.

    Der Standardwert ist no bzw. off.

    Syntax:

    logging=yes|on|no|off
    

    Dabei gilt Folgendes:

    yes|on
    Gibt an, dass Protokollierung erforderlich ist.

    no|off
    Gibt an, dass keine Protokollierung ausgeführt werden soll.

  5. Geben Sie an, ob Protokollumlauf verwendet werden soll.

    Der Standardwert ist no. Wenn yes angegeben wird, wird das aktuelle Protokoll geschlossen, wenn die maximale Größe erreicht wird (siehe log-size weiter unten), der Datei wird der Dateityp .old zugewiesen, und es wird ein neues Protokoll geöffnet. Es wird nur eine Generation der Protokolldatei verwaltet (vorhandene OLD-Dateien werden überschrieben).

    Syntax:

    wrap-log=yes|no
    

    Dabei gilt Folgendes:

    yes
    Gibt an, dass Protokollumlauf verwendet werden soll.

    no
    Gibt an, dass Protokollumlauf nicht verwendet werden soll.

  6. Geben Sie die maximale Größe in Byte an, bis zu der ein Protokoll anwachsen kann, wenn Protokollumlauf aktiviert ist.

    Der Standardwert ist 64000.

    Syntax:

    log-size=bytes
    

    Dabei ist bytes die Anzahl Byte der maximalen Größe.

  7. Geben Sie die Stufe der Nachrichten an, die in das Protokoll geschrieben werden sollen. Diese Werte werden aktiviert, wenn sie in die Liste trace_flag_definitions aufgenommen werden. Für sie gibt es keine Einstellungen.

    Standardmäßig werden nur die Nachrichten beim Start und Stopp des Cache-Managers protokolliert.

    Syntax:

    trace-flags=trace_flag_definitions
    

    Dabei gilt Folgendes:

    D_ALL
    Aktiviert alle Ablaufverfolgungsmarkierungen.

    D_NONE
    Inaktiviert alle Ablaufverfolgungsmarkierungen.

Beispiel: Ablaufverfolgungsmarkierung, die die Aktivierung aller Ablaufverfolgungsmarkierungen angibt:

trace-flags=D_ALL

Zeilengruppenbeispiel: Eine gültige Zeilengruppe des Konfigurationsmanagers:

cache-manager {
port = 7175
connection-timeout = 60
logging = off
log = /local/netdata/cachemgr/logs/cachemgr.log
wrap-log = yes
log-size = 32KB
} 

Definieren eines Cache

Definieren Sie die Zeilengruppe für die Cache-Definition, indem Sie Werte für die zulässigen Schlüsselwörter angeben. Die meisten Schlüsselwörter sind optional und müssen nur angegeben werden, wenn Sie den Standardwert nicht verwenden wollen.

Gehen Sie wie folgt vor, um einen Cache zu definieren:

  1. Geben Sie den Namen des Pfads und Verzeichnisses an, in dem Cache-Seiten gespeichert werden sollen. Beim Systemstart muss das Dateisystem mit diesem Verzeichnis mindestens so groß wie der Wert von fssize sein (siehe weiter unten). Ansonsten wird der Cache nicht gestartet. Dieser Wert kann als ein absoluter Pfadname oder als ein relativer Pfadname angegeben werden, der dem Pfad entspricht, in dem der Cache-Manager gestartet wurde.

    Erforderlich.

    Syntax:

    root=path_name
    

    Dabei gilt Folgendes:

    path_name
    Ist der absolute oder relative Name des Pfads und Verzeichnisses, in dem die Cache-Seiten gespeichert werden.
  2. Geben Sie an, ob der aktuelle Cache aktiv sein soll, wenn der Cache-Manager gestartet wird.

    Nicht erforderlich. Der Standardwert ist yes. Wenn no gesetzt wird, wird der Cache im Cache-Manager definiert, jedoch nicht aktiviert. Er kann später mit dem Befehl cacheadm aktiviert werden.

    Syntax:

    caching=yes|no
    

    Dabei gilt Folgendes:

    yes
    Gibt an, dass der Cache aktiv sein soll, wenn der Cache-Manager gestartet wird.

    no
    Gibt an, dass der Cache nicht aktiv sein soll, wenn der Cache-Manager gestartet wird.
  3. Geben Sie den maximalen Speicherbereich an, der im Dateisystem durch Seiten im aktuellen Cache belegt werden soll. Wenn der maximale Speicherbereich überschritten wird, löscht der Cache-Manager angefangen bei der ältesten Seite genügend Seiten, um den vom Cache belegten Gesamtspeicherbereich entsprechend zu begrenzen. Sie können das automatische Löschen von Einträgen inaktivieren, indem Sie diesen Wert erhöhen. Wenn jedoch der physische Dateisystemspeicherbereich überschritten wird, schlagen Versuche, dem Cache neue Seiten hinzuzufügen, fehl.

    Nicht erforderlich. Der Standardwert ist 0 (kein Caching auf dem Datenträger).

    Syntax:

    fssize=nnB|nnKB|nnM
    

    Dabei gilt Folgendes:

    nnB
    Ist die Anzahl Byte, zum Beispiel 5000B.

    nnKB
    Ist die Anzahl Kilobyte, zum Beispiel 640KB.

    nnMB
    Ist die Anzahl Megabyte, zum Beispiel 30MB.
  4. Geben Sie den maximalen Speicherbereich an, der von allen Seiten in diesem Cache belegt werden soll. Wenn der maximale Speicherbereich überschritten wird, löscht der Cache-Manager angefangen bei der ältesten Seite genügend Seiten, um den vom Cache belegten Gesamtspeicherbereich entsprechend zu begrenzen. Sie können das automatische Löschen von Seiten inaktivieren, indem Sie diesen Wert erhöhen. Wenn jedoch der Prozess cachemgrd zu viel Hauptspeicher in Anspruch nimmt, wird er eventuell vom Betriebssystem beendet.

    Nicht erforderlich. Der Standardwert ist 1MB.

    Syntax:

    mem-size=nnB|nnKB|nnMB
    

    Dabei gilt Folgendes:

    nnB
    Ist die Anzahl Byte, zum Beispiel 5000B.

    nnKB
    Ist die Anzahl Kilobyte, zum Beispiel 640KB.

    nnMB
    Ist die Anzahl Megabyte, zum Beispiel 30MB.
  5. Geben Sie an, wie lange eine Seite maximal im Cache gespeichert werden soll. Wenn dieser Wert überschritten wird, markiert der Cache-Manager die Seite als abgelaufen, löscht sie jedoch nicht, außer wenn die Grenzwerte für fssize (bei Zwischenspeicherung auf Platte) bzw. memsize (bei Zwischenspeicherung im Hauptspeicher) erreicht werden. Der Cache-Manager löscht als abgelaufen markierte Seiten vor allen anderen Seiten, wenn die Grenzwerte für memsize bzw. fssize erreicht werden. Sie können die Überprüfung der Gültigkeitsdauer (lifetime) mit dem Schlüsselwort check_expiration inaktivieren.

    Erforderlich: Nein. Der Standardwert ist 5 Minuten.

    Syntax:

    lifetime=time_length
    

    Dabei gilt Folgendes:

    nnS
    Ist die Anzahl Sekunden, zum Beispiel 600S.

    nnM
    Ist die Anzahl Minuten, zum Beispiel 20M.

    nnH
    Ist die Anzahl Stunden, zum Beispiel 30H.
  6. Geben Sie an, ob Cache-Seiten als abgelaufen markiert und eine Überprüfung der Gültigkeitsdauer ausgeführt werden soll.

    Nicht erforderlich. Der Standardwert ist yes mit einer Standardgültigkeitsdauer von 60 Sekunden. Dieser Wert kann auch auf eine Zeitspanne gesetzt werden, indem Sie den Wert yes angeben und eine maximale Zeitspanne für ein im Cache gespeichertes Element festlegen. Wenn no gesetzt wird, werden Cache-Seiten nie als abgelaufen markiert, und es wird keine Überprüfung der Gültigkeitsdauer ausgeführt.

    Syntax:

    check-expiration=yes|nnS|nnM|nnH|no
    

    Dabei gilt Folgendes:

    yes
    Gibt an, dass der Cache-Manager eine Überprüfung der Gültigkeitsdauer ausführt und dass Cache-Seiten als abgelaufen markiert werden.

    nnS
    Ist die Anzahl Sekunden, zum Beispiel 600S.

    nnM
    Ist die Anzahl Minuten, zum Beispiel 20M.

    nnH
    Ist die Anzahl Stunden, zum Beispiel 30H.

    no
    Gibt an, dass der Cache-Manager keine Überprüfung der Gültigkeitsdauer ausführt und dass Cache-Seiten nicht als abgelaufen markiert werden.
  7. Geben Sie den maximalen Speicherbereich an, den eine zwischengespeicherte Seite im Hauptspeicher-Cache belegen kann. Wenn eine Seite für den Hauptspeicher zu groß ist, wird der Datei-Cache überprüft. Wenn genügend Speicherbereich vorhanden ist, speichert der Cache-Manager die Cache-Seite im Datei-Cache. Wenn die Seite nicht in den Datei-Cache passt, schlägt der Caching-Versuch fehl. Wenn die Seite kleiner als der Wert für datum_memory_limit (cacheobj-memory-limit) ist, der Cache jedoch nicht über genügend Speicherbereich verfügt, werden die ältesten Cache-Seiten aus dem Hauptspeicher-Cache gelöscht, um Speicher für die neue Seite freizugeben.

    Nicht erforderlich. Der Standardwert ist 1KB.

    Syntax:

    datum-memory-limit (cacheobj-memory-limit)=nnB|nnKB|nnMB
    

    Dabei gilt Folgendes:

    nnB
    Ist die Anzahl Byte, zum Beispiel 5000B.

    nnKB
    Ist die Anzahl Kilobyte, zum Beispiel 640KB.

    nnMB
    Ist die Anzahl Megabyte, zum Beispiel 30MB.
  8. Geben Sie den maximalen Speicherbereich an, den eine zwischengespeicherte Seite im Datei-Cache belegen kann. Wenn die Seite kleiner als der Wert für datum_disk_limit ist, im Datei-Cache jedoch kein Speicherbereich frei ist, werden die ältesten Cache-Seiten aus dem Datei-Cache gelöscht, um Speicher für die neue Seite freizugeben.

    Nicht erforderlich. Der Standardwert ist 1KB.

    Syntax:

    datum-disk-limit (cacheobj-space-limit)=nnB|nnKB|nnMB
    

    Dabei gilt Folgendes:

    nnB
    Ist die Anzahl Byte, zum Beispiel 5000B.

    nnKB
    Ist die Anzahl Kilobyte, zum Beispiel 640KB.

    nnMB
    Ist die Anzahl Megabyte, zum Beispiel 30MB.
  9. Geben Sie die Zeitspanne zwischen der Erstellung von Datensätzen mit Statistikdaten an. Wenn 0 gesetzt wird, werden keine Datensätze mit Statistikdaten geschrieben.

    Nicht erforderlich. Der Standardwert ist 0 (keine Statistikdaten).

    Syntax:

    stat-interval = nnS|nnM|nnH
    

    Dabei gilt Folgendes:

    nnS
    Ist die Anzahl Sekunden, zum Beispiel 600S.

    nnM
    Ist die Anzahl Minuten, zum Beispiel 1M.

    nnH
    Ist die Anzahl Stunden, zum Beispiel 3H.
  10. Geben Sie den Namen des Pfads und der Datei an, die zum Protokollieren von Statistikdaten für den aktuellen Cache verwendet werden.

    Erforderlich, wenn der Wert für stat-interval größer als 0 ist.

    Syntax:

    stat-files=filename
    

    Dabei ist filename der Pfad und Name der Statistikprotokollierungsdatei.

  11. Geben Sie an, ob Zähler für Statistikdaten bei jedem Schreibvorgang von Statistikdaten in die Protokolldatei auf 0 zurückgesetzt werden sollen.

    Nicht erforderlich. Der Standardwert ist yes.

    Syntax:

    reset-stat-counters=yes|no
    

    Dabei gilt Folgendes:

    yes
    Setzt die Zähler für Statistikdaten zurück.

    no
    Setzt die Zähler für Statistikdaten nicht zurück.
  12. Definieren Sie den Pfad und Dateinamen zum Speichern des Transaktionsprotokolls für jeden Cache. Transaktionsprotokolldateien für den Cache unterscheiden sich von Protokolldateien des Cache-Managers, mit denen die Gesamtaktivität des Cache-Managers protokolliert wird.

    Erforderlich. Wenn dieses Schlüsselwort nicht angegeben wird, wird für den Cache kein Transaktionsprotokoll erstellt.

    Syntax:

    tran-log=filename
    

    Dabei ist filename der Pfad und Name der Transaktionsprotokolle für jeden Cache.

  13. Geben Sie an, ob die Transaktionsprotokollierung für den Cache beim ersten Start des Cache-Managers aktiviert werden soll. Dieser Parameter wird ignoriert, außer wenn über den Parameter tran-log eine gültige Transaktionsprotokolldatei angegeben wird. Sie können die Transaktionsprotokollierung bei aktivem Cache-Manager-Dämon mit dem Befehl cacheadm aktivieren, wenn in der Konfigurationsdatei für den Cache-Manager ein gültiger Wert für tran-log angegeben wurde.

    Nicht erforderlich. Der Standardwert ist no.

    Syntax:

    tran-logging=yes|on|no|off
    

    Dabei gilt Folgendes:

    yes|on
    Gibt an, dass Protokollierung erforderlich ist.

    no|off
    Gibt an, dass keine Protokollierung ausgeführt werden soll.
  14. Geben Sie an, ob Transaktionsprotokollumlauf verwendet werden soll.

    Nicht erforderlich. Der Standardwert ist yes. Wenn yes angegeben wird, wird das aktuelle Protokoll geschlossen, wenn die maximale Größe erreicht wird (siehe tran-log-size), der Datei wird der Dateityp .old zugewiesen, und es wird ein neues Protokoll geöffnet. Es wird nur eine Generation des Protokolls verwaltet (vorhandene OLD-Dateien werden überschrieben).

    Syntax:

    wrap-tran-log=yes|no
    

    Dabei gilt Folgendes:

    yes
    Gibt an, dass Protokollumlauf verwendet werden soll.

    no
    Gibt an, dass Protokollumlauf nicht verwendet werden soll.
  15. Geben Sie die maximale Größe in Byte an, bis zu der ein Transaktionsprotokoll anwachsen kann, wenn wrap-tran-log angegeben ist.

    Nicht erforderlich. Der Standardwert ist 64000.

    Syntax:

    tran-log-size=bytes
    

    Dabei ist bytes die Anzahl Byte der maximalen Größe.

Zeilengruppenbeispiel: Eine gültige Zeilengruppe einer Cache-Definition für einen Cache:

cache0
{
root = /locale/netdata/cachemgr/caches/cache0
caching = on
mem-size = 10MB
fs-size = 1MB
datum-memory-limit = 200KB
datum-disk-limit = 1MB
lifetime = 6000000
check-expiration = 999999
tran-logging = no
tran-log-size = 10000
wrap-tran-log = yes
tran-log = /ocale/netdata/cachemgr/logs/tran.log
}
 

Starten und Stoppen des Cache-Managers

In den folgenden Abschnitten wird beschrieben, wie Sie den Cache-Manager starten und stoppen können.

Starten des Cache-Managers

Der Cache-Manager-Dämon wird mit dem Befehl cachemgrd gestartet.

Syntax:

>>-cachemgrd----c--konfigurationsdatei-------------------------><
 

Parameter:

cachemgrd
Das Befehlsschlüsselwort

config_file
Gibt den Namen der Datei an, in der der Cache-Manager und die einzelnen vom Cache-Manager verwalteten Caches definiert sind. Die mit Net.Data gelieferte Konfigurationsdatei ist cachemgr.cnf.

Beispiel:

cachemgrd -c myconfig.cfg

Stoppen des Cache-Managers

Der Cache-Manager wird mit dem Befehl cacheadm gestoppt.

Syntax:

>>-cacheadm----+---------------------+---+-----------------+---->
               '-hostname--hostname--'   '-port--port_num--'
 
>----terminate-------------------------------------------------><
 

Parameter:

cacheadm
Das Befehlsschlüsselwort

hostname
Gibt den Namen der Maschine an, auf der der Cache aktiv ist, wenn er sich von der Maschine unterscheidet, auf der der Befehl cacheadm abgesetzt wird.

port_num
Gibt die Cache-Anschlussnummer an, wenn sich die Nummer vom Standardwert (7175) unterscheidet.

terminate
Gibt an, dass der Cache-Manager gestoppt werden soll.

Beispiel:

cacheadm hostname host1 port 7178 terminate 

Caching von Webseiten

Sie können eine Webseite mit der integrierten Funktion DTW_CACHE_PAGE zwischenspeichern. Wenn Net.Data die Funktion DTW_CACHE_PAGE im Makro erkennt, steuert es den Cache-Manager an und fängt mit dem Sichern der HTML-Ausgabe für das Makro im Hauptspeicher an. Nach der erfolgreichen Verarbeitung eines Makros durch Net.Data wird die HTML-Ausgabe an den Browser gesendet, und der Cache-Manager speichert die Ausgabe in einer Transaktion, wie in Abbildung 28 gezeigt.

Abbildung 28. Funktion DTW_CACHE_PAGE leitet Caching ein

Figure dtwa1109 not displayed.

Caching einer Seite

Geben Sie an, dass von Net.Data generierte Seiten mit der integrierten Net.Data-Funktion DTW_CACHE_PAGE() in den Cache geschrieben werden sollen.

Die Funktion DTW_CACHE_PAGE() speichert die gesamte Ausgabe des Makros nach der Funktionsanweisung zwischen, nachdem sie ermittelt hat, dass die Seite nicht bereits im Cache vorhanden oder abgelaufen ist. Wenn die Seite nicht im Cache vorhanden oder älter als die angegebene Gültigkeitsdauer ist, sendet Net.Data die Ausgabe an den Browser zurück, generiert neue Ausgabeseiten von der Makroausführung und speichert die Seite im Cache.

Wenn der Cache-Manager die zwischengespeicherte Seite findet und sie weiterhin gültig ist, zeigt er den Cache-Inhalt an, und Net.Data verlässt das Makro. Durch dieses Verhalten wird sichergestellt, dass keine unnötige Verarbeitung ausgeführt wird, nachdem die Webseite aus dem Cache abgerufen wurde.

Hinweis zur Leistung: Stellen Sie DTW_CACHE_PAGE() als die erste bzw. eine der ersten Anweisungen in das Makro, um den Aufwand bei der Ausführung des Makros zu minimieren.

Gehen Sie wie folgt vor, um eine Seite zwischenzuspeichern:

  1. Fügen Sie im HTML- oder XML-Block eines Makros vor der HTML-Codierung die folgende Funktionsanweisung ein:
    @DTW_CACHE_PAGE("cache_id", cache_page_id, "age", status)
    

    Geben Sie mit dieser Funktion an, dass Net.Data die gesamte HTML-Ausgabe vom Makro nach dieser Anweisung zwischenspeichern soll. Platzieren Sie diese Anweisung an den Anfang im Makro, wenn Sie die gesamte HTML-Ausgabe zwischenspeichern wollen.

    Parameter:

    cache_id
    Eine Zeichenfolge, die den Cache angibt, in dem die Seite gespeichert wird. Sie können Cache-IDs Makros bzw. Makrogruppen zuordnen.

    cache_page_id
    Eine Zeichenfolge mit einer Kennung, mit der die zwischengespeicherte Seite in einer nachfolgenden Cache-Anforderung über @DTW_CACHE_PAGE lokalisiert wird, zum Beispiel die URL-Adresse der Seite.

    age
    Eine Zeichenfolgevariable mit einer Zeitspanne in Sekunden, die angibt, wann eine Seite als abgelaufen betrachtet wird. Wenn sich die angeforderte Seite länger im Cache befindet als der Wert von age angibt, führt Net.Data das Makro aus, generiert die Seite erneut und speichert die generierte Seite zwischen, wodurch die abgelaufene Seite ersetzt wird. Wenn sich die angeforderte Seite kürzer oder genau so lang im Cache befindet wie der Wert von age angibt, ruft Net.Data die Seite aus dem Cache ab und sendet sie an den Browser. In diesem Fall beendet Net.Data die Makroausführung sofort.

    status
    Eine von Net.Data zurückgegebene Zeichenfolgevariable, die angibt, ob die Seite erfolgreich zwischengespeichert wurde oder nicht.

Beispiel:

%HTML(cache_example) {
 %IF (customer == "Joe Smith")
 @DTW_CACHE_PAGE("mymacro.dtw", "http://www.mypage.org", "-1", status)
%ENDIF
 ...
<html>
 
<head>
 <:title>This is the page title</title>
</head>
 
<body>
 <center>
 <h3>This is the Main Heading</h3>
 <p>It is $(time). Have a nice day!
</body>
 
</html>
 %}

Erweitertes Caching: Dynamisches Ermitteln der Notwendigkeit zur Zwischenspeicherung

Die Funktion DTW_CACHE_PAGE() leitet Caching von ihrer Position im Makro an ein. In der Regel stellen Sie die Funktion an den Anfang des Makros, um die Leistung zu steigern und sicherzustellen, dass die gesamte HTML-Ausgabe zwischengespeichert wird.

Bei Anwendungen mit erweitertem Caching können Sie die Funktion DTW_CACHE_PAGE() in die HTML-Ausgabeabschnitte stellen, wenn Sie festlegen müssen, dass das Zwischenspeichern zu einem bestimmten Zeitpunkt während der Verarbeitung erfolgen soll anstatt am Anfang des Makros. Diese Entscheidung kann beispielsweise davon abhängig sein, wie viele Zeilen von einer Abfrage oder von einem Funktionsaufruf zurückgegeben werden.

Beispiel: Platzieren der Funktion im HTML- oder XML-Block, weil die Entscheidung, Daten zwischenzuspeichern, von der erwarteten Größe der HTML-Ausgabe abhängt

% DEFINE { ...%}
 
...
 
%FUNCTION(DTW_SQL) count_rows(){
  select count(*) from customer
   %REPORT{
   %ROW{
  @DTW_ASSIGN(ALL_ROWS, V1)
%}
%}
%}
 
%FUNCTION(DTW_SQL) all_customers(){
 select * from customer
%}
 
%HTML (OUTPUT) {
<html>
<head>
 <title>This is the customer list
</head>
<body>
 
@count_rows()
 
 %IF (ALL_ROWS > "100")
 @DTW_CACHE_PAGE("mymacro.dtw", "http://www.mypage.org", "-1", status)
%ENDIF
 
@all_customers()
 
</body>
</html>
%}

In diesem Beispiel wird die Seite basierend auf der erwarteten Größe der HTML-Ausgabe zwischengespeichert bzw. abgerufen. HTML-Ausgabeseiten werden nur dann zwischengespeichert, wenn die Datenbanktabelle mehr als 100 Zeilen enthält. Net.Data sendet den Text im OUTPUT-Block, also This is the customer list, nach der Ausführung des Makros immer an den Browser. Der Text wird nie zwischengespeichert. Die Zeilen nach dem Funktionsaufruf @count_rows() werden zwischengespeichert bzw. abgerufen, wenn die Bedingungen des IF-Blocks erfüllt sind. Beide Abschnitte zusammen bilden eine vollständige Net.Data-Ausgabeseite.

Der Befehl CACHEADM

Verwenden Sie den Befehl CACHEADM für die folgenden Aufgaben:

Alle Parameter können auf die kleinste eindeutige Zeichengruppe gekürzt werden.

Syntax:

>>-cacheadm----+---------------------+---+-----------------+---->
               '-hostname--hostname--'   '-port--port_num--'
 
>-----+-activate-------------------------------------+---------->
      +-deactivate-----------------------------------+
      +-flags--flags---------------------------------+
      +-flush----------------------------------------+
      +-query--+-all-------+-------------------------+
      |        '-url--url--'                         |
      +-purge----url--url----------------------------+
      +-statistics--+-off--------------------------+-+
      |             '-on--+----------------------+-' |
      |                   '-interval--interval---'   |
      '-terminate------------------------------------'
 
>-----+--------------------+-----------------------------------><
      '-cacheid--cache_id--'
 

Parameter:

activate
Aktiviert einen angegebenen Cache. Wenn der Cache bereits aktiv ist, führt der Cache-Manager keine Aktionen aus.

cache_id
Eine Zeichenfolgevariable, die den Cache angibt, in dem die Seite gespeichert ist, zum Beispiel: cache1.

deactivate
Inaktiviert einen angegebenen Cache. Wenn der Cache bereits inaktiv ist, führt der Cache-Manager keine Aktionen aus. Alle anstehenden Operationen werden beendet, und es werden keine neuen akzeptiert. Wenn die letzte Operation beendet ist, markiert der Cache-Manager den Cache als inaktiv.

flags
Gibt an, ob die aufgelisteten Markierungen ein- oder ausgeschaltet werden sollen.

D_ALL
Schaltet alle Ablaufverfolgungsmarkierungen ein.

D_NONE
Schaltet alle Ablaufverfolgungsmarkierungen aus.

flush
Leert einen Cache, der durch den Parameter cache_id angegeben wird, der für diesen Parameter erforderlich ist. Dieser Parameter löscht bedingungslos alle Elemente aus dem angegebenen Cache.

hostname
Gibt den Namen der Maschine an, auf der der Cache aktiv ist, wenn er sich von der Maschine unterscheidet, auf der der Befehl cacheadm abgesetzt wird. Zum Beispiel: myhost.

port_num
Gibt die Cache-Anschlussnummer an, wenn sich die Nummer vom Standardwert (7175) unterscheidet. Diese Nummer muss im System eindeutig sein.

purge
Gibt eine bestimmte, aus dem Cache zu löschende Seite an. Wenn url angegeben wird, löscht der Cache-Manager die Seite mit einem mit url übereinstimmenden Schlüssel. Wenn eine Abhängigkeit definiert ist, löscht der Cache-Manager alle Elemente mit der zugehörigen Abhängigkeit und schreibt ihre Schlüssel in den standardmäßig verwendeten Ausgabedatenstrom stdout.

query
Gibt je nach den angegebenen Parametern die folgenden Caching-Informationen zurück:

statistics
Aktiviert bzw. inaktiviert die Protokollierung für die Sammlung von Statistikdaten für einen bestimmten Cache und erfordert den Parameter cache_id. Wenn mit dem auf on gesetzten Parameter statistics ein Intervall angegeben wird, setzt Net.Data das Intervall zwischen Aktualisierungen erstmals oder erneut auf die angegebene Anzahl Sekunden.

terminate
Gibt an, dass der Cache-Manager gestoppt werden soll.

tranlogging
Aktiviert bzw. inaktiviert die Transaktionsprotokollierung für einen bestimmten Cache und erfordert den Parameter cache_id. Dieser Parameter wird nur dann wirksam, wenn in der Konfigurationsdatei für den Cache-Manager über den Parameter tran-log ein gültiges Transaktionsprotokoll für den Cache angegeben wird.

url
Die URL-Adresse (URL - Universal Relative Location), die die Speicherposition der Datei auf dem Webserver angibt, zum Beispiel: http://www.ibm.com/mydir/page1.

Das Cache-Protokoll

Mehrere Arten von Statistikdaten für interne Operationen werden aufbewahrt und optional in das Cache-Protokoll geschrieben. Sie können angeben, dass ein separates Protokoll für jeden Cache verwaltet werden soll oder dass alle Statistikdaten in das gleiche Protokoll geschrieben werden. In diesem Abschnitt werden die folgenden Themen zum Cache-Protokoll erläutert:

Konfigurieren des Protokolls

Sie müssen die Konfigurationsdatei für den Cache-Manager konfigurieren, um Statistikdaten zu protokollieren.

Gehen Sie wie folgt vor, um das Protokoll zu konfigurieren:

Geben Sie die Schlüsselwörter stat-files und stat-interval in der Cache-Zeilengruppe der Konfigurationsdatei für den Cache-Manager an.

Sie können die Einstellungen für die Statistikdaten ändern, ohne den Cache-Manager stoppen, rekonfigurieren und erneut starten zu müssen.

Gehen Sie wie folgt vor, um die Einstellungen zum Sammeln von Statistikdaten zu ändern:

Geben Sie den Befehl cacheadm statistics an. Beachten Sie jedoch, dass über den Befehl cacheadm statistics vorgenommene Änderungen nicht gesichert werden, wenn der Cache-Manager erneut gestartet wird.

Format des Cache-Protokolls

Das Statistikdatenprotokoll ist eine unverschlüsselte ASCII-Datei, die von Tabellenkalkulations- und Datenbankprogrammen verarbeitet und importiert werden kann. Es werden drei Arten von Datensätzen geschrieben:


[ Seitenanfang | Vorherige Seite | Nächste Seite ]