Caching-Lösungen für Plone



Ähnliche Dokumente
Plone Caching. Oberseminar Content Management Systeme Plone / Zope. Georg Giel, 09 MIM

Installationsleitfaden für Secure Private Network für Linux ClearPath- Netzwerke

Konfiguration Zentyal 3.3 Inhaltsverzeichnis

BitDefender Client Security Kurzanleitung

Benutzer und Rechte Teil 1

peer-to-peer Dateisystem Synchronisation

KURZANLEITUNG DUPLICITY MIT CLOUD OBJECT STORAGE

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Apache HTTP-Server Teil 2

Proxy Server als zentrale Kontrollinstanz. Michael Buth IT Berater. web: mail:

Uwe Baumann artiso Solutions

Nutzung der VDI Umgebung

EXCHANGE Neuerungen und Praxis

HTBVIEWER INBETRIEBNAHME

Hochschule Darmstadt - Fachbereich Informatik - Fachschaft des Fachbereiches

Anleitung zum Prüfen von WebDAV

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Administrator Handbuch

Windows Server 2008 (R2): Anwendungsplattform

Anleitung zum Prüfen von WebDAV

Step by Step Webserver unter Windows Server von Christian Bartl

STARFACE SugarCRM Connector

Apache HTTP Server Administration

Konfiguration des Novell GroupWise Connectors

Virtual Private Network

OP-LOG

Teamschool Installation/ Konvertierungsanleitung

Rechnernetze Praktikum Versuch 8: Zertifikate, Sicherheit in öffentlichen Netzen

Android Remote Desktop & WEB

Externe Authentifizierung. Externe Authentifizierung IACBOX.COM. Version Deutsch

Themen. Apache Webserver Konfiguration. Verzeichnisse für Web-Applikationen. Server Side Includes

TimeMachine. Time CGI. Version 1.5. Stand Dokument: time.odt. Berger EDV Service Tulbeckstr München

Nachvollziehbare Anwendungsinstallation mit zc.buildout

Parallels Mac Management 3.5

Forefront Threat Management Gateway (TMG) und Forefront Unified Access Gateway (UAG) Die perfekte Lösung

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

Citrix-Freigabe Sage Office Line Evolution 2012

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

Hardware- und Softwareanforderungen für die Installation von California.pro

Hardware- und Softwareanforderungen für die Installation von California.pro

Um DynDNS zu konfigurieren, muss ausschließlich folgendes Menü konfiguriert werden:

Formular»Fragenkatalog BIM-Server«

Systemanforderungen für MuseumPlus und emuseumplus

Clientkonfiguration für Hosted Exchange 2010

ISA Server 2004 Einzelner Netzwerkadapater

Informatives zur CAS genesisworld-administration

Aufgabenstellung. Kunden sollen in Zukunft Onlinezugriff auf die Feri-Datenbank erhalten. über eine direkte Einwahlmöglichkeit über das Internet

Installationsbeschreibung Flottenmanager 7.1

Installation und Inbetriebnahme von SolidWorks

Sybase Central Dokumentation Aktivierung der Monitoringfunktion

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Schwachstellenanalyse 2012

easylearn Systemvoraussetzungen

Die Zertifikatdienste auswählen und mit weiter fortfahren. Den Hinweis mit JA bestätigen.

Firewall Implementierung unter Mac OS X

Installationsanleitung für Update SC-Line

Installationsanleitung OpenVPN

Anleitung. Update/Aktualisierung EBV Einzelplatz Homepage. und Mängelkatalog

IBM SPSS Statistics Version 22. Konfigurieren von Technologie für behindertengerechte Bedienung

Apache HTTP-Server Teil 1

Verwendung des Terminalservers der MUG

Mapbender-Installation

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw,

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Anleitung zur Nutzung des SharePort Utility

- Installation. Systemvoraussetzungen für Debian/Ubuntu. conversations installieren conversations wird als TGZ-Archiv mit dem Namen

Installations Guide für YAJSW und DTLDAP

Rechnernetze Praktikum. Versuch 5: Linux embedded. Ziel

MSXFORUM - Exchange Server 2003 > Konfiguration NNTP unter Exchange 2003

Wiederherstellen der Beispieldatenbanken zum Buch Microsoft Project 2010

Gauß-IT-Zentrum Anleitung zur Installation von Windows Live Mail unter Windows 7 und Anbindung an das -System Communigate Pro

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Intrexx unter Windows Server 2008

Download unter:

Anwendungsprotokolle: HTTP, POP, SMTP

Patch Management mit

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

DocuWare unter Windows 7

Switching. Übung 2 System Management. 2.1 Szenario

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

NetScaler Integration bei Hellmann Worldwide Logistics. Benjamin Kania IS Enterprise Services Manager Hannover,

Session Management und Cookies

MS-SQL Client Installation

Installation der SAS Foundation Software auf Windows

Virtual Desktop Infrasstructure - VDI

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

ANLEITUNG NETZEWERK INSTALATION

Authentication Policy. Konfigurationsbeispiel ZyXEL ZyWALL USG-Serie. Juni 2010 / HAL

RIS Abbild mit aktuellen Updates

Ora Education GmbH. Lehrgang: Oracle Application Server 10g R3: Administration

2. Installation unter Windows 8.1 mit Internetexplorer 11.0

Allgemeine Anleitung Treiber für CP2102

Überblick zu Windows 10. Michael Kranawetter National Cyber Officer Head of Information Security Microsoft Deutschland GmbH

HOBLink VPN. HOBLink VPN & Produktionsumgebung- / Steuerung

OS IDE Webserver Integration des Webservers in die IDE Wireshark Webserver II Dynamisches Webprojekt in Eclipse

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

A1 Desktop Security Installationshilfe. Symantec Endpoint Protection 12.1 für Windows/Mac

Benutzer und Rechte Teil 1, Paketverwaltung, SSH

Uni-Firewall. Absicherung des Überganges vom Hochschulnetz zum Internet am Wingate (Helmut Celina)

Transkript:

Caching-Lösungen für Plone Oberseminar Content Management mit Plone/Zope Hochschule für Technik, Wirtschaft und Kultur Leipzig Fakultät Informatik, Mathematik und Naturwissenschaften 30. November 2010

Caching allgemein Motivation Oft benötigte Inhalte für einen schnelleren / leichteren Zugriff bereitstellen Ressourcen zur Bereitstellung von Inhalten einsparen Inhalte dezentralisieren

Caching allgemein Probleme Aktualität der Caches Effizienzoptimierung durch geschickte Verdrängungsstrategien Aufwärmen des Caches Größe Schnelligkeit des Caches

Caching auf Plone bezogen Besonderheiten Konstruktion der ausgelieferten Seiten ggf. aufwändig Möglichst seltene Generierung der auszuliefernden Seiten Von Vorteil: bausteinbasiertes Caching

Arbeitsweise von Caches Cache Hits und Cache Misses Bewertung von Anfragen als Cache Hit oder Cache Miss Cache Hit = Die Anfrage konnte aus dem Cache beantwortet werden Cache Miss = Die Anfrage konnte nicht aus dem Cache beantwortet werden Mögliches Qualitätskriterium für die Wirksamkeit eines Caches Hit Rate r h = n n h h... Anzahl Cache Hits n h +n m n m... Anzahl Cache Misses

Arbeitsweise von Caches Verdrängungsstrategien Behandlung der Frage, welcher alte Cache-Eintrag von einem neuen verdrängt werden soll FIFO (First In First Out) = Der älteste Eintrag wird verdrängt LRU (Last Recently Used) = Der Eintrag, welcher am längsten nicht gelesen wurde, wird verdrängt Random = Ein zufälliger Eintrag wird verdrängt Optimal = Es wird immer der Eintrag verdrängt, auf den danach am längsten nicht zugegriffen werden wird (setzt Kenntnis des weiteren Zugriffsverlaufs voraus) Weitere...

Produkte zur Caching-Konfiguration plone.app.caching Tools zum Verwalten des Cachingverhaltens CacheFU Plone 2.x, 3 plone.app.caching Plone 4 zahlreiche Konfigurationsmöglichkeiten zentrale Steuerung der Cache-Parameter Einbindung Caching-bezogener HTTP Header in die ausgelieferten Dokumente Wirkung auf externen Cache Einbindung von Proxies (Squid, Varnish, Pound, etc.)

Produkte zur Caching-Konfiguration Installation plone.app.caching 1 eggs = 2 plone. app. caching 3... 4 extends = buildout.conf 5 http :// good -py. appspot. com / release / plone. app. caching /1.0 b1 /bin/buildout ausführen Aktivierung in Add-Ons/Erweiterungen im Plone-Setup Neuer Unterpunkt Caching im Konfigurationsmenü

Caching-Einstellungen in Plone Konfiguration Global settings Abbildung: Global settings

Caching-Einstellungen in Plone Konfiguration Caching proxies Abbildung: Caching proxies

Caching-Einstellungen in Plone Konfiguration In-memory cache Abbildung: In-memory cache

Caching-Einstellungen in Plone Konfiguration Caching operations Abbildung: Caching operations

Weiterführende Möglichkeiten Bereinigung von in einem Proxy gespeicherten Inhalten Abbildung: Purge caching proxy

Weiterführende Möglichkeiten RAM-Cache Statistiken Abbildung: RAM cache statistics

Allgemeines Allgemeines über Varnish Caching-Proxy für 64 bit Systeme mit Linux, FreeBSD oder Solaris Arbeitet auf dem virtuellen Speicher eines Systems Nutzt systemeigene Speicherverwaltung (malloc oder Filesystem) Freie Software, lizensiert unter einer 2-Klausel BSD-Lizenz Bevorzugter HTTP Cache von Facebook 1 1 http://www.varnish-software.com/customers/facebook

Inbetriebnahme Varnish installieren und starten Installationsmöglichkeiten Über den Paketmanager des jeweiligen Systems einfach und sollte bevorzugt werden, wenn möglich Über das Buildout-System von Plone ebenfalls einfach, verstrickt die Komponenten aber unnötig Selbst kompilieren aus dem Quelltext Abhängigkeiten müssen selbst bereitgestellt werden Installation über Paketmanager und Start unter Ubuntu 10.10 1 sudo apt-get install varnish 2 sudo varnishd -f /etc/varnish/default.vcl -s malloc,1g -T 127.0.0.1:2000 -a 0.0.0.0:8080

Inbetriebnahme Varnish installieren und starten Installationsmöglichkeiten Über den Paketmanager des jeweiligen Systems einfach und sollte bevorzugt werden, wenn möglich Über das Buildout-System von Plone ebenfalls einfach, verstrickt die Komponenten aber unnötig Selbst kompilieren aus dem Quelltext Abhängigkeiten müssen selbst bereitgestellt werden Installation über Paketmanager und Start unter Ubuntu 10.10 1 sudo apt-get install varnish 2 sudo varnishd -f /etc/varnish/default.vcl -s malloc,1g -T 127.0.0.1:2000 -a 0.0.0.0:8080

Inbetriebnahme Varnish über Buildout installieren deployment.cfg 1 parts = 2... 3 varnish - build 4 varnish - instance 5... 6 [ varnish - build ] 7 recipe = zc. recipe. cmmi 8 url = ${ varnish - instance : download - url } 9 10 [ varnish - instance ] 11 recipe = plone. recipe. varnish 12 daemon = ${ buildout : parts - directory }/ varnish - build / sbin / varnishd 13 bind = 8000 14 cache - size = 1G 15 config = ${ buildout : directory }/ etc / plone. vcl

Administration Konfigurationsbeispiel (1) default.vcl 1 backend www { 2. host = " www. example. com "; 3. port = "80"; 4 } 5 6 backend images { 7. host = " images. example. com "; 8. port = "80"; 9 }

Administration Konfigurationsbeispiel (2) 11 sub vcl_ recv { default.vcl 12 if ( req. http. host ~ "^( www.)? example. com$ ") { 13 set req. http. host = " www. example. com "; 14 set req. backend = www ; 15 } elsif ( req. http. host ~ "^ images. example. com$ ") { 16 set req. backend = images ; 17 } else { 18 error 404 " Unknown virtual host "; 19 } 20 }

Administration Das textuelle Administrationsinterface varnishadm Benutzung des Administrationsinterfaces 1 root@cache :~# varnishd -f / etc / varnish / default. vcl -s malloc,1g -T 127.0.0.1:2000 -a 0.0.0.0:8080 2 storage_malloc : max size 1024 MB. 3 Using old SHMFILE 4 root@cache :~# varnishadm -T :2000 5 200 154 6 ----------------------------- 7 Varnish HTTP accelerator CLI. 8 ----------------------------- 9 purge. url.* 10 200 0 11 12 quit 13 500 22 14 Closing CLI connection

Squid Squid - ein HTTP-Cache-Proxy

Grundlagen Eckdaten OpenSource HTTP, FTP, SSL (HTTPS) Unterstützung transparentes Caching (WCCP) Loadbalancing differenzierte Rechtevergabe und Zugriffssteuerung (ACLs) Authentifizierung (LDAP, etc.) umfangreiche Protokollierung Bandbreitensteuerung (Delay Pools) für zahlreiche Plattformen verfügbar

Grundlagen Wikipedia

Grundlagen Wikipedia

Grundlagen Installation Installation über Buildout 1 [ squid - build ] 2 recipe = plone. recipe. squid : build 3 url = http :// www. squid - cache. org / Versions /v2 /2.7/ squid -2.7. STABLE9. tar.gz 4 5 [ squid - instance ] 6 recipe = plone. recipe. squid : instance 7 bind = 127.0.0.1:3128 8 backends = 127. 0. 0. 1: 8080 9 cache - size = 1000

Grundlagen Installation /bin/buildout ausführen Anlegen des Caches: /bin/squid -z cache-effective-user: nobody chown -R nobody pfad Start über /bin/squid auf Port 3128

Architekturen Squid als Reverse Cache Nutzung existierender Ressourcen Mehr Anfragen für Inhalte realisierbar Beschleunigung von Zugriffszeiten Transparent bei Nutzung auf Port 80 Inhalte sollten cache aware sein

Architekturen Konfiguration als Reverse Cache 1 # Squid Socket 2 http_ port 3128 accel defaultsite = websitename 3 4 # Squid Instanz + Cache Directory 5 pid_filename / usr / local / Plone / zinstance / var / squid. pid 6 cache_dir ufs / usr / local / Plone / zinstance / var / cache 1000 16 256 7 10 8 # Plone 9 cache_ peer webserver - ip 80 0 no - query originserver name = server_0 11 # ACL 12 acl all src 0.0.0.0/0.0.0.0 13 http_ access allow all 14 # acl our_sites 192.168.0.0/255.255.255.0 15 # http_ access allow our_ sites 16 # http_ access deny all

Architekturen Multipler Cache mit ICP Loadbalancing nutzbar Kommunikation über ICP Vorteile für Caches analog zu Client Cache-Proxy

Cacheverhalten Cacheverhalten Aktualität eines Objekts kann 2 Zustände haben aktuell = fresh nicht mehr aktuell = stale Wie errechnet sich die Aktualität? Einflussfaktoren: Last Modified (LM) Datum der Speicherung im Cache (OBJ Date) Objektalter beim Abspeicherns (LM Age = OBJ Date - LM) Haltbarkeitsfaktor (Percentage) X = OBJ Date + (LM Age*Percentage)

Cacheverhalten Cacheverhalten - HTTP-Header

Benchmarks Benchmarks - Apache Benchmark

Benchmarks Benchmarks - Apache Benchmark

Benchmarks Benchmarks - Siege Belastungstest mit Siege 2 10 min. lang randomisierte Anfragen, parallel 50 User Plone Ressourcen: ca. 100 Images, Public Folder Proxy Transaktionen Daten Rate (Trans./s) Squid 10.529 hits 247.56 MB 17.55 trans/sec Varnish 1.675 hits 40.10 MB 2.79 trans/sec - 788 hits 18.19 MB 1.31 trans/sec 2 Http-Load Tester, http://www.joedog.org/index/siege-home

Vor- und Nachteile von Varnish und Squid Varnish Vorteile schnell Nachteile leichte Installation Performance skaliert mit OS-Weiterentwicklungen Performance abhängig vom OS (keine eigene Speicherimplementierung) keine Cache-Hierarchien möglich

Vor- und Nachteile von Varnish und Squid Squid Vorteile große Community umfangreich dokumentiert flexibel einsetzbar Verbund aus benachbarten Proxys über ICP Nachteile umfangreich dokumentiert je nach Version Syntaxänderungen

Probleme Buildout führte öfters zu Problemen Produkte selten ausgereift Schwierigkeiten beim Aufbau der Testumgebung (Dummysite) Finden eines realistischen Belastungszenarios nicht trivial Konfiguration der Proxys Schwierig (Fülle an Optionen)

Danke Vielen Danke für die Aufmerksamkeit!!! Fragen?