PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache sehr viele Prozesse - Habt Ihr eine Idee?



netzmeister
28.02.07, 16:24
Hallo,

seit ein paar Tagen habe ich zu viele Apache prozesse auf einer Kiste,
die recht gut besucht wird, hier die Ausgabe von "top":




top - 17:21:25 up 23:02, 6 users, load average: 1.75, 2.76, 2.93
Tasks: 813 total, 1 running, 812 sleeping, 0 stopped, 0 zombie
Cpu0 : 22.4% us, 11.8% sy, 0.0% ni, 56.9% id, 4.9% wa, 1.3% hi, 2.6% si
Cpu1 : 21.1% us, 10.2% sy, 0.0% ni, 67.4% id, 1.0% wa, 0.0% hi, 0.3% si
Mem: 2054224k total, 2031472k used, 22752k free, 82512k buffers
Swap: 2931820k total, 0k used, 2931820k free, 204176k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
29624 www-data 15 0 129m 15m 125m S 4.3 0.8 0:00.86 apache
26770 root 17 0 10048 1824 9164 S 1.6 0.1 1:09.57 top
29733 www-data 15 0 129m 14m 125m S 1.3 0.7 0:00.62 apache
29901 www-data 16 0 129m 14m 125m S 1.3 0.7 0:00.98 apache
31590 www-data 16 0 129m 12m 125m S 1.3 0.6 0:00.05 apache
31616 root 16 0 9928 1800 9164 R 1.3 0.1 0:00.23 top




Hier von "atop"




ATOP - www 02/28/2007 17:22:08 10 seconds elapsed
PRC | sys 2210 ms | user 3070 ms | #thr 823 | #exits 5 | #zombie 0 |
CPU | sys 23% | user 34% | irq 4% | idle 127% | wait 13% |
cpu | sys 12% | user 20% | irq 3% | idle 55% | cpu000 w 10% |
cpu | sys 11% | user 13% | irq 0% | idle 73% | cpu001 w 3% |
MEM | tot 2.0G | free 11.5M | cache 203.0M | buff 81.2M | slab 170.8M |
SWP | tot 2.8G | free 2.8G | vmcom 8.9G | swin 0 | swout 0 |
DSK | sda | busy 16% | read 24 | write 504 | avio 3 ms |
NET | transport | tcpi 20290 | tcpo 23060 | udpi 8 | udpo 9 |
NET | network | ipi 20308 | ipo 23080 | ipfrw 0 | deliv 20308 |
NET | dev eth0 | pcki 20078 | pcko 22844 | in 3433K | out 9646K |
NET | dev lo | pcki 235 | pcko 235 | in 476K | out 476K |

PID SYSCPU USRCPU VGROW RGROW USERNAME NTHRD STATUS S CPU CMD 1/10
1775 170 ms 1150 ms 0K 0K sb 8/M --- S 13% ntop
26770 120 ms 30 ms 0K 0K root 1/L --- S 2% top
31625 70 ms 30 ms 4824K 928K root 1/L --- R 1% atop
30125 10 ms 50 ms 0K 172K www-data 1/L --- S 1% apache
31559 20 ms 40 ms 232K 884K www-data 1/L --- S 1% apache
30167 30 ms 20 ms 0K 80K www-data 1/L --- S 1% apache
29660 30 ms 20 ms 0K 0K www-data 1/L --- S 1% apache
29957 20 ms 30 ms 0K 348K www-data 1/L --- S 1% apache
29622 30 ms 20 ms 0K 40K www-data 1/L --- S 1% apache
30043 30 ms 20 ms 0K 0K www-data 1/L --- S 1% apache



Irgendwie ist die Kiste auch ziemlich zäh geworden!

Habt Ihr eine Idee?

Maschine ist Debian 3.1, Apache 1.3.33

Viele Grüße

Eicke

geronet
28.02.07, 16:30
Ist bei dem in der httpd.conf der server-status aktiviert?

http://[maschine]/server-status

Dort sieht man welche Server was machen..

derRichard
28.02.07, 16:41
hi!

wie ist das verhältnis seitenaufrufe/apache-prozesse?
hat die besagte webseite mit php was zu tun?

//richard

netzmeister
28.02.07, 16:42
Ok, hier:



Apache Server Status for www.beispielserver.de
Server Version: Apache
Server Built: Sep 6 2005 13:44:29

Current Time: Wednesday, 28-Feb-2007 17:38:59 CET
Restart Time: Wednesday, 28-Feb-2007 16:54:27 CET
Parent Server Generation: 1
Server uptime: 44 minutes 32 seconds
Total accesses: 594245 - Total Traffic: 1.3 GB
CPU Usage: u27.76 s27.89 cu0 cs0 - 2.08% CPU load
222 requests/sec - 500.2 kB/second - 2302 B/request
658 requests currently being processed, 82 idle servers
KKKKKK_KKKK_KKKKKKKKKKKKKKKKKKK_KKKKKKKKKKK__KKKKK KKKKKKKKKKKKK_
KKKKKKKKK_KKKKKK_KKKK__KKKKKKKKKKKKKKKKKK_KKKK_KKK KKKKK__KKKKKKK
KKKKKKKKKKKKKKKKKKKKKKKKKKK_KKKKKKK_K_KK_KKKKKKKKK KKKKK_KKRK_KKK
KKKKK_KKKKKKKKKKKKK_KK_KKKKKKKKKKKKKKK_KKKKKK_KKKK KKKKKKKKKKKKKK
KKKKK_KKKKKKKKKKKKKKKKKKK_KWKKKKKKKKK_KKKKKKKKK_KK KKKKKKKKRKKKKK
KK_KK_KKKKKK_KKKKKK_K__KKKKKKKK_KKKKK_KKKKK_RKK_WK KKKKKKKKWKKKKK
KKKKKKKKK_KKKKKKKKKKKKKKK_KKK_KKKKKKKKRKKKK_KKK__K KKKKKKKKKKKKKK
KKKKKKKKK_KKKKKKKKKKKKK_KKKKK_KKKKK_KKK_KKKKKKKKKK KWKKKKKK_KKKKK
KKKKKKKK__KKKKKKK_KK_K_KKKKKK_KKKKK__KKKKKKKKKKKKK KK_KKKKK__KKKK
K_KKKKKKKKKK_GK_KK_KK_KKKKK.KKKKKKKKKKKKKKKKKKKGKK KKKKKKGKKKKKKK
K_K_KKKKKKKKKKKKKKK_KKK_KKKKKKKKKKR_KK_KGKKKKKK_KK WK_KKKKKKKKKK.
KKKK_KKKKKK_KKKKKKKK_K...KKK.KKK_KKKK..___KK...... ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............
Scoreboard Key:
"_" Waiting for Connection, "S" Starting up, "R" Reading Request,
"W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
"L" Logging, "G" Gracefully finishing, "." Open slot with no current process

gekürzt --- 2.02 89.247.10.51 bla.beispielserver.de GET /.....png HTTP/1.1

Srv Child Server number - generation
PID OS process ID
Acc Number of accesses this connection / this child / this slot
M Mode of operation
CPU CPU usage, number of seconds
SS Seconds since beginning of most recent request
Req Milliseconds required to process most recent request
Conn Kilobytes transferred this connection
Child Megabytes transferred this child
Slot Total megabytes transferred this slot




Viele Grüße

Eicke

marce
28.02.07, 16:51
Wieviele Prozesse hat der Apache denn? Und wie ist die Konfig bezüglich den forks? Die 82 Stück bei server-status hören sich eigentlich nicht sonderlich gruselig an...

Ansonsten - bei uns gibt es gerade öfters mal Probleme mit AOL-Proxies, die Verbindungen scheibar nicht mehr sauber schliessen und die dann irgendwann z.B. bei netstat als time-wait rumhängen - kontrollier das doch auch mal...

netzmeister
28.02.07, 17:00
Hallo,

scheint wohl alles in Ordnung. Ist halt viel los:



Apache Server Status for www.****.de
Server Version: Apache
Server Built: Sep 6 2005 13:44:29

--------------------------------------------------------------------------------
Current Time: Wednesday, 28-Feb-2007 17:57:35 CET
Restart Time: Wednesday, 28-Feb-2007 16:54:27 CET
Parent Server Generation: 1
Server uptime: 1 hour 3 minutes 8 seconds
Total accesses: 818813 - Total Traffic: 1.7 GB
CPU Usage: u208.82 s214.93 cu0 cs0 - 11.2% CPU load
216 requests/sec - 478.5 kB/second - 2266 B/request
750 requests currently being processed, 0 idle servers
KKWKWKKKKKWKKKKKWWKKKKKKKKWWKKKKKKKKKKKWKKKKKKKKKK KKKKWKKLWKKKKK
KWKKWKWWKKKKKWKKKKKKKKKKKKKKKKKKKWWKKKKKKKKKKKKKKW KKWKKKKWKKKKKK
KKKKKWKKKKKKKWWKKKKKKKKKKKKKKKKKKWWKKKKKWWKKKKKKWK KKWKKKKKKKWKWR
KKKKKKKWWKKKKKWWKKWKKKWKKKKKKKKKKWKKKKKKWKWKWWKKKK KWKKKKKKKKWKKK
KKKKKKKKWKKKKWKKKKKKKKKKKKKWKKKKKKKKKKWKKKKWKKKKKK KKWKKWWKKKWKKK
RKKKWWKKKWKWKWKKKKKKKKWKKKKKKKKKKKKWKRWKKKKKKKKKKK KKKKWWKKKKKKKK
WKKKKKKKRWKRKKKKKWKKKKKKKWKRKKKKRKKRKKKKKKKKKKWKKK WKWKKKKKKKKKKK
KKKKKKKKKKWKKKKKKKKKKWKKKKKWKKKKKWWKWKKKKWKWKKKKKK KKKKKWKKWKKKKK
KKWKKKKKKKKRKKKWKKWKKKKKWKWKKKKKWKKWKKKKKKKKWKKKKK KKKKKKWKKWKKKK
KKKKKWWKKKKKKWKKKKWKKWKKKWKKKKWWWKWKWKKKWKKKKKWKKK KKKKWKKKWKKKKW
KKKKKKKKKKKKKKKKWKKKKKKKWKWKKKKKKWKKKKKKKWKKKWWKKK KWWWKKWKWKKWKK
KKKKKKKWKKKKKKKKKKKKKKWKKKKKKKWKKKKKKKKKWWKKKK.... ..............
.................................................. ..............


Ich habe schon alles ziemlich optimiert. Ich muß halt die
Roboter rauswerfen. Irgendiwe scheint der Server etwas
wenig Speicher zu haben.

0,8 Mio Hits pro Stude sind halt auch eine Menge.

Viele Grüße

Eicke

P.S. Falls noch jemand eine Idee bezüglich einer Anomalie
in den Ausgaben entdeckt, immer her damit ;)

oracle2025
28.02.07, 17:02
Hm, time-out etwas runtersetzen hilft gegen ungeschlossen Verbindungen oder?

derRichard
28.02.07, 17:08
hallo!

was anderes, wenn der server so viel zu tun hat. warum dann apache 1.3?
warum nicht apache 2.2?

//richard

netzmeister
28.02.07, 19:09
Hallo,

das ist eine bekannt deutsche Seite. Ich pflege die Infrastruktur dort.
Nach Evaluation verschiedenster Lösungen hatte ich mich vor etwa
einem Jahr für den 1er Apache entschieden.
In diesem Bereich war dieser mit den entsprechenden Modulen dem 2er Apache deutlich überlegen.

Timeout habe ich schon runter gesetzt. Ich habe das Ding jetzt eine
Weile beobachtet. Pro Stunde kommt der etwa auf 750 Tausend bis
1,5 Mio Hits ...
Dazu kommen etwa 1,5 GB Traffic stündlich, die sind auch schon gezippt.
Die Leitungskapazität muß ich auch noch untersuchen.

Die Konfiguration ist in etwa mit der des Forums zu vergleichen.
Auch mit dem entsprechenden Beschleuniger wie hier. Ist eine reine Webbox.
Datenbankserver ist schon extern.

Der Inhalt ist rein dynamisch. Ich hatte schon die PHP Programmierer in Verdacht.

Wir müssen dort wohl aufrüsten, ...

Viele Grüße

Eicke

derRichard
28.02.07, 19:22
hallo!

naja, bei sowas würde ich dann aber php als fastcgi einsetzen.
dann kann linux besser skalieren und php sieht man in der prozessliste.

//richard

netzmeister
28.02.07, 19:34
Hallo,

als Beschleuniger läuft http://pecl.php.net/package/APC

Was hat der fastcgi für Vorteile? Was für Nachteile?

Viele Grüße

Eicke

derRichard
28.02.07, 19:38
hallo!

php läuft dann als eigenständiger prozess und nicht im apache als modul.
da kann wie bereits gesagt, das linux besser skalieren.
sofern überhaupt linux 2.6 zum einsatz kommt.

du kannst webseiten bevorzugen. mit nice und ulimit kann man dann den php-prozess bestimmer webseiten beeinflussen.

nachteil ist, dass die installation nicht ganz einfach ist.
und php sollte entweder in einer ramdisk oder immer im cache sein.
aber wenn die webseite so irre viele aufrufe hat, dann ist php immer im cache...

//richard

netzmeister
28.02.07, 19:41
Hallo Richard,

das ist schon ein 2.6 auf einem Dual Opteron.

Hier gibt es eine detailierte Anleitung zur Installation:
http://archiv.debianhowto.de/de/apache2-phpfcgi-sarge/c_apache2-phpfcgi-sarge.html

Da ich demnächst einen stärkeren Server einrichten werde,
könnte das schon interessant sein.

Viele Grüße

Eicke

derRichard
28.02.07, 19:47
hallo!

die anlteitung kenne ich.
sie ist sagen wir mal so, recht billig.^^
aber wenn man etwas rumspielt, dann geht das schon.

//richard

netzmeister
28.02.07, 19:48
Die Performance ist erstaunlich, im Vergleich zu mod_php zwar immer noch etwas langsamer, aber im Vergleich zu suphp wesentlich besser.


Mal ausprobieren, ....

Duch den Beschleuniger sinkt die Prozessorlast auf dem Server, auch hier auf dem Forum,
um etwa 70-85 %; im Vergleich zum normalen mod_php. Das ist auch schon schnell, aber
eben nur für Spielereien.

Viele Grüße

Eicke

derRichard
28.02.07, 19:52
hallo!

wenn man suphp oder suexec verwendet, so wie beim debian-howto, dann bremst das auch.
wie gesagt, da muss man etwas rumtesten...

//richard

netzmeister
28.02.07, 20:09
Hallo Richard,

etwas, das bremst kann ich auf dem Server nicht einsetzen.

Ich habe mich heute Mittag mit dem spitzen Bleistift und dem
Taschenrechner bewaffnet, um die Parameter auf den Speicherbedarf
hin zu berechnen. Mit diesen habe ich dann die Konfiguration geändert.
So wie ich das sehe, läuft der halt ziemlich am Limit.

Wenn der Dax nochmal so Kapriolen macht, haben wir bis dahin
hoffentlich den neuen Server einsatzbereit.

So, jetzt habe ich genug verraten.

Viele Grüße

Eicke

derRichard
28.02.07, 20:26
Hallo Richard,
etwas, das bremst kann ich auf dem Server nicht einsetzen.


darum sage ich ja, dass das eine howto nicht gut ist.
fcgi alleine mit php geht super.

//richard

netzmeister
28.02.07, 22:28
Hallo Richard,

ich komme da nächste Woche drauf zurück.
Du meinst das php als Binary, also kein "mod_php" und
dann das fastcgi!

Wie immer bin ich für alles offen, kennst mich ja.

Viele Grüße

Eicke

derRichard
28.02.07, 22:30
Hallo Richard,

ich komme da nächste Woche drauf zurück.
Du meinst das php als Binary, also kein "mod_php" und
dann das fastcgi!

Wie immer bin ich für alles offen, kennst mich ja.

Viele Grüße

Eicke
hallo!

genau.
das ist der große unterschied.

//richard

Roger Wilco
28.02.07, 23:54
Man sollte vielleicht noch erwähnen, dass PHP am sinnvollsten via FastCGI eingebunden wird, wenn ein Threaded MPM wie worker oder event für den Apache 2.0/2.2 benutzt wird. Beim Prefork-Modell (wie es bei Apache 1.3 Standard ist) nimmt sich mod_php und PHP als FastCGI nicht viel. Auch bezüglich der Skalierung der Prozesse seitens des Kernels dürfte es da IMHO keine großen Unterschiede geben.

Und ja, SuExec und SuPHP bremsen, allerdings werden die hauptsächlich in Multiuser-Umgebungen benötigt. Bei einer Seite auf dem Server sind beide recht sinnfrei. ;)

derRichard
28.02.07, 23:57
hallo!

das stimmt, darum hab ich ja oben geschrieben, dass apache 2.2 gar keine blöde idee wäre.
für apache 2.2 gibt es ja eine alternative zu fast_cgi (funktioniert gleich nur besser :D)

//richard

Roger Wilco
01.03.07, 00:03
für apache 2.2 gibt es ja eine alternative zu fast_cgi (funktioniert gleich nur besser :D)
Jetzt bin ich neugierig. Meinst du mod_proxy_fastcgi oder doch etwas anderes?

derRichard
01.03.07, 00:09
hallo!

ich meine mod_fcgid. :)
das ist standardmäßig bei suse anstatt von mod_fastcgi dabei.

//richard

Roger Wilco
01.03.07, 00:13
Achso. Das Modul funktioniert aber auch schon mit dem Apache 2.0. Dachte da gäbe es noch etwas anderes.

netzmeister
01.03.07, 14:47
Hallo,

heute haben wir den Traffic von gestern noch etwas getoppt:




Server Version: Apache
Server Built: Sep 6 2005 13:44:29

--------------------------------------------------------------------------------
Current Time: Thursday, 01-Mar-2007 15:45:57 CET
Restart Time: Thursday, 01-Mar-2007 14:38:32 CET
Parent Server Generation: 0
Server uptime: 1 hour 7 minutes 25 seconds
Total accesses: 1069879 - Total Traffic: 2.6 GB
CPU Usage: u780.62 s661.21 cu.51 cs.34 - 35.7% CPU load
264 requests/sec - 0.7 MB/second - 2632 B/request
724 requests currently being processed, 26 idle servers


Viele Grüße

Eicke

pucki
15.06.08, 14:29
Hallo Eicke,

was war denn nun deine umgesetzte Variante?

Grüße

Reinhard