durchgehende Apache2 auslastung

Apache, Lighttpd, nginx, Cherokee
TecServer
Anbieter
Posts: 91
Joined: 2006-04-08 21:41

durchgehende Apache2 auslastung

Post by TecServer » 2007-09-17 14:28

grüß euch,

hab nun ein projekt übernommen und bin etwas mit der enormen auslastung "überfordert".
hab hier einige rootserver bei denen eigentlich die gleiche hard und software konfiguration läuft.
hardware: intel E6600, 2GB Ram, 1x80gb OS HD, 2x80GB im HW Raid1 für daten.
software: gentoo, apache2, php5-cgi geparsed über suPHP.

mein derzeit meist belasteter server hat folgende server stats:

Code: Select all

Current Time: Monday, 17-Sep-2007 14:21:33 CEST
Restart Time: Monday, 17-Sep-2007 14:10:04 CEST
Parent Server Generation: 0
Server uptime: 11 minutes 29 seconds
Total accesses: 7851 - Total Traffic: 31.9 MB
CPU Usage: u3.32 s3.71 cu196.07 cs0 - 29.5% CPU load
11.4 requests/sec - 47.3 kB/second - 4254 B/request
17 requests currently being processed, 95 idle workers

_____._.________K___K__.__.__.__._C_K__.__K__._K__K__K__C__.___.
_____.____.KW__.__.___._..__K____K.__.._.____..__.__.._._K__..__
_._.K_K._...__K.___._...........................................
................................................................

also eigentlich sehr gut ausbalanciert, minimale load bei 11.4 requests / sec.

der neue server verwirrt mich dafür enorm:

Code: Select all

Current Time: Monday, 17-Sep-2007 14:16:10 CEST
Restart Time: Monday, 17-Sep-2007 14:07:17 CEST
Parent Server Generation: 1
Server uptime: 8 minutes 53 seconds
Total accesses: 7045 - Total Traffic: 11.2 MB
CPU Usage: u.94 s2.59 cu323.39 cs0 - 61.3% CPU load
13.2 requests/sec - 21.5 kB/second - 1662 B/request
34 requests currently being processed, 0 idle workers

WKCW.WKKWWWWWK.WKWRKKW.KK.WWWC.CWW...K..............W.W.W...C...
................................................................
................................................................
................................................................


der neue server hat also nur 2 requests / sec mehr im schnitt, aber durchgehend bei beiden cores 100% cpu belastung und dementsprechend die load im 20er bis 30er bereich :-/

Softwaretechnisch ist da sicherlich nirgendwo ein entwicklungsfehler, da es eine kommerzielle software mit entsprechender größenordnung ist. sollte also nicht daran liegen, da auf dem alten server wo das projekt früher lag alles ohne probleme funktioniert hat und die load nur bei 0.6 rumkrebste.
bin also relativ verwirrt :) hoffe einer von euch hat da informationen für mich.

achja: pro monat ca 100k unique hits und 240 Mio seiten aufrufe.

bin für jede hilfe dankbar :)

TecServer
Anbieter
Posts: 91
Joined: 2006-04-08 21:41

Re: durchgehende Apache2 auslastung

Post by TecServer » 2007-09-17 15:43

die file gibts auf einem gentoo system nicht - habs aber aus folgendem thread mal übernommen und ohne wirkung getestet: http://www.rootforum.org/forum/view ... hp?t=47049

Code: Select all

Timeout 30
KeepAlive On
MaxKeepAliveRequests 150
KeepAliveTimeout 2

<IfModule prefork.c>
StartServers       5
MinSpareServers    5
MaxSpareServers    10
ServerLimit       110
MaxClients        100
MaxRequestsPerChild  4000
<IfModule>


HostnameLookups off

User avatar
Joe User
Project Manager
Project Manager
Posts: 11137
Joined: 2003-02-27 01:00
Location: Hamburg

Re: durchgehende Apache2 auslastung

Post by Joe User » 2007-09-17 16:19

http://www.rootforum.org/wiki/howto/gent ... ver/apache lediglich die Pfade anpassen und die Zeilen bezüglich mod_fcgid entfernen (oder Feedback zu mod_fcgid liefern, danke). Dann sollte es laufen...

TecServer
Anbieter
Posts: 91
Joined: 2006-04-08 21:41

Re: durchgehende Apache2 auslastung

Post by TecServer » 2007-09-17 18:13

nein hat eigentlich nichts gebracht - das einzige was ich von dem howto übernommen hab waren ein paar einstellungen, aber nichts kritisches erhalten.

bei mir sieht apache2 btw so aus:

Code: Select all

emerge -pvD apache

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R   ] www-servers/apache-2.0.58-r2  USE="apache2 ldap ssl -debug -doc -mpm-itk -mpm-leader -mpm-peruser -mpm-prefork -mpm-threadpool -mpm-worker (-selinux) -static-modules -threads" 0 kB


in deinem howto hast du jedoch mpm-worker enabled - macht das sinn für performance?

User avatar
daemotron
Administrator
Administrator
Posts: 2635
Joined: 2004-01-21 17:44

Re: durchgehende Apache2 auslastung

Post by daemotron » 2007-09-17 18:46

Öhm, wenn Du weder Prefork noch Worker einsetzt, ist Dein Apache gar nicht Multi-Prozess-fähig. Zumindest sagen dass Deine USE-Flags...

TecServer
Anbieter
Posts: 91
Joined: 2006-04-08 21:41

Re: durchgehende Apache2 auslastung

Post by TecServer » 2007-09-17 18:58

ich schätze mal multiprozessfähigkeit wäre bei einem Core2Duo E6600 schon sinnvoll ^^

TecServer
Anbieter
Posts: 91
Joined: 2006-04-08 21:41

Re: durchgehende Apache2 auslastung

Post by TecServer » 2007-09-19 10:10

puh nun endlich geschafft - war doch ein etwas harter brocken.
für die die es interessiert oder die das auch mal machen wollen:

OS: gentoo

emerge --sync
useflags anpassen (threads mpm-worker -sharedmem)
emerge -avDN world

recompile vom system, rekonfigurierung apache da noch als zusätzlicher stein die 2.2 stable geworden ist und sich viele module namentlich geändert haben grml ...

wegen dem apache 2.2 update ist nun auch suPHP 0.6.1 inkompatibel - also download von 0.6.2-r2 und recompile.
hier vorsicht: gentoo hat nun beim 2.2 eine apr-1-config ins spiel gebracht. damit die apr-0-config einträge nicht ungültig werden bleibt jene am sys und suphp konfiguriert entsprehend falsch - mit zusatz flag auf apr-1 hinweisen dann klappts ohne dass die ganze zeit alle prozesse abstürzen :roll:


nun aber eine frage an euch: gibts eine möglichkeit zu sehen wie produktiv entsprechend die einstellungen von mpm-worker arbeiten? für eventuelles tuning etc?

kann euch das hier z.B. als info anbieten aber das sagt im grunde ja nichts aus

Code: Select all

Server Settings

Server Version: Apache/2.2.6 (Unix) PHP/5.2.4-pl2-gentoo
Server Built: Sep 19 2007 08:49:51
Module Magic Number: 20051115:5
Hostname/port: xxxx:80
Timeouts: connection: 300    keep-alive: 300
MPM Name: Worker
MPM Information: Max Daemons: 1 Threaded: yes Forked: yes
Server Architecture: 32-bit
Server Root: /usr/lib/apache2
Config File: /etc/apache2/httpd.conf
Server Built With: -D APACHE_MPM_DIR="server/mpm/worker" -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D HTTPD_ROOT="/usr" -D SUEXEC_BIN="/usr/sbin/suexec" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types" -D SERVER_CONFIG_FILE="/etc/apache2/httpd.conf"

TecServer
Anbieter
Posts: 91
Joined: 2006-04-08 21:41

Re: durchgehende Apache2 auslastung

Post by TecServer » 2007-09-19 10:20

weitere frage: auf einem anderen server habe ich zusätzlich noch svn über apache authentifizierung. beim herumgoogeln von fehlermeldungen ist mir ein thread aufgefallen der davon spricht dass mpm-worker und svn über apache authentifizierung absolut nicht funktioniert. (sehr fehleranfällig)
Habt ihr dazu irgendwelche erfahrungsberichte oder könnt was genaueres sagen? denn dann schalt ich den apache nicht auf worker um :-/

In dem thread stand auch dass man statt worker prefork nehmen soll dann läuft das mit svn fehlerfrei. wo ist eigentlich der wesentliche unterschied zwischen worker und prefork. weiters: wie groß ist der performance unterschied zwischen normal - worker - prefork.

vielen dank für eure bemühungen :) wart mir echt eine hilfe!

User avatar
daemotron
Administrator
Administrator
Posts: 2635
Joined: 2004-01-21 17:44

Re: durchgehende Apache2 auslastung

Post by daemotron » 2007-09-19 10:43

Worker und Prefork unterscheiden sich im wesentlichen durch die Implementierung des Multi-Prozess-Modells. Prefork arbeitet ohne Threads und spawnt (falls nötig) neue Prozesse, während Worker innerhalb bestehender Prozesse Threads forkt. Worker ist potenziell performanter, da Threads nicht ganz so viel Overhead erzeugen wie Prozesse. Worker setzt aber voraus, dass alle eingesetzten Module auch Thread-safe sind, was nicht auf alle verfügbaren Apache-Module zutrifft. Wie das mit WebDAV und den ganzen mod_auth* Geschichten aussieht, weiß ich im Einzelnen allerdings nicht (das sind ja die Module, die für eine SVN-Anbindung benötigt würden).

TecServer
Anbieter
Posts: 91
Joined: 2006-04-08 21:41

Re: durchgehende Apache2 auslastung

Post by TecServer » 2007-09-20 12:46

grüß euch,

hab jetzt wie folgt das system:

Code: Select all

MPM Name: Prefork 
MPM Information: Max Daemons: 150 Threaded: no Forked: yes


aber bei 13.4 requests pro sekunde ist das dual core system immer noch bei 100% auslastung auf beiden kernen und die load bei ca 7 bis 10.

hat einer von euch noch eine idee worans liegen kann?

liegts eventuell am suPHP dass dementsprechend die ausführung so lange dauert? dann drop ich lieber suPHP und stell auf mod_php um

oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim

Re: durchgehende Apache2 auslastung

Post by oxygen » 2007-09-20 12:56

Das hängt natürlich auch von den PHP-Scripts etc ab. Grundsätzlich ist suPHP natürlich verglichen mit mod_php und FastCGI nicht sehr performat. Aber ob das nun der Auslöser ist, ist schwer zu sagen.

TecServer
Anbieter
Posts: 91
Joined: 2006-04-08 21:41

Re: durchgehende Apache2 auslastung

Post by TecServer » 2007-09-23 18:50

hab nun suphp ausgetauscht gegen mod_php und siehe da - CPU auslastung von 100% auf 1%

durch den overhead beim laden der suphp binary und durch die ausführungen, kombiniert mit der großen hitzahl ist wohl diese auslastung entstanden. tragisch dass sowas gutes so eine hohe auslastung verursacht :(

rootsvr
Posts: 538
Joined: 2005-09-02 11:12

Re: durchgehende Apache2 auslastung

Post by rootsvr » 2007-09-25 00:22

versuchs halt mit suexec/fastcgi.. das sollte nicht viel langsamer sein als mod-php.