PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache2 und die CPU-Last



MaDmAsTeR
07.09.04, 16:55
Hi!

Ich betreibe eine kleine Community-Seite auf einem Rechner der ca. 10.000 Visits/Day verzeichnet. Der Content ist sehr dynamisch und daher bin ich auf PHP angewiesen.

Das Problem: Apache frißt sämtliche CPU-Ressourcen auf die ich zur Verfügung habe. Und ich weiß nicht woran das liegen könnte...:


# uptime
16:40:47 up 25 days, 19:10, 2 users, load average: 5.26, 5.73, 6.43


Die MySQL DB hatte ich erst in Verdacht aber die kann es laut top nicht sein, ich sehe nur ca. 100 apache2 Prozesse laufen, jeder benötigt ca. 16-18M RSS und viele haben eine CPU Last von 1,5-2,6% manchmal auch höher...



top - 16:40:42 up 25 days, 19:10, 2 users, load average: 5.54, 5.81, 6.47
Tasks: 307 total, 4 running, 303 sleeping, 0 stopped, 0 zombie
Cpu(s): 55.2% us, 6.2% sy, 0.0% ni, 38.6% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 775952k total, 588148k used, 187804k free, 7024k buffers
Swap: 1542160k total, 57648k used, 1484512k free, 281840k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
32733 apache 21 0 80300 38m 18m S 0.0 5.1 0:00.00 apache2
32741 apache 21 0 80300 38m 18m S 0.0 5.1 0:00.00 apache2
320 apache 22 0 80300 38m 18m S 0.0 5.1 0:01.27 apache2
333 apache 22 0 80300 38m 18m S 0.0 5.1 0:02.64 apache2
647 apache 22 0 71888 34m 18m S 0.0 4.6 0:00.00 apache2
648 apache 22 0 71888 34m 18m S 0.0 4.6 0:00.00 apache2
703 apache 24 0 71888 34m 18m S 0.0 4.6 0:01.08 apache2
645 apache 22 0 101m 32m 18m S 0.0 4.4 0:00.00 apache2
646 apache 21 0 101m 32m 18m S 0.0 4.4 0:00.00 apache2
654 apache 22 0 101m 32m 18m S 1.0 4.4 0:01.21 apache2
655 apache 22 0 101m 32m 18m S 0.0 4.4 0:01.32 apache2
656 apache 22 0 101m 32m 18m S 0.7 4.4 0:01.18 apache2
663 apache 22 0 101m 32m 18m S 1.3 4.4 0:01.06 apache2
664 apache 22 0 101m 32m 18m S 0.0 4.4 0:00.80 apache2
669 apache 23 0 101m 32m 18m S 0.7 4.4 0:01.22 apache2
670 apache 22 0 101m 32m 18m S 1.3 4.4 0:01.25 apache2
675 apache 23 0 101m 32m 18m S 1.3 4.4 0:01.39 apache2
676 apache 22 0 101m 32m 18m S 0.0 4.4 0:01.03 apache2
681 apache 22 0 101m 32m 18m S 1.0 4.4 0:01.24 apache2
682 apache 22 0 101m 32m 18m S 1.0 4.4 0:01.39 apache2
687 apache 22 0 101m 32m 18m S 0.0 4.4 0:01.22 apache2
688 apache 23 0 101m 32m 18m R 1.0 4.4 0:01.44 apache2
693 apache 21 0 101m 32m 18m S 0.0 4.4 0:01.17 apache2
694 apache 23 0 101m 32m 18m S 1.3 4.4 0:01.28 apache2
699 apache 22 0 101m 32m 18m S 0.7 4.4 0:01.29 apache2
700 apache 23 0 101m 32m 18m S 0.0 4.4 0:01.29 apache2
705 apache 22 0 101m 32m 18m S 0.7 4.4 0:01.25 apache2
706 apache 22 0 101m 32m 18m S 0.0 4.4 0:01.31 apache2
711 apache 22 0 101m 32m 18m S 0.7 4.4 0:01.27 apache2
712 apache 22 0 101m 32m 18m S 1.0 4.4 0:01.16 apache2
717 apache 22 0 101m 32m 18m S 1.3 4.4 0:01.33 apache2
718 apache 22 0 101m 32m 18m S 1.0 4.4 0:01.23 apache2
721 apache 22 0 101m 32m 18m S 1.0 4.4 0:01.07 apache2
722 apache 22 0 101m 32m 18m S 0.7 4.4 0:01.46 apache2
725 apache 21 0 101m 32m 18m S 0.3 4.4 0:00.07 apache2
752 apache 22 0 75628 31m 18m S 0.0 4.2 0:00.00 apache2



Diese Snapshots hab ich grad eben gemacht, es ist also noch nicht abend, wenn der Server stärker ausgelastet ist...

Vielleicht kann mir einer weiterhelfen, wenn noch Infos benötigt werden, sagen! ;)


System:
AMD Athlon XP 1700+ - 768MB RAM
Gentoo Kernel 2.6.6

Apache2 (2.0.50) mit PHP 4.3.8
MySQL 4.0.20

corresponder
08.09.04, 17:47
hi,

guck dir die httpd.conf an, es gibt eine menge möglichkeiten die zugriffe zu beschränken, und alles so einzustellen, dass die leistung gutverteilt wird.
hast du mod_bzip laufen?

gruss

c.

`kk
08.09.04, 18:28
Hau mal nen paar Instanzen raus.

Imho kann man die Startinstanzen und die maximalen Instanzen angeben.

MaDmAsTeR
12.09.04, 17:39
Hi!

hab das Problem gefunden und behoben!

Ich hatte Apache2 als MPM Worker laufen und auch PHP 4.3.8 im threaded Mode. Das lief auch einwandfrei.
Da die Seite aber nur PHP Content anzeigt war dort das Problem zu suchen und zu finden.

Habe Apache2 wieder mit MPM prefork und PHP 4.3.8 im non-threadeds mode compiliert.
Dazu dann Turck MMCache installiert (Der lief bei mir im threaded-Mode nicht) und schon war das Problem behoben!

Usage ging auf 0.50-0.60 runter in den Spitzen-Zeiten!!