Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

Neo

Erfahrener Schreiberling

  • "Neo" is male
  • "Neo" started this thread

Posts: 322

Date of registration: Jul 24th 2005

Location: Hannover

Occupation: Informatik

1

Tuesday, March 30th 2010, 4:47pm

Speicherbelegung / RAM Belegung Apache Webserver Linux

Hallo Forum,

wie kann ich die RAM Belegung auf einem Linux mit Apache2 analysieren? Ich bin mir sicher, dass der Apache 80% RAM verbraucht (mittels "ps -aux" und "free" herausgefunden).
Nun möchte ich es noch genauer wissen, habe aber nichts dazu gefunden.

jab

Würstchen- und Bierschnorrer

  • "jab" is male

Posts: 149

Date of registration: Oct 26th 2007

2

Tuesday, March 30th 2010, 4:59pm

Spezifiziere was du rausfinden willst. ps aux sagt eigentlich schon alles. Du kannst mit ps auxt noch die einzelnen Threads des Apache anzeigen, aber die teilen sich den Speicher. Was haste denn für ne Workload?
:thumbup:

Neo

Erfahrener Schreiberling

  • "Neo" is male
  • "Neo" started this thread

Posts: 322

Date of registration: Jul 24th 2005

Location: Hannover

Occupation: Informatik

3

Tuesday, March 30th 2010, 5:05pm

Im Prinzip möchte ich herausfinden, welche PHP Skripte wieviel RAM (in MB) verbrauchen. Ist das überhaupt möglich?

Edit: Danke erstmal für den Tip mit ps auxt. Ich werde jetzt einige der PHP Klassen in meinem Typo3 System genauer angucken und optimieren. Danach bin ich dann etwas schlauer hoffentlich.

This post has been edited 1 times, last edit by "Neo" (Mar 30th 2010, 5:11pm)


jab

Würstchen- und Bierschnorrer

  • "jab" is male

Posts: 149

Date of registration: Oct 26th 2007

4

Tuesday, March 30th 2010, 5:16pm

Das sagt dir der Apache nur schwer. Entweder du verwendest nen PHP Profiler wie XDebug oder du ließt den Verbrauch innerhalb des Scriptes aus. Über was für ne absolute Zahl sprechen wir denn?
:thumbup:

Neo

Erfahrener Schreiberling

  • "Neo" is male
  • "Neo" started this thread

Posts: 322

Date of registration: Jul 24th 2005

Location: Hannover

Occupation: Informatik

5

Tuesday, March 30th 2010, 5:24pm

Nach dem Apache Neustart werden schon 700MB verbraucht. Wenn bestimmte Seiten aufgerufen werden, kann es auch passieren, dass die Speichergrenze von 1GB überschritten wird, und dann wird bereits in den Cache ausgelagert,

jab

Würstchen- und Bierschnorrer

  • "jab" is male

Posts: 149

Date of registration: Oct 26th 2007

6

Tuesday, March 30th 2010, 5:30pm

Virtueller oder realer Speicher? Klingt nach übertrieben viel. Wie viele Worker hat denn dein Apache laufen? Was sagt die http://localhost/server-status (by default nur von localhost erreichbar)? Wie viele Concurrent Requests? Durchschnittliche Latenz?

Was ist memory_limit in php? Evtl kannste das runtersetzen. Dann siehste welche Scripte sich über unzureichend Speicher beschweren.
:thumbup:

Neo

Erfahrener Schreiberling

  • "Neo" is male
  • "Neo" started this thread

Posts: 322

Date of registration: Jul 24th 2005

Location: Hannover

Occupation: Informatik

7

Tuesday, March 30th 2010, 6:26pm

ps aux liefert folgende Ausgabe:

Source code

1
2
3
4
5
6
7
8
9
apache   13031  0.2  4.0 367464 42988 ?    S18:17   0:00 /usr/sbin/httpd
apache   13032  0.1  2.9 360776 30596 ?    S18:17   0:00 /usr/sbin/httpd
apache   13033  0.1  3.8 365812 39904 ?    S18:17   0:00 /usr/sbin/httpd
apache   13034  0.2  3.4 364816 35780 ?    S18:17   0:00 /usr/sbin/httpd
apache   13039  0.2  4.1 369172 43324 ?    S18:17   0:00 /usr/sbin/httpd
apache   13073  0.0  2.3 361484 25104 ?    S18:18   0:00 /usr/sbin/httpd
apache   13077  0.1  3.1 366168 33244 ?    S18:19   0:00 /usr/sbin/httpd
apache   13078  0.2  3.4 373284 36056 ?    S18:19   0:00 /usr/sbin/httpd
apache   13079  0.2  2.9 364968 31168 ?    S18:19   0:00 /usr/sbin/httpd


free liefert folgende Ausgabe:


Source code

1
2
3
4
         total   used   free sharedbuffers cached
Mem:   1048576 955932  92644      0  75100 602564
-/+ buffers/cache: 278268 770308
Swap:   262136  23192 238944


Meine Optimierungen in den PHP Klassen haben scheinbar nichts gebracht. Die großen Arrays, die dort zwischengespeichert werden, habe ich mit unset gelöscht, und Datenbank Result mit mysql_free_result gelöscht. ?(

Memory_limit 100MB (habe auf 64MB heruntergesetzt, Apache neugestartet. Aber keine Veränderung).

This post has been edited 1 times, last edit by "Neo" (Mar 30th 2010, 6:27pm)


jab

Würstchen- und Bierschnorrer

  • "jab" is male

Posts: 149

Date of registration: Oct 26th 2007

8

Tuesday, March 30th 2010, 6:33pm

Dein Apache verbraucht nicht mal 1% des realen Speichers. Virtuelles Memory ist ca 365MB. Realer Speicher ca 42MB. Beides ist natürlich teilweise shared zwischen den Processen. Glaub dein Problem liegt woanders.

Edit: Zu deinem free output: Allein 600MB sind Filesystem Cache. Ist also massig fast 700MB (70%) Speicher frei.
:thumbup:

This post has been edited 1 times, last edit by "jab" (Mar 30th 2010, 6:34pm)


Neo

Erfahrener Schreiberling

  • "Neo" is male
  • "Neo" started this thread

Posts: 322

Date of registration: Jul 24th 2005

Location: Hannover

Occupation: Informatik

9

Tuesday, March 30th 2010, 7:00pm

Dein Apache verbraucht nicht mal 1% des realen Speichers. Virtuelles Memory ist ca 365MB. Realer Speicher ca 42MB. Beides ist natürlich teilweise shared zwischen den Processen. Glaub dein Problem liegt woanders.

Edit: Zu deinem free output: Allein 600MB sind Filesystem Cache. Ist also massig fast 700MB (70%) Speicher frei.
Heißt "Filesystem Cache" nicht, dass aufgrund von zu wenig Speicher auf die festplatte ausgelagert wurde?

jab

Würstchen- und Bierschnorrer

  • "jab" is male

Posts: 149

Date of registration: Oct 26th 2007

10

Tuesday, March 30th 2010, 7:03pm

Nein. Das heißt Swap. Filesystem Cache sind einfach nur zwischengespeicherte Dateien von der Platte.
:thumbup:

This post has been edited 1 times, last edit by "jab" (Mar 30th 2010, 7:03pm)