gelöst 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:
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:
01.
##
02.
## Server-Pool Size Regulation (MPM specific)
03.
##
04.
05.
# the MPM (multiprocessing module) is not a dynamically loadable module in the
06.
# sense of other modules. It is a compile time decision which one is used. We
07.
# provide different apache2 MPM packages, containing different httpd2 binaries
08.
# compiled with the available MPMs. See APACHE_MPM in /etc/sysconfig/apache2.
09.
10.
# prefork MPM
11.
<IfModule prefork.c>
12.
# number of server processes to start
13.
# http://httpd.apache.org/docs/2.2/mod/mpm_common.html#startservers
14.
StartServers 5
15.
# minimum number of server processes which are kept spare
16.
# http://httpd.apache.org/docs/2.2/mod/prefork.html#minspareservers
17.
MinSpareServers 5
18.
# maximum number of server processes which are kept spare
19.
# http://httpd.apache.org/docs/2.2/mod/prefork.html#maxspareservers
20.
MaxSpareServers 10
21.
# highest possible MaxClients setting for the lifetime of the Apache process.
22.
# http://httpd.apache.org/docs/2.2/mod/mpm_common.html#serverlimit
23.
ServerLimit 150
24.
# maximum number of server processes allowed to start
25.
# http://httpd.apache.org/docs/2.2/mod/mpm_common.html#maxclients
26.
MaxClients 150
27.
# maximum number of requests a server process serves
28.
# http://httpd.apache.org/docs/2.2/mod/mpm_common.html#maxrequestsperchild
29.
MaxRequestsPerChild 10000
30.
</IfModule>
31.
32.
# worker MPM
33.
<IfModule worker.c>
34.
# initial number of server processes to start
35.
# http://httpd.apache.org/docs/2.2/mod/mpm_common.html#startservers
36.
StartServers 3
37.
# minimum number of worker threads which are kept spare
38.
# http://httpd.apache.org/docs/2.2/mod/mpm_common.html#minsparethreads
39.
MinSpareThreads 25
40.
# maximum number of worker threads which are kept spare
41.
# http://httpd.apache.org/docs/2.2/mod/mpm_common.html#maxsparethreads
42.
MaxSpareThreads 75
43.
# upper limit on the configurable number of threads per child process
44.
# http://httpd.apache.org/docs/2.2/mod/mpm_common.html#threadlimit
45.
ThreadLimit 64
46.
# maximum number of simultaneous client connections
47.
# http://httpd.apache.org/docs/2.2/mod/mpm_common.html#maxclients
48.
MaxClients 150
49.
# number of worker threads created by each child process
50.
# http://httpd.apache.org/docs/2.2/mod/mpm_common.html#threadsperchild
51.
ThreadsPerChild 25
52.
# maximum number of requests a server process serves
53.
# http://httpd.apache.org/docs/2.2/mod/mpm_common.html#maxrequestsperchild
54.
MaxRequestsPerChild 10000
55.
</IfModule>
56.
57.
58.
#
59.
# KeepAlive: Whether or not to allow persistent connections (more than
60.
# one request per connection). Set to "Off" to deactivate.
61.
#
62.
KeepAlive On
63.
64.
#
65.
# MaxKeepAliveRequests: The maximum number of requests to allow
66.
# during a persistent connection. Set to 0 to allow an unlimited amount.
67.
# We recommend you leave this number high, for maximum performance.
68.
#
69.
MaxKeepAliveRequests 100
70.
71.
#
72.
# KeepAliveTimeout: Number of seconds to wait for the next request from the
73.
# same client on the same connection.
74.
#
75.
KeepAliveTimeout 15
76.
77.
#
78.
# EnableMMAP: Control whether memory-mapping is used to deliver
79.
# files (assuming that the underlying OS supports it).
80.
# The default is on; turn this off if you serve from NFS-mounted
81.
# filesystems. On some systems, turning it off (regardless of
82.
# filesystem) can improve performance; for details, please see
83.
# http://httpd.apache.org/docs-2.2/mod/core.html#enablemmap
84.
#
85.
#EnableMMAP off
86.
87.
#
88.
# EnableSendfile: Control whether the sendfile kernel support is
89.
# used to deliver files (assuming that the OS supports it).
90.
# The default is on; turn this off if you serve from NFS-mounted
91.
# filesystems. Please see
92.
# http://httpd.apache.org/docs-2.2/mod/core.html#enablesendfile
93.
#
94.
#EnableSendfile off
95.
96.
<IfModule mod_setenvif.c>
97.
#
98.
# The following directives modify normal HTTP response behavior to
99.
# handle known problems with browser implementations.
100.
#
101.
BrowserMatch "Mozilla/2" nokeepalive
102.
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
103.
BrowserMatch "RealPlayer 4\.0" force-response-1.0
104.
BrowserMatch "Java/1\.0" force-response-1.0
105.
BrowserMatch "JDK/1\.0" force-response-1.0
106.
107.
#
108.
# The following directive disables redirects on non-GET requests for
109.
# a directory that does not include the trailing slash. This fixes a
110.
# problem with Microsoft WebFolders which does not appropriately handle
111.
# redirects for folders with DAV methods.
112.
# Same deal with Apple's DAV filesystem and Gnome VFS support for DAV.
113.
#
114.
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
115.
BrowserMatch "^WebDrive" redirect-carefully
116.
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
117.
BrowserMatch "^gnome-vfs" redirect-carefully
118.
</IfModule>
9 Antworten
- LÖSUNG Top44 schreibt am 17.08.2009 um 22:47:49 Uhr
- LÖSUNG Naro370 schreibt am 18.08.2009 um 10:28:51 Uhr
- LÖSUNG Naro370 schreibt am 20.08.2009 um 10:20:45 Uhr
- LÖSUNG Top44 schreibt am 20.08.2009 um 11:59:35 Uhr
- LÖSUNG Naro370 schreibt am 20.08.2009 um 17:23:27 Uhr
- LÖSUNG Top44 schreibt am 20.08.2009 um 21:23:16 Uhr
- LÖSUNG Naro370 schreibt am 21.08.2009 um 14:59:14 Uhr
- LÖSUNG holli.zimmi schreibt am 03.03.2016 um 09:21:51 Uhr
- LÖSUNG Naro370 schreibt am 03.03.2016 um 10:56:30 Uhr
- LÖSUNG holli.zimmi schreibt am 03.03.2016 um 09:21:51 Uhr
- LÖSUNG Naro370 schreibt am 21.08.2009 um 14:59:14 Uhr
- LÖSUNG Top44 schreibt am 20.08.2009 um 21:23:16 Uhr
- LÖSUNG Naro370 schreibt am 20.08.2009 um 17:23:27 Uhr
- LÖSUNG Top44 schreibt am 20.08.2009 um 11:59:35 Uhr
LÖSUNG 17.08.2009 um 22:47 Uhr
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
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
LÖSUNG 18.08.2009 um 10:28 Uhr
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.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
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.
LÖSUNG 20.08.2009 um 10:20 Uhr
Setzt keiner von euch einen SUSE Webserver ein?
LÖSUNG 20.08.2009 um 11:59 Uhr
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
Du könntest wie ich schon vorschlug mal MPM-Worker versuchen.
Grüße
LÖSUNG 20.08.2009 um 17:23 Uhr
Debian würde ich auch gerne einsetzen ... doch leider gibt es keine richtige Support Struktur dahinter und somit darf ich es nicht
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.
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.
LÖSUNG 20.08.2009 um 21:23 Uhr
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
Prefork deinstallieren mit allen abhängigkeiten ( php etc.pp ) worker installieren und danach php.
grüße
LÖSUNG 21.08.2009 um 14:59 Uhr
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.
Kann dies aber erst am Montag testen. Ich melde mich dann wieder.
LÖSUNG 03.03.2016, aktualisiert um 10:54 Uhr
Hi,
Wie ist der Status dazu?
gruß
Holli
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.
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
LÖSUNG 03.03.2016 um 10:56 Uhr
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)
Workaround: Regelmäßiger Reboot des Servers jede Woche
Lösung: Umstieg auf Debian, seitdem keine Probleme mehr (SUSE wurde mittlerweile komplett verbannt bei uns)
Ähnliche Inhalte
Neue Wissensbeiträge
Heiß diskutierte Inhalte