phpbar.de logo

Mailinglisten-Archive

[php] Hilfe bei Apache/Linux

[php] Hilfe bei Apache/Linux

Jens Benecke php_(at)_jensbenecke.de
Mon, 16 Oct 2000 18:47:06 +0200


On Mon, Oct 16, 2000 at 06:18:47PM +0200, Werner Stuerenburg wrote:
 
> Ich wollte den Bedarf mit KKs Formel berechnen (aus
> http://www.koehntopp.de/kris/kris/artikel/webtune/):
> 
> $ server=`grep -l httpd /proc/*/cmdline`
> $ for i in $server; do cat `dirname $i`/statm; done
> 
> aber tcsh sagt syntax error, und ich kann den nicht finden. 

Nimm bash. Das ist ein Bash skript.
 
> Er rechnet übrigens bei seinem Beispiel mit 100-150 KB pro Prozess. Bei
> 128 MB muß man also reichlich Luft haben. Er rechnet dann auch mit
> Hunderten, die gleichzeitig laufen.

www-data  9145  0.0  6.6 43448 4312 ?        S    17:46   0:00 /usr/sbin/apache
www-data  9148  0.0  7.2 43800 4700 ?        S    17:46   0:00 /usr/sbin/apache
www-data  9149  0.0  6.6 43388 4308 ?        S    17:46   0:00 /usr/sbin/apache
www-data  9163  0.0  6.5 43384 4296 ?        S    17:47   0:00 /usr/sbin/apache 

Also wie du siehst belegen meine vier momentan hier laufenden Apaches
virtuell knapp 43MB each, davon sind jeweils ca 4.5MB resident (d.h. in
Benutzung). Davon ist allerdings auch jede Menge shared, denn "free" zeigt

             total       used       free     shared    buffers     cached
Mem:         65128      62912       2216          0       8388      21716
-/+ buffers/cache:      32808      32320
Swap:        93204      12180      81024                                        

noch 32MB "freien" (d.h. mit Plattencache / Buffern belegten) Speicher, und
die Swap-partition ist auch nur zu 12MB belegt. Ausserdem läuft hier noch
so ziemlich alles andere, was wir brauchen (News, Mail, NFS, Samba, Squid,
usw usw usw usw) d.h. für die 32MB belegten RAM ist niemals der Apache
alleine verantwortlich.
 
> Wie muß ich das verstehen: wenn ich eine Seite aufrufe, sind das ja
> mehrere hits. Der macht also nicht für jeden hit/request einen Prozeß
> auf? Was passiert, wenn eine SE saugt? Braucht die einen Haufen Prozesse
> oder macht die das mit einem ab, der eben lange läuft?

Jein. HTTP/1.1 beherrscht multiple Anfragen pro Verbindung, aber
(natürlich) nur sequentiell. Ansonsten wird für jede Verbindung ein
weiterer Apache gefork()ed. Das ist speicherverbrauchsmäßig ähnlich wie ein
neuer Thread, hat aber nicht die Sicherheits- und Schutzprobleme, die
Threads sonst haben.
 
> Hat jemand Erfahrung damit?

Mit Speicherverwaltung? Ein bisschen. Ich habe mal Alan Cox etwas bugfixen
geholfen. :-) Speziell auf Apache geschnitten? Weniger.


-- 
*ACHTUNG*: die .pinguin.conetix.de Addresse läuft aus, bitte Addressbuch
aktualisieren!
·
http://www.hitch-hiker.de/ - Die KOSTENLOSE Mitfahrzentrale für ganz Europa


php::bar PHP Wiki   -   Listenarchive