phpbar.de logo

Mailinglisten-Archive

[php] Daten im Hauptspeicher, File oder DB schneller?

[php] Daten im Hauptspeicher, File oder DB schneller?

Johann-Peter Hartmann hartmann_(at)_freecharts.de
Mon, 30 Oct 2000 18:44:10 +0100


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