Webserver Performance Tuning

Ähnliche Dokumente
Schnelle Webapplikationen. Status Quo heute...

Kurzanleitung OOVS. Reseller Interface. Allgemein

Stud.IP Performance Testing

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

Mindestanforderungen an Systemumgebung Für die Nutzung von excellenttango

Echtzeitanomalieerkennung für Internetdienste (Abschlussvortrag)

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

SAP Memory Tuning. Erfahrungsbericht Fritz Egger GmbH & Co OG. Datenbanken sind unsere Welt

Webalizer HOWTO. Stand:

Systemanforderungen für MSI-Reifen Release 7

Die Post hat eine Umfrage gemacht

Implementierung eines M2M Back-end Servers

Der Verzeichnispfad unter Windows 7 32bit zur Programmdatei Mail.exe lautet: C:\Programme\T-Online\T-Online_Software_6\ \Mail.

Anbindung des eibport an das Internet

3. Stud.IP-Entwickler-Workshop 2. Juni 2006 Workshop 3c: Stud.IP-Enterprise-Edition André Noack, Frank Elsner

Anleitung zur Nutzung des SharePort Utility

Informationen zum neuen Studmail häufige Fragen

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

SolarWinds Engineer s Toolset

Virtual Private Network

Avira Management Console Optimierung für großes Netzwerk. Kurzanleitung

Betriebssystem-basierte Virtualisierung

Websites mit Dreamweaver MX und SSH ins Internet bringen

Lizenzen auschecken. Was ist zu tun?

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Menge Leistung* Preis mtl.* Preis Setup* Dedicated Server Bronze

Stammdaten Auftragserfassung Produktionsbearbeitung Bestellwesen Cloud Computing

das neue Webserverkonzept

Systemvoraussetzungen Stand

Systemvoraussetzungen Werkstattplanungssystem WPS

RIGGTEK. Dissolution Test Systems. DissoPrep Browser-Interface

Systemanforderungen (Mai 2014)

Anwendungsprotokolle: HTTP, POP, SMTP

Professionelle Seminare im Bereich MS-Office

Einführung in PHP. (mit Aufgaben)

Session Management und Cookies

Prozesse und Logs Linux-Kurs der Unix-AG

Lehrveranstaltung Grundlagen von Datenbanken

Dieses Dokument soll dem Administrator helfen, die ENiQ-Software als Client auf dem Zielrechner zu installieren und zu konfigurieren.

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

FTP Tutorial. Das File Transfer Protocol dient dem Webmaster dazu eigene Dateien wie z.b. die geschriebene Webseite auf den Webserver zu laden.

Systemvoraussetzungen winvs office winvs advisor

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Seite Out-Of-Band-Authentifizierung (OOBA) 8.1 Einleitung

Umbenennen eines NetWorker 7.x Servers (UNIX/ Linux)

Was meinen die Leute eigentlich mit: Grexit?

Einsatzbearbeitung im Sanitätsdienst

Übertragung von ArcGIS Desktop 10.1 Concurrent Use Lizenzen auf zwei oder mehr Lizenzmanager (Juni 2013)

Citrix Provisioning Server Marcel Berquez. System Engineer

Systemvoraussetzungen Sitzungsmanager

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Quick Guide Mitglieder

Guide DynDNS und Portforwarding

ERPaaS TM. In nur drei Minuten zur individuellen Lösung und maximaler Flexibilität.

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

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

Adressen der BA Leipzig

Marketing-Leitfaden zum. Evoko Room Manager. Touch. Schedule. Meet.

Die Marvel, ein gedrosselter Supercomputer

Formular»Fragenkatalog BIM-Server«

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Leistungsanalyse unter Linux

High Performance Datenerfassung Tests am Beispiel WEGA

Transcend StoreJet Cloud

Cad-OasEs Int. GmbH. 20 Jahre UG/NX Erfahrung prägen Methodik und Leistungen. Nutzen Sie dieses Wissen!

Windows Server 2008 (R2): Anwendungsplattform

Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten.

Man liest sich: POP3/IMAP

Vorgestellt von Hans-Dieter Stubben

Step by Step Webserver unter Windows Server von Christian Bartl

Angebot zum Release-Update PROXESS 2008 auf PROXESS 5 :

Inbetriebnahme Profinet mit Engineer. Inhaltsverzeichnis. Verwendete Komponenten im Beispiel:

Internet online Update (Internet Explorer)

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

Übersicht Die Übersicht zeigt die Zusammenfassung der wichtigsten Daten.

INTERNETZUGANG UND DATENBANKEN IM ZRS

Lokale Installation von DotNetNuke 4 ohne IIS

INSTALLATION VON INSTANTRAILS 1.7

Inhaltsverzeichnis. BüroWARE Systemanforderungen ab Version Generelle Anforderungen SoftENGINE BüroWARE SQL / Pervasive. 2

iphone 4 - Einrichtung des VPN Clients (Cisco VPN Client) / Verbinden des iphones mit einem Exchange

Anleitung: Confixx auf virtuellem Server installieren

Kleines Handbuch zur Fotogalerie der Pixel AG

Systemvoraussetzungen

Systemvoraussetzungen Reifenmanagement RLV

Anleitung zur Lizenzaktualisierung. Plancal nova 7.x

Systemvoraussetzungen und Installation

Persona-SVS e-sync GUI/Client Installation

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

Leit-Bild. Elbe-Werkstätten GmbH und. PIER Service & Consulting GmbH. Mit Menschen erfolgreich

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Wie schafft man eine optimale Multiscreen-Experience?

Die WizAdvisor-Suite. 1 Auswahl nach Kundenbedürfnissen (Beratung) Internet Invest GmbH kontakt@wizadvisor.

TimeSafe Zeiterfassung. Version 2.5 (April 2009)

Bei der Installation folgen Sie den Anweisungen des Installations- Assistenten.

OUTLOOK (EXPRESS) KONFIGURATION POP3

Objektorientierte Programmierung für Anfänger am Beispiel PHP

C++ Tutorial: Timer 1

Transkript:

Webserver Performance Tuning Jan Kneschke jan.kneschke@incremental.de incremental

Intro Manche Webangebote werden erfolgreicher als ihre Schöpfer je eingeplant haben. Der Apache gibt sich die Kugel, das PHP wartet auf die Datenbank und von den 2 Gb RAM ist auch nicht mehr viel über. Webserver Performance Tuning p.1/28

Über den Referenten Dipl.-Ing. (FH) Jan Kneschke seit 2000 im PHP-Umfeld tätig (NetUSE AG) nach dem Abschluß des Studiums (Technische Informatik) Gründung der Firma incremental, die sich auf die Entwicklung von High-Performance Lösungen spezialisiert hat Webserver Performance Tuning p.2/28

Übersicht Grundszenario Problemstellen Speicher CPU Netzwerk Meßverfahren und -werkzeuge Lösungsansätze Webserver Performance Tuning p.3/28

Grundszenario Appliance Services Vorgaben geringe Kosten > 100 Kunden pro Rechner hoher Datenbank Load Realisierung eine CPU 1 Gb RAM Standard LAMP Webserver Performance Tuning p.4/28

Grundszenario Hardware + Software Hardware Intel P4 2 GHz 1GByte RAM RAID 10-40 Gbyte 100BaseT Anbindung ans Internet 34 Mbit/s Software Linux 2.4.22 Apache 1.3.x (latest) MySQL 4.1.x (latest) PHP 4.3.x (latest) Webserver Performance Tuning p.5/28

Das Problem Slashdotting aka DDOS worst case design Wer Slashdot überlebt, überlebt auch einen DDOS viele parallele User zur gleichen Zeit lange Standzeiten der Verbindung Webserver Performance Tuning p.6/28

Das Problem Die Folgen volle Ausnutzung der Bandbreite pro Connection besteht ein Apache Prozess jeder Apache Prozess benötigt im Schnitt 1 Mb RAM mod_php4 benötigt zusätzlich 3 Mb RAM pro Prozess 100 parallele User führen zu 400 Mb RAM Verbrauch, ohne daß etwas getan wurde viele parallel laufende Prozesse verbrennen unnötig CPU-Zeit (Overhead) Webserver Performance Tuning p.7/28

Speicher Mehr Speicher ist nur durch noch mehr Speicher zu ersetzen man kann nie genug Speicher haben erst wenn man nicht mehr Speicher nachrüsten kann, lohnt die Suche nach Einsparpotenzialen im Speicherbereich Prozesse unter Linux ia32 können nur einen Adressraum von 2Gb verwalten Threads laufen in einem Adressraum (MySQL) Webserver Performance Tuning p.8/28

Speicher Einsparmöglichkeiten httpd.conf deaktivieren aller unnötigen Module wie z.b. mod_proxy mod_cgi mod_negotiation mod_include PHP nur die notwendigen Extensions./configure --disable-all \ --enable-... Webserver Performance Tuning p.9/28

Speicher kein Apache Apaches Modell: Pro Connection ein Worker Prozess erzeugt das Speicherproblem single-process Webserver behandeln alle Verbindungen in einem Prozess auch 10.000 parallele Verbindungen lassen sich so mit 32 Mb RAM behandeln thttpd, lighttpd, zeus über das FastCGI Interface wird das PHP angebunden Webserver Performance Tuning p.10/28

CPU Caching Caching der Ausgabe bei einem Cache-Hit wird direkt der Cache-Inhalt ausgegeben PEAR::Cache_Lite, PEAR::Cache Webserver Performance Tuning p.11/28

CPU Caching - Beispiel if (file_exists( cache.html ) && file_mtime( cache.html ) > file_mtime( comments.txt )) { readfile( cache.html ); exit(0); } else { # generate output, # write output to cache.html, # send output to the browser } Webserver Performance Tuning p.12/28

CPU Caching - Vor- / Nachteile Nachteile Caching erfordert ein Konzept Abhängigkeiten-Modellierung kann sehr aufwendig sein Vorteile Caching erzwingt ein Konzept drastische Reduzierung der CPU-Last Webserver Performance Tuning p.13/28

Netzwerk Caching - HTTP Timestamp Last-Modified, If-Modified-Since Entity Tags ETag, If-None-Match Webserver Performance Tuning p.14/28

Netzwerk Caching - Beispiel initialer Request HEAD / HTTP/1.0 HTTP/1.0 200 OK Content-Length: 4348 Last-Modified: \ Mon, 12 May 2003 12:54:17 GMT [...] Webserver Performance Tuning p.15/28

Netzwerk Caching - Beispiel folgender Request HEAD / HTTP/1.0 If-Modified-Since: \ Mon, 12 May 2003 12:54:17 GMT HTTP/1.0 304 Not Modified Content-Length: 0 [...] Webserver Performance Tuning p.16/28

Netzwerk Output-Compression HTTP - Accept-Encoding, Content-Encoding alle Browser unterstützen Content-Encoding reduziert Traffic bis um den Faktor 10 Webserver Performance Tuning p.17/28

Netzwerk Output-Compression - Beispiel HEAD / HTTP/1.0 Accept-Encoding: deflate HTTP/1.0 200 OK Content-Length: 1288 Content-Encoding: deflate [...] Webserver Performance Tuning p.18/28

Netzwerk Output-Compression - Aktivierung Apache - mod_gzip PHP - zlib.output_compression = On Webserver Performance Tuning p.19/28

Netzwerk Output-Compression - Vor- / Nachteile Vorteile drastische Reduzierung des Traffics schnellere Beantwortung der Requests höhere Gesamtperformance Nachteile bei PHP ohne Caches merkbar höhere CPU-Last Webserver Performance Tuning p.20/28

Analyse Meßwerkzeuge Load-Generatoren ab, httpperf, http_load Netzwerk mrtg, slurm Speicher vmstat, top, cat /proc/<pid>/status CPU vmstat, top Webserver Performance Tuning p.21/28

Analyse Load-Generatoren belasten einen Server mit möglichst vielen Request bestimmen die Peak Leistung 4 Messungen sind notwendig lokal und über das äußere Netz mit geringem und mit hohem parallel Load Webserver Performance Tuning p.22/28

Analyse Apache vs. lighttpd - static $ ab -n 10000 -c <concurrent> \ http://192.168.2.10:<port>/testfile100k Requests/s Server 50 500 Apache 697.25 544.07 lighttpd 3277.61 2047.50 Peak-Durchsatz: 606 MByte/s bei -c 8 und -k Webserver Performance Tuning p.23/28

Analyse ApacheBench (ab) [...] Concurrency Level: 8 Time taken for tests: 0.177 seconds Complete requests: 1000 Failed requests: 0 Broken pipe errors: 0 Keep-Alive requests: 1000 Total transferred: 102676000 bytes Requests per second: 5649.72 [#/sec] (mean) Time per request: 1.42 [ms] (mean) Time per request: 0.18 [ms] (mean, across all... ) Transfer rate: 580090.40 [Kbytes/sec] received Webserver Performance Tuning p.24/28

Analyse Apache + mod_php4 vs. lighttpd + FastCGI - PHP $ ab -n 10000 -c <concurrent> \ http://192.168.2.10:<port>/cgi.php Server 50 500 Apache 969.93 779.42 lighttpd 1376.65 1319.96 cgi.php: <?php print 12345 ;?> Untersuchung der Startup-Time, wichtig für Cache-Hits turckmm-cache 2.4.3 aktiv Webserver Performance Tuning p.25/28

Analyse Speicherbedarf $ cat /proc/<pid>/status VmSize: 8024 kb # auch in top VmLck: 0 kb VmRSS: 3384 kb # auch in top VmData: 812 kb VmStk: 40 kb VmExe: 220 kb VmLib: 4792 kb Webserver Performance Tuning p.26/28

Analyse Speicherbedarf swapoff -a rcapache stop top 182096 KBytes used with 100 apaches 138935 KBytes used after killing apache 43160 KBytes difference 430 kbyte for each apache process Webserver Performance Tuning p.27/28

Zusammenfassung Design-Richtlinie Das Netz ist der Flaschenhals Folgen der gezeigten Ansätze Reduzierung der Netzlast Optimierung des Durchsatzes Deutliche Erhöhung der Anfragen pro Sekunde Absicherung der Erreichbarkeit bei Slashdot-Announcements Webserver Performance Tuning p.28/28