[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Content Management System für private Homepage?



Martin Steigerwald <Martin@lichtvoll.de> writes:

> Wie hast Du das gemessen? Die Ausgaben von ps aux sagen wenig über den 
> effektiven Speicherverbrauch des Prozesses aus.

ps bzw. top. Beide zeigen die virtual size an und top hat noch den
shared memory. Die Werte aus top unterscheiden sich etwas von denen mit
deinem Befehl ermittelten Werten. Ich werde hier mal deinen Befehl
übernehmen.

> Und dann schaue ich mal, ob einer der Apaches wirklich 20 MB verbraucht:
>
> mondschein:~> for P in $(pidof apache2); do pmap -d $P | tail -1 ; done 
> mapped: 22476K    writeable/private: 4820K    shared: 568K
> mapped: 22764K    writeable/private: 5108K    shared: 568K
> mapped: 22796K    writeable/private: 5140K    shared: 568K
> mapped: 22828K    writeable/private: 5172K    shared: 568K
> mapped: 23088K    writeable/private: 5432K    shared: 568K
> mapped: 23056K    writeable/private: 5400K    shared: 568K
> mapped: 22992K    writeable/private: 5336K    shared: 568K
> mapped: 23080K    writeable/private: 5424K    shared: 568K
> mapped: 22828K    writeable/private: 5172K    shared: 568K
> mapped: 23088K    writeable/private: 5432K    shared: 568K
> mapped: 22344K    writeable/private: 4688K    shared: 568K

Ist das ein frisch gestarteter oder schon länger laufender Apache?

Ein frisch gestartetet Apache mit mod-php sieht bei mir z.B. so aus:

:~# for P in $(pidof apache2); do pmap -d $P | tail -1 ; done
mapped: 312532K    writeable/private: 10316K    shared: 576K
mapped: 312532K    writeable/private: 10316K    shared: 576K
mapped: 312532K    writeable/private: 10316K    shared: 576K
mapped: 312532K    writeable/private: 10316K    shared: 576K
mapped: 312532K    writeable/private: 10316K    shared: 576K
mapped: 312532K    writeable/private: 10316K    shared: 576K
mapped: 312532K    writeable/private: 10316K    shared: 576K
mapped: 312532K    writeable/private: 10316K    shared: 576K
mapped: 312532K    writeable/private: 10316K    shared: 576K
mapped: 312532K    writeable/private: 10316K    shared: 576K
mapped: 151096K    writeable/private: 3944K    shared: 0K
mapped: 312532K    writeable/private: 10316K    shared: 576K
mapped: 151092K    writeable/private: 3944K    shared: 0K

Und nach ein paar Seitenaufrufen, wenn der PHP-Code nachgeladen wurde:

:~# for P in $(pidof apache2); do pmap -d $P | tail -1 ; done
mapped: 312532K    writeable/private: 10316K    shared: 576K
mapped: 312532K    writeable/private: 10316K    shared: 576K
mapped: 312532K    writeable/private: 10316K    shared: 576K
mapped: 312532K    writeable/private: 10316K    shared: 576K
mapped: 312532K    writeable/private: 10316K    shared: 576K
mapped: 312532K    writeable/private: 10316K    shared: 576K
mapped: 312532K    writeable/private: 10316K    shared: 576K
mapped: 312532K    writeable/private: 10316K    shared: 576K
mapped: 312532K    writeable/private: 10316K    shared: 576K
mapped: 312532K    writeable/private: 10316K    shared: 576K
mapped: 323552K    writeable/private: 21336K    shared: 576K
mapped: 322948K    writeable/private: 20732K    shared: 576K
mapped: 322960K    writeable/private: 20744K    shared: 576K
mapped: 323552K    writeable/private: 21336K    shared: 576K
mapped: 322952K    writeable/private: 20736K    shared: 576K
mapped: 324572K    writeable/private: 22356K    shared: 576K
mapped: 323656K    writeable/private: 21440K    shared: 576K
mapped: 151096K    writeable/private: 3944K    shared: 0K
mapped: 312532K    writeable/private: 10316K    shared: 576K
mapped: 151092K    writeable/private: 3944K    shared: 0K

Sind ein paar Prozesse mehr und einige sind von 10MB auf 20MB gewachsen.
Insgesamt ca. 250MB für ca. 20 Prozesse/Connections.

Zum Vergleich mal eine Site mit mpm-worker mit 10 Threads pro Prozess
und fcgid direkt nach dem Start:

:~# for P in $(pidof apache2); do pmap -d $P | tail -1 ; done
mapped: 39432K    writeable/private: 27556K    shared: 832K
mapped: 14292K    writeable/private: 3024K    shared: 320K
mapped: 14104K    writeable/private: 3156K    shared: 0K
mapped: 14804K    writeable/private: 3024K    shared: 832K

* keine php Prozesse

Und nach ein paar Seitenaufrufen:

:~# for P in $(pidof apache2); do pmap -d $P | tail -1 ; done
mapped: 39432K    writeable/private: 27556K    shared: 832K
mapped: 40976K    writeable/private: 29100K    shared: 832K
mapped: 14292K    writeable/private: 3024K    shared: 320K
mapped: 14104K    writeable/private: 3156K    shared: 0K
mapped: 14804K    writeable/private: 3024K    shared: 832K

Hier noch das PHP:

:~# for P in $(pidof php5); do pmap -d $P | tail -1 ; done
mapped: 34468K    writeable/private: 13060K    shared: 0K
mapped: 38076K    writeable/private: 16668K    shared: 0K

Also insgesamt ca. 100MB für ca. 20 Prozesse/Connections.

Wie du allerdings schreibst, kann das ganze auch hinfällig sein, wenn
bei den Prozessen signifikant mehr Code zwischen den Prozessen geteilt
wird, als die Angabe "shared" suggeriert.

Da bin ich dann mit meinen Profiling-Kenntnissen am Ende und muss dir
glauben. :)

> und einen kleinen inhaltlichen Aspekt aus dem Linux Performance Tuning
> Kurs, den ich halte, weitervermittelt.)

Danke dafür.


Reply to: