Apache-Server-Cache
Apache-Server-Cache-Funktionsprinzip (empfohlenes Lernen :Apache-Server )
Das Obige ist ein einfaches Flussdiagramm:
Benutzer 1 besucht Seite A , analysiert der Server Seite A und gibt sie an Benutzer 1 zurück. Gleichzeitig führt er eine bestimmte Zuordnung im Serverspeicher durch und speichert Seite A auf der Festplatte.
Benutzer 2 greift auf Seite A zu und die Der Server findet den entsprechenden Seitencache direkt anhand der Zuordnung im Speicher und gibt ihn direkt an Benutzer 2 zurück, wodurch das wiederholte Parsen derselben Seite durch den Server reduziert wird.
Der Unterschied zwischen Server-Cache und Browser-Cache:
Der Server-Cache speichert Seiten auf der Festplatte des Servers zwischen, während der Browser-Cache Seiten für den Benutzer in Ihrem eigenen Cache zwischenspeichert Computer.
Aktivieren Sie das Modul mod_file_cache, um statische Dateien zwischenzuspeichern.
Der Vorgang des Öffnens einer Datei selbst ist eine Ursache für Verzögerungen, insbesondere das Öffnen von Dateien in Netzwerkdateisystemen.
Apache kann diese Verzögerung vermeiden, indem es einen Puffer mit Dateideskriptoren für häufig verwendete Dateien verwaltet. Selten geänderte Dateien, die häufig angefordert werden, werden zwischengespeichert, um die Serverlast zu reduzieren.
mod_file_cache bietet zwei Techniken zum Zwischenspeichern häufig angeforderter statischer Dateien.
CacheFile existiert in Apache. Die grundlegendste Puffermethode ist die von mod_file_cache implementierte Datei-Handle-Pufferung. Anstatt den Dateiinhalt selbst zwischenzuspeichern, verwaltet dieser Puffer eine Tabelle offener Dateideskriptoren, die Dateihandles für Dateien enthalten, die mithilfe der CacheFile-Direktive in der Konfigurationsdatei angegeben wurden. Die
CacheFile-Direktive weist Apache an, beim Start eine Datei zu öffnen und das Dateihandle für alle nachfolgenden Zugriffe auf die Datei wiederzuverwenden.
//Example CacheFile/usr/local/apache2/htdocs/index.html
Wenn Sie diese Methode zum Zwischenspeichern einer großen Anzahl von Dateihandles verwenden möchten, müssen Sie sicherstellen, dass die Das Betriebssystem speichert nicht viele Dateihandles, die gleichzeitig geöffnet werden. Die Beschränkung der Dateianzahl ist ausreichend.
Obwohl die Verwendung von CacheFile nicht dazu führt, dass der Inhalt der Datei zwischengespeichert wird, werden alle Änderungen an der Datei nicht wirksam, während Apache ausgeführt wird. Der Inhalt der für die Bereitstellung verwendeten Dateien bleibt seit dem Start von Apache unverändert. Wenn die Datei gelöscht wird, während Apache ausgeführt wird,
aktivieren Sie das Modul mod_cache, um dynamische Dateien zwischenzuspeichern
mod_cache verfügt über zwei Speicherverwaltungsmodule:
mod_disk_cache, ein festplattenbasiertes Speicherverwaltungsmodul.
mod_mem_cache, ein speicherbasiertes Speicherverwaltungsmodul.
mod_mem_cache kann für zwei verschiedene Betriebsmodi konfiguriert werden: ① offene Dateideskriptoren zwischenspeichern; ② Objekte auf dem Heap zwischenspeichern.
mod_mem_cache kann sowohl zum Zwischenspeichern lokal generierter Inhalte als auch zum Zwischenspeichern der vom Backend-Server ausgegebenen Inhalte für mod_proxy im Reverse-Proxy-Modus verwendet werden (siehe ProxyPass).
mod_mem_cache: Ein speicherbasierter Cache, der Inhalte direkt aus dem Systemspeicher bereitstellt, ist normalerweise der schnellste Weg, Inhalte bereitzustellen. Das Lesen von Dateien von einem Festplattencontroller oder, schlimmer noch, von einem Remote-Netzwerk ist um Größenordnungen langsamer.
Festplattencontroller erfordern normalerweise physische Aktionen, der Zugriff auf das Netzwerk ist durch die Netzwerkbandbreite begrenzt und der Zugriff auf den Speicher dauert normalerweise nur wenige Nanosekunden. Speicher ist möglicherweise der teuerste verfügbare Speicher pro Byte, und es ist wichtig sicherzustellen, dass er sein volles Potenzial ausschöpft.
Das Zwischenspeichern von Dateien im Speicher führt zu einer Reduzierung des verfügbaren Systemspeichers. Wie wir sehen werden, stellt dies kein großes Problem dar, wenn Speicherpuffer für das Betriebssystem vorhanden sind.
Aber bei der Verwendung des Apache-eigenen Speicherpuffers ist darauf zu achten, dass nicht zu viel Speicher für den Puffer allokiert wird. Andernfalls verwendet das Betriebssystem Swap (virtuellen Speicher/Swap-Bereich), was zu einem starken Leistungsabfall führen kann. Das Betriebssystem speichert fast alle modernen Vorgänge im Cache
Der Inhaltscache des Apache-Servers
Seit Apache 2.2 werden offiziell zwei Caching-Module verwendet: mod_cache und mod_file_cache. Diese Puffersysteme bieten eine leistungsstarke Möglichkeit, die HTTP-Verarbeitung auf Ursprungswebservern und Proxyservern zu beschleunigen.
Offizielles Handbuch erklärt den Unterschied zwischen mod_cache und mod_file_cache: Die Implementierung des mod_cache-Cache basiert auf zwei Modulen, mod_mem_cache und mod_disk_cache, die eine intelligente HTTP-Pufferung bereitstellen.
Der Inhalt selbst wird im Puffer gespeichert, und der Zweck von mod_cache besteht darin, verschiedene HTTP-Header und Optionen zu verwalten, die die Inhaltspufferungsfunktionen steuern. Es kann sowohl lokale Inhalte als auch Proxy-Inhalte verarbeiten.
mod_cache ist so konzipiert, dass es sowohl auf einfache als auch auf komplexe Cache-Konfigurationen für die Verarbeitung von Proxy-Inhalten, dynamischen lokalen Inhalten und lokalen Dateien abzielt, die sich im Laufe der Zeit ändern und deren Zugriff beschleunigt werden muss.
Lesen Sie, wie Sie das mod_cache-Modul aktivieren. mod_file_cache implementiert eine einfachere, aber in einigen Fällen effizientere Form des Cachings, die die Wartungskomplexität vermeidet, die erforderlich ist, um proaktiv URL-Caching-Funktionen sicherzustellen. mod_file_cache erledigt dies durch die Bereitstellung von Dateihandles und Speicherzuordnungen, um einen Dateipuffer aufrechtzuerhalten seit dem letzten Start von Apache.
Das obige ist der detaillierte Inhalt vonWas sind die Cache-Module des Apache-Servers?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!