Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

wieviel speicher verbraucht ein php skript?

49 views
Skip to first unread message

Georg Renz

unread,
Oct 26, 2002, 9:12:19 AM10/26/02
to
hallo leute,

obwohl auf einem unserer server nur php skripte und html pages und so
laufen, also keine db, ist dieser sehr überlastet. ich vermute, dass dies an
den vielen aufrufen von php skripten liegt, und mit dem speicher, den jedes
php skript beim aufrufen verbraucht, zusammen hängt. unsere seite ist sehr
stark frequentiert.

nun wollte ich einmal nachfragen, wieviel speicher ein php skript pro aufruf
verbraucht, und ob es da möglichkeiten in php selber gibt? also z.b. eine
andere konfiguration von php oder so... oder habt ihr eventuell noch andere
ideen?

danke,
gruß georg


Julian Jöris

unread,
Oct 26, 2002, 9:47:05 AM10/26/02
to
Hallo Georg,

> z.b. eine andere konfiguration von php oder so... oder habt ihr eventuell
> noch andere ideen?

Siehe php.ini Stichwort "memory_limit"

http://www.php.net/manual/de/configuration.php#ini.memory-limit

HTH

Julian

Georg Renz

unread,
Oct 26, 2002, 10:15:32 AM10/26/02
to
"Julian Jöris" <joe...@xenicon.com> schrieb im Newsbeitrag
news:ape6da$ov96$1...@ID-72860.news.dfncis.de...

> Siehe php.ini Stichwort "memory_limit"
>
> http://www.php.net/manual/de/configuration.php#ini.memory-limit
>
> HTH
>
> Julian

hey,

du hast mich falsch verstanden. ich habe nur "hello world" skripte, die aber
zigtausend mal aufgerufen werden. ich meine sozusagen den "grundverbrauch"
an speicher eines php skriptes. sozusagen, den speicher, den der php
interpreter braucht.

danke für eure hilfe,
gruß georg


Joerg Behrens

unread,
Oct 26, 2002, 10:30:07 AM10/26/02
to
"Georg Renz" <ge...@net2daymedia.de> schrieb im Newsbeitrag
news:ape44o$uqe$06$1...@news.t-online.com...

Wenn php als Modul laeuft und es mitt memory_limit compiliert wurde steht
einem eine Apache Log Var zur verfuegung welche in das access.log den
speicherverbrauch des php scriptes schreibt.
LogFormat "%h %{mod_php_memory_usage}n .... "

Performant wird das ganze nur wenn Apache/Mod_php anf dem System compiliert
wurden mit entsprechenden optimierten Compilern und den richtigen
Parametern. Nicht benoetigte Module und Extensions weggelassen werden. Der
Einsatz von Caches kann viel bringen wie ZEND und PHPaccelerator zeigen.

Gruss
Joerg Behrens

--
TakeNet GmbH Mobil: 0171/60 57 963
D-97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025


Matthias Becker

unread,
Oct 26, 2002, 10:36:37 AM10/26/02
to
Hallo Georg,

das ist natürlich ein ziemlich breites Spektrum, dass Du da ansprichst.

Besonders wichtig für die Performance des Webservers ist auf jedenfall der
Arbeitsspeicher, die Geschwindigkeit der Fesplatten und der Netzwerkkarte.
Der Ausbau des RAM sollte bei Erweiterungen des Servers im Vordergrund
stehen. Wieviel Arbeitsspeicher Deine PHP belegen hängt natürlich von Deiner
jeweiligen PHP-Seite ab.

Bevor man aber gleich hochrüstet sollte man meine Meinung nach erstmal die
anderen Engpässe ausschalten (spart zudem noch Geld :) )

Bei PHP richtet sich die Arbeitsgeschwindigkeit danach, wie PHP auf Deinem
Webserver installiert wurde. Es gibt nämlich 2 verschiedene Möglichkeiten
PHP zu installieren. PHP kann entweder als CGI-Programm oder als Modul für
den Apache-Webserver installiert werdem. Als CGI-Programm arbeitet PHP mit
jedem Webserver zusammen (grosser Performance-Nachteil: Bei jeder Anfrage,
die der Webserver als Aufruf eines PHP-Skriptes erkennt, startet dieser PHP
als neuen Prozess. Nachdem PHP geladen ist, kann die angeforderte Seite
interpretiert und ausgeführt werden. Anschliessend wird PHP wieder beendet,
d.h, der Webserver muss den Prozess, in dem PHP gelaufen ist, ordnungsgemäß
abschliessen). Für den Apache Webserver steht PHP als Modulversion zur
Verfügung, mit der PHP-Skripte noch effizienter ausgeführt werden können
(Vorteil: Bei dieser Variante wird PHP als Unterprogramm in den Apache
Webserver *dauerhaft* integriert. PHP wird somit zum Bestandteil des Apache
und ist somit ohne weitere Initialisierung ständig bereit, Skripte und
Anforderungen zu interpretieren).

Um rauszukriegen, wie PHP auf Deinem Rechner installiert ist (CGI oder
Modul) einfach folgendes Skript erstellen:

<?php
phpinfo();
?>

Speicher das Skript ab und lad es als test.php auf den Server hoch und ruf
es im Browser auf http://deinserver.de/test.php

Wenn alles geklappt hat, zeigt Dein Browser eine umfangreiche Seite an, die
Einzelheiten Deiner PHP- und Apache Webserverinstallation ausgibt. Unter Pun
kt Server API siehst Du dann, ob PHP als CGI oder als Modul läuft.

Unbekannter ist die Möglichkeit, Webseiten komprimiert auszuliefern. HTML
eignet sich bestens zur Kompression, da es aus reinem Text besteht und viele
Elemente mehrfach in einer Datei vorkommen. Auf 25 Prozent ihrer
Originalgröße kann eine Datei schrumpfen. Wenn Deine Seite hoch frequentiert
wird, spart das eine Menge Transfervolumen. Die benutzten Algorithmen Gzip
und Deflate sind Teile von HTTP 1.1, die vom Server unterstützten findest Du
in den Umgebungsvariablen (HTTP_ACCEPT_ENCODING=gzip, deflate) und im
Request-Header des Clients. Der grosse Vorteil: Der Surfer muss keine
besonderen Einstellungen am Browser vornehmen, alle HTTP-1.1-kompatiblen
Browser (Internet Explorer und Netscape ab Version 4 und Opera 5 und
Mozilla) beherrschen die Dekompression. Bei Anfragen von Browsern ohne HTTP
1.1 schickt der Server die unkomprimierte Version.

Ausserdem ist eine Grundvoraussetzung für hohe Geschwindigkeiten sauber
programmierte Webseiten.

Zum optimieren von Webseiten durch Programme, die unnötige Tags aus HTML-
oder PHP-Seiten gibt es mehrere gute Programme. Guck mal bei:
www.fantastic-bits.de oder z.b. www.bytereducer.com (mach auf unbedingt
Backups von den entsprechenden Seiten ;) )

Gruss aus München

Matthias


0 new messages