Mailinglisten-Archive |
Hi Kar-Wing, Kar-Wing Lau schrieb: > Es geht darum dynamische Seiten schnell darzustellen. Klar, das was ich > gefunden hatte, ist dass jeder bestätigen konnte, dass der Apache durch > Laden von Dateien von der Platte immer schneller ist, als das Laden von > einer Datenbank. Das gilt nicht nur für Texte, sondern auch für CSS, > Grafiken, usw. Ich habe also die Wahl fast statische Seiten über PHP zu > erstellen (ein Teil davon unvermeidbar dynamisch mit DB-Zugriff) > und auf der > Platte abzuspeichern, oder alle dynamischen Informationen schön > vollständig > in eine DB reinzuhauen und dann daraus immer zu lesen. Hmm. Bekommt ein Nutzer immer die gleiche Datei (z.B. als Stylesheet oder Grafik), kann man sie aus der Datenbank dynamisch generieren und über einen Cache-Control- Header "private" im Cache des Browsers speichern lassen (das sollten alle HTTP/1.1-Browser tun) . Das sollte einen Teil der Requests sparen. > Bei Annahme, dass alle Daten bei beiden Varianten im Hauptspeicher sind > (kein Festplattenzugriff) und zu einer Oracle/MySQL-DB eine persistente > Verbindung aufgebaut wurde, wieviel schneller würde der Apache noch > gegenüber den Datenbank-Varianten sein? Die Datenbank wird nur > durch normale > select-Requests beansprucht. Hmm, diese Frage kann man nur durch Messung (z.B. über den ApacheBench ab oder durch kommerzielle Software) wirklich beantworten. Soweit ich es verstanden habe, poolt pconnect die SQL-Verbindungen im Apache-Modul, dh. es werden Verbindungen mit der gleichen Host/DB/Nutzer-Kombination vom gleichen Httpd wiederverwendet. Hat man viele verschiedene Tripel dieser Art, lohnt sich ein pconnect nicht, sondern stört sogar den Betrieb. Benutzt man nur eine einzige Datenbank/Nutzer, sollten die Verbindungen weitgehend wiederbenutzt werden. Soweit ich es verstanden habe, läßt sich mit dem Tweaken von Linux/Solaris, Apache und MySQL erhebliches erreichen . Ein paar Links aus den Bookmarks dazu : Linux: Afaik war einer der Gründe für das überraschende Microsoft-Resultat der Mindcraft-Studie ein fehlendes Tunen des Dateisystemcaches, das 20-30 % Performancezuwachs gebracht hat. Redhat stellt schöne Informationen dafür zur Verfügung: http://people.redhat.com/alikins/system_tuning.html Apache: "Webserver verstehen und tunen" von Kristian Köhntopp http://www.koehntopp.de/kris/artikel/webtune/ Silicon Graphics stellt einige High-Performance- Patches für den Apache zur Verfügung: http://oss.sgi.com/projects/apache/ "Apache Performance Notes" http://www.apache.org/docs/misc/perf-tuning.html MySQL: "Getting maximum performance from MySQL" http://www.mysql.com/documentation/mysql/bychapter/manual_Performance.html Mehr: Mit VTad lassen sich Performanceprobleme im laufenden Betrieb analysieren . http://www.blakeley.com/resources/vtad/vtad-pod.html Ich denke, ihr werdet um Messungen nicht wirklich herumkommen, wenn ihr eine zuverlässige Antwort haben wollt. Aber vielleicht helfen die Links ja auch schon ein bischen weiter :-) . Viele Grüße, johann
php::bar PHP Wiki - Listenarchive