naro370
Goto Top

SUSE Webserver - Apache benötigt viel zuviel RAM

SUSE 11, aktuelle patches
1,5GB RAM - vmware

Hallo

Ich habe ein Problem mit einem Suse Webserver. Dieser ist von der Config noch ziemlich auf Default. Trotzdem verbraucht er sehr viel RAM.
Am Anfang: httpd2-prefork (6) 8.5 MB
Nach ein paar Zugriffen: httpd2-prefork (9) 98.2 MB
Nach noch mehr Zugriffen: httpd2-prefork (25) 318.8 MB
Nach kurzer Zeit wieder: httpd2-prefork (11) 119.9 MB

Im Moment ist der Webserver unereichbar. Wenn aber alle User drauf zugreifen (ca. 12000 Zugriffe/Tag) dann frißt er immer mehr RAM bis er anfängt zu swapen. Sobald er dies tut, ist er logischerweiße so gut wie tot (Load >80).
Natürlich hab ich schon versucht die server-tuning.conf anzupassen damit er weniger braucht. Aber das hatte nur den effekt das er entweder noch mehr RAM braucht oder sehr instabil läuft.

Kennt jemand das Problem bzw. weiß jemand wie man den Apache in diesem Fall richtig konfiguriert?

Die aktuelle Config kann ich leider nicht wegen der Forumsbeschränkung nicht hochladen. Aber hier ist zumindest die server-tuning.conf:
##
## Server-Pool Size Regulation (MPM specific)
## 

# the MPM (multiprocessing module) is not a dynamically loadable module in the
# sense of other modules. It is a compile time decision which one is used. We
# provide different apache2 MPM packages, containing different httpd2 binaries
# compiled with the available MPMs. See APACHE_MPM in /etc/sysconfig/apache2.

# prefork MPM
<IfModule prefork.c>
	# number of server processes to start
	# http:{{comment_single_line_double_slash:0}}
	StartServers         5
	# minimum number of server processes which are kept spare
	# http:{{comment_single_line_double_slash:1}}
	MinSpareServers      5
	# maximum number of server processes which are kept spare
	# http:{{comment_single_line_double_slash:2}}
	MaxSpareServers     10
	# highest possible MaxClients setting for the lifetime of the Apache process.
	# http:{{comment_single_line_double_slash:3}}
	ServerLimit        150
	# maximum number of server processes allowed to start
	# http:{{comment_single_line_double_slash:4}}
	MaxClients         150
	# maximum number of requests a server process serves
	# http:{{comment_single_line_double_slash:5}}
	MaxRequestsPerChild  10000
</IfModule>

# worker MPM
<IfModule worker.c>
	# initial number of server processes to start
	# http:{{comment_single_line_double_slash:0}}
	StartServers         3
	# minimum number of worker threads which are kept spare
	# http:{{comment_single_line_double_slash:7}}
	MinSpareThreads     25
	# maximum number of worker threads which are kept spare
	# http:{{comment_single_line_double_slash:8}}
	MaxSpareThreads     75 
	# upper limit on the configurable number of threads per child process
	# http:{{comment_single_line_double_slash:9}}
	ThreadLimit         64
	# maximum number of simultaneous client connections
	# http:{{comment_single_line_double_slash:4}}
	MaxClients         150
	# number of worker threads created by each child process
	# http:{{comment_single_line_double_slash:11}}
	ThreadsPerChild     25
	# maximum number of requests a server process serves
	# http:{{comment_single_line_double_slash:5}}
	MaxRequestsPerChild  10000
</IfModule>


#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.  
#
KeepAlive On

#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100

#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 15

#
# EnableMMAP: Control whether memory-mapping is used to deliver
# files (assuming that the underlying OS supports it).
# The default is on; turn this off if you serve from NFS-mounted
# filesystems.  On some systems, turning it off (regardless of
# filesystem) can improve performance; for details, please see
# http://httpd.apache.org/docs-2.2/mod/core.html#enablemmap
#
#EnableMMAP off

#
# EnableSendfile: Control whether the sendfile kernel support is
# used  to deliver files (assuming that the OS supports it).
# The default is on; turn this off if you serve from NFS-mounted
# filesystems.  Please see
# http://httpd.apache.org/docs-2.2/mod/core.html#enablesendfile
#
#EnableSendfile off

<IfModule mod_setenvif.c>
	#
	# The following directives modify normal HTTP response behavior to
	# handle known problems with browser implementations.
	#
	BrowserMatch "Mozilla/2" nokeepalive  
	BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0  
	BrowserMatch "RealPlayer 4\.0" force-response-1.0  
	BrowserMatch "Java/1\.0" force-response-1.0  
	BrowserMatch "JDK/1\.0" force-response-1.0  

	#
	# The following directive disables redirects on non-GET requests for
	# a directory that does not include the trailing slash.  This fixes a 
	# problem with Microsoft WebFolders which does not appropriately handle 
	# redirects for folders with DAV methods.
	# Same deal with Apple's DAV filesystem and Gnome VFS support for DAV.  
	#
	BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully  
	BrowserMatch "^WebDrive" redirect-carefully  
	BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully  
	BrowserMatch "^gnome-vfs" redirect-carefully  
</IfModule>

Content-ID: 122901

Url: https://administrator.de/forum/suse-webserver-apache-benoetigt-viel-zuviel-ram-122901.html

Ausgedruckt am: 23.12.2024 um 01:12 Uhr

Top44
Top44 17.08.2009 um 22:47:49 Uhr
Goto Top
Setzt du irgendwein Panel ala Confixx oder sowas ein ?

Wenn Nein : Lighttpd oder Ngingx, beide mit ziemlicher Sicherheit schneller und Ressourcenschonender als der Indianer.

Wenn Ja : Conf anpassen sogut es geht und mal den mpm-worker ausprobieren.


Grüße
Naro370
Naro370 18.08.2009 um 10:28:51 Uhr
Goto Top
Zitat von @Top44:
Setzt du irgendwein Panel ala Confixx oder sowas ein ?

Wenn Nein : Lighttpd oder Ngingx, beide mit ziemlicher Sicherheit
schneller und Ressourcenschonender als der Indianer.

Wenn Ja : Conf anpassen sogut es geht und mal den mpm-worker
ausprobieren.


Grüße
Nein ich setze kein Confixx oder sowas in der richtung ein.
Ich will schon beim Apache bleiben da ich mich mit diesem besser auskenne. Unter Debian läuft er mit max 100 MB stabil und schnell. Nur unter SUSE zickt er so rum.
Naro370
Naro370 20.08.2009 um 10:20:45 Uhr
Goto Top
Setzt keiner von euch einen SUSE Webserver ein?
Top44
Top44 20.08.2009 um 11:59:35 Uhr
Goto Top
Naja, ich und viele andere die ich kenne setzten für die Serverumgebung ausschliesslich Debian ein.

Du könntest wie ich schon vorschlug mal MPM-Worker versuchen.


Grüße
Naro370
Naro370 20.08.2009 um 17:23:27 Uhr
Goto Top
Debian würde ich auch gerne einsetzen ... doch leider gibt es keine richtige Support Struktur dahinter und somit darf ich es nicht face-sad

Entschuldigung das habe ich vergessen zu schreiben. Ich wollte umstellen aber als ich im yast den prefork entfernen und den mpm-worker installieren wollte hat er gesagt das er php5 auch deinstallieren muss weil php5 von prefork abhängig ist -.- und da ich php5 unbedingt benötige konnte ich nicht umstellen.
Top44
Top44 20.08.2009 um 21:23:16 Uhr
Goto Top
Wo ist das Problem ? Ich habe SuSe noch nie eingesetzt, von daher kenne ich es nicht, aber dr. google hat mir soeben auf die Sprünge geholfen :

Prefork deinstallieren mit allen abhängigkeiten ( php etc.pp ) worker installieren und danach php.

grüße
Naro370
Naro370 21.08.2009 um 14:59:14 Uhr
Goto Top
Hmm da es sowieso eine VMware Maschine ist kann ich es ohne große Risiken mal testen. Mich hat nur verwundert das im PHP5 Packet explicit drinnen steht das er den Prefork braucht.

Kann dies aber erst am Montag testen. Ich melde mich dann wieder.
holli.zimmi
holli.zimmi 03.03.2016 aktualisiert um 10:54:19 Uhr
Goto Top
Hi,

Hmm da es sowieso eine VMware Maschine ist kann ich es ohne große Risiken mal testen. Mich hat nur verwundert das im PHP5
Packet explicit drinnen steht das er den Prefork braucht.

Kann dies aber erst am Montag testen. Ich melde mich dann wieder.

Wie ist der Status dazu?

gruß

Holli
Naro370
Naro370 03.03.2016 um 10:56:30 Uhr
Goto Top
Der Status dazu war damals, dass ich damit nicht weitergekommen bin.
Workaround: Regelmäßiger Reboot des Servers jede Woche
Lösung: Umstieg auf Debian, seitdem keine Probleme mehr (SUSE wurde mittlerweile komplett verbannt bei uns)