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: