Server Swapt

haschi

Registered User
Moin!

Auf unserem Webserver wird alle paar Tage geswapt, zwar nicht viel, aber schön finde ich das nicht. Nun finde ich den Grund einfach nicht und entsprechend auch keine Lösung.

Debian 5 in einer VM, 5GB RAM, Host ist ESXi
Der Server wird als Webserver genutzt, hauptsächlich läuft dort nur der Apache. MySQL, Mail etc. sind nicht installiert.

apache2.conf
Code:
    StartServers          3
    MinSpareServers       5
    MaxSpareServers       15
    ServerLimit		 150
    MaxClients           150
    MaxRequestsPerChild 500

Wo könnte ich nun das Problem suchen? Hab den Apache auch schon eine Woche mit folgender Konfiguration laufen lassen, wurde nicht besser. Der RAM war anfangs auf 4GB gesetzt, nun seit einigen Wochen auf 5GB.
Code:
    StartServers          1
    MinSpareServers       1
    MaxSpareServers       5
    ServerLimit		 150
    MaxClients           150
    MaxRequestsPerChild 500

Würde mich über Hilfe freuen! :)

Viele Grüße
Marco
 

Attachments

  • server01.png
    server01.png
    43.2 KB · Views: 151
Arbeiten Sie mir FastCGI oder PHP-CGI, welches unmengen an Prozessen erzeugt? Denn die Menge der Prozesse ist mit ausschlaggebend für die Auslastung des Arbeitsspeichers. Ich gehe davon aus, dass Sie mit geswapt die Auslagerung von Datenmengen und den SWAP Speicher meinen, welcher nur in Anspruch genommen wir, wenn die Kapazitäten des Arbeitsspeichers erschöpft sind.
 
Danke für die Antwort.

Nein, wir arbeiten nicht mit CGI.

Hier mal eine aktuelle Ausgabe von top
Code:
top - 14:10:22 up 33 days, 13:17,  1 user,  load average: 0.52, 0.27, 0.20
Tasks:  90 total,   1 running,  89 sleeping,   0 stopped,   0 zombie
Cpu(s): 11.3%us,  0.6%sy,  0.0%ni, 87.8%id,  0.0%wa,  0.1%hi,  0.2%si,  0.0%st
Mem:   5100152k total,  4911772k used,   188380k free,   192788k buffers
Swap:  2192832k total,     4780k used,  2188052k free,  3658576k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                         
 9298 www-data  20   0  322m  31m  11m S   11  0.6   0:00.48 apache2                                          
 9113 www-data  20   0  328m  37m  11m S   11  0.8   0:02.04 apache2                                          
 9300 www-data  20   0  323m  31m  11m S    7  0.6   0:00.22 apache2                                          
 9299 www-data  20   0  322m  30m  11m S    7  0.6   0:00.20 apache2                                          
 9146 www-data  20   0  323m  32m  11m S    4  0.6   0:00.44 apache2                                          
 9150 www-data  20   0  323m  32m  12m S    3  0.6   0:00.32 apache2                                          
 8544 www-data  20   0  322m  34m  14m S    1  0.7   0:04.68 apache2                                          
 9131 www-data  20   0  323m  33m  12m S    1  0.7   0:00.48 apache2                                          
 9132 www-data  20   0  322m  31m  11m S    1  0.6   0:00.80 apache2                                          
 9140 www-data  20   0  321m  31m  12m S    1  0.6   0:00.76 apache2                                          
 9142 www-data  20   0  325m  34m  12m S    1  0.7   0:00.54 apache2                                          
 9151 www-data  20   0  322m  31m  11m S    1  0.6   0:00.62 apache2                                          
    1 root      20   0 10312  748  620 S    0  0.0   0:17.90 init                                             
    2 root      15  -5     0    0    0 S    0  0.0   0:00.20 kthreadd                                         
    3 root      RT  -5     0    0    0 S    0  0.0   0:02.22 migration/0                                      
    4 root      15  -5     0    0    0 S    0  0.0   0:03.32 ksoftirqd/0                                      
    5 root      RT  -5     0    0    0 S    0  0.0   0:00.62 watchdog/0                                       
    6 root      RT  -5     0    0    0 S    0  0.0   0:03.10 migration/1

und hier einmal ps aux
Code:
ps aux | grep apache2
root      1609  0.0  0.3 314656 17500 ?        Ss   Jan09  11:51 /usr/sbin/apache2 -k start
www-data  9101  0.4  0.6 331304 34512 ?        S    14:07   0:01 /usr/sbin/apache2 -k start
www-data  9113  1.2  0.7 336652 39476 ?        S    14:08   0:02 /usr/sbin/apache2 -k start
www-data  9135  1.2  0.6 331716 33708 ?        S    14:09   0:01 /usr/sbin/apache2 -k start
www-data  9140  0.9  0.6 330092 32828 ?        S    14:09   0:01 /usr/sbin/apache2 -k start
www-data  9142  1.2  0.7 332892 36292 ?        S    14:09   0:01 /usr/sbin/apache2 -k start
www-data  9151  0.8  0.6 331076 33052 ?        S    14:09   0:00 /usr/sbin/apache2 -k start
www-data  9301  1.4  0.6 331860 33496 ?        S    14:10   0:01 /usr/sbin/apache2 -k start
www-data  9303  0.5  0.6 331332 33464 ?        S    14:10   0:00 /usr/sbin/apache2 -k start
www-data  9306  1.3  0.6 331708 33472 ?        S    14:10   0:01 /usr/sbin/apache2 -k start
www-data  9310  0.6  0.6 331432 33072 ?        S    14:10   0:00 /usr/sbin/apache2 -k start
www-data  9372  0.4  0.6 331232 32456 ?        S    14:11   0:00 /usr/sbin/apache2 -k start
www-data  9373  1.2  0.6 330044 31840 ?        S    14:11   0:00 /usr/sbin/apache2 -k start
www-data  9377  0.1  0.4 320956 20700 ?        S    14:11   0:00 /usr/sbin/apache2 -k start
www-data  9378  0.8  0.6 331484 33048 ?        S    14:11   0:00 /usr/sbin/apache2 -k start
www-data  9380  0.0  0.1 314788  9352 ?        S    14:11   0:00 /usr/sbin/apache2 -k start
www-data  9381  3.5  0.6 330704 32696 ?        S    14:11   0:00 /usr/sbin/apache2 -k start
www-data  9382 10.7  0.6 330096 32388 ?        S    14:11   0:01 /usr/sbin/apache2 -k start
www-data  9384  0.0  0.1 314788  9328 ?        S    14:11   0:00 /usr/sbin/apache2 -k start
www-data  9385  0.9  0.6 330356 30628 ?        S    14:11   0:00 /usr/sbin/apache2 -k start
www-data  9388  2.6  0.6 329516 30956 ?        S    14:11   0:00 /usr/sbin/apache2 -k start
www-data  9390  0.8  0.6 331224 32072 ?        S    14:11   0:00 /usr/sbin/apache2 -k start
www-data  9391  0.8  0.6 330632 31096 ?        S    14:11   0:00 /usr/sbin/apache2 -k start
www-data  9392  1.1  0.6 331264 32524 ?        S    14:11   0:00 /usr/sbin/apache2 -k start
www-data  9393  0.8  0.5 329592 29532 ?        S    14:11   0:00 /usr/sbin/apache2 -k start
www-data  9394  0.0  0.1 314788  9328 ?        S    14:11   0:00 /usr/sbin/apache2 -k start
1000      9399  0.0  0.0   5608   700 pts/0    D+   14:11   0:00 grep apache2
 
ok, in dem Fall Tippe ich einmal auf mod_php in Zusammenhang mit suexec :)

Was hier eventuell helfen könnte wäre in der apache2.conf folgende Werte zu prüfen:

# 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 5

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


Apacheseitig kann man auf so etwas leider nur sehr begrenzt Einfluss nehmen. Eine weitere Option wäre eventuell einmal die Cash Module von Apache zu aktivieren - mem_cache / cache.


Ansonsten scheinen auf den Server ziemlich viele Zugriffe zu erfolgen, daher käme man, wenn man den SWAP Speicher nicht nutzen möchte, um eine Optimierung der Webseite oder mehr Arbeitsspeicher wohl nicht herum.
 
Optimierung der Webseite ist immer so einfach gesagt! :D Das ist ein stetiger Prozess ;)

Habe jetzt mod_cache aktiviert und werde das Verhalten mal beobachten.
MaxKeepAliveRequests und KeepAliveTimeout und sind bereits auf die genannten werde gesetzt. Hab ich oben vergessen zu posten :o

Arbeitsspeicher habe ich noch etwas in Reserve.
Danke! :)
 
Ich weis nicht, ob das Debian Paket so etwas auch beinhaltet, aber bei Ubuntu gibt es noch zusätzlich:

/etc/init.d/apache2 start-htcacheclean
 
"Unschön" ist kein Grund hier einen großen Aufwand zu betreiben....
Wenn der Kernel bemerkt, dass er bestimmte Pages des Speichers auslagern kann, da sie absolut selten gebraucht werden und dafür einen Performance-Gewinn erhält, da dadurch mehr Platz für Pufferspeicher vorhanden ist, ist das absolut in Ordnung und kein Grund zur Sorge. Das Linux-Memorymanagment ist ziemlich ausgereift.

Gedanken sollte man sich allerdings machen, wenn ständig Seiten rein- und raus "gepaged" werden, was man leicht mit dem Befehl vmstat (-> "man vmstat") überprüfen kann.
 
Sicher sollte man sich keine Sorgen machen, gerade, wenn noch ausreichend SWAP Speicher zur Verfügung steht. Allerdings ist der HDD Speicher um ein vielfaches langsamer und die Auslagerung in den SWAP ein Zeigen dafür, dass nicht ausreichend Arbeitsspeicher vorhanden ist. Also kann man schauen, ob man laufende Anwendungen noch weiter optimieren kann oder aber gleich den Arbeitsspeicher hochrüsten.
 
Back
Top