Dies ist eine alte Version des Dokuments!
Tipp: Wenn man Änderungen an der Apache-Konfiguration vorgenommen hat, muss der Webserver neu gestartet werden. Das kann Apache 2 auch ohne, dass alle laufenden Verbindungen (und damit Befragungen) unterbrochen werden.
apache2ctl graceful
– allerdings ist der Server dann für einige Sekunden nicht erreichbar.apache2ctl -t
/etc/init.d/apache2 reload
Ein Webserver zeigt einem Nutzer/Besucher im Idealfall nur das, was der Besucher sehen soll. Vor allem sieht man „von außen“ nicht, wo die Daten tatsächlich auf dem Server liegen.
Beim Installationsverzeichnis muss man also unterscheiden, wo dieses Verzeichnis intern liegt (z.B. /var/www/sosci/) und unter welchem Namen es extern aufgerufen wird (z.B. http://www.domain.tld/survey/). Damit ein Verzeichnis „von außen“ via HTTP oder HTTPS sichtbar ist, haben Sie mindestens zwei Möglichkeiten:
Alias
ein beliebiges Verzeichnis auf dem Server frei. Eine entsprechende Anweisung in der Datei httpd.conf könnte etwa aussehen wie folgt.Alias /survey "C:/Daten/SoSci" <Directory "C:/Daten/SoSci"> AllowOverride All Options MultiViews Order allow,deny Allow from all </Directory>
Hinweis: Das Alias ist erst nach einem Neustart des Servers oder einem Neuladen der Konfiguration verfügbar.
Auf den Befragungsserver greifen im Idealfall sehr viele Personen gleichzeitig zu. Daher ist es notwendig, dass viele Verbindungen gleichzeitig geöffnet werden können - sind alle Verbindungen belegt, erhalten weitere Nutzer oder auch die Projektverwalter keine Antwort vom Server mehr und entsprechend eine Fehlermeldung des Browsers, der Server sei nicht erreichbar.
Hinzu kommt, dass SoSci Survey ein umfangreiches Paket ist, das auch ein gewisses Maß an Speicher und Rechenzeit benötigt. Dadurch ist die maximale Anzahl an Webserver-Prozessen beschränkt.
Sofern der Server im Betriebsmodus worker
betrieben werden kann, erlaubt dies bei gleicher Speicherausstattung mehr offene Verbindungen. Allerdings ist dafür eine Umstellung vom PHP-Modul auf CGI notwendig: Apache2 Worker mit PHP und fcgid (FastCGI)
Für einen Webserver mit 1 GB (4 GB) Arbeitsspeicher haben sich für den Betriebsmodus prefork
folgende Apache-Einstellungen bewährt:
MaxClients 40
(50)MaxSpareServers 16
(30)MaxRequestsPerChild 10000
KeepAlive On
MaxClients
) ohnehin schon knapp bemessen sind.KeepAliveTimeout 1
Nachfolgend einige Skripte, die bei der Überwachung der Server-Leistung gute Dienste leisten.
Dieses Script einfach alle 15 Minuten via Crontab aufrufen:
#!/bin/sh # /usr/bin/uptime >> /var/log/uptime.log uptime=`/usr/bin/uptime` date=`date -I` echo $date $uptime >> /var/log/uptime.log
Via Crontab einmalig beim Server-Neustart (@reboot) aufrufen
#!/bin/sh date=`date +"%Y-%m-%d %H:%M:%S"` echo "" >> /var/log/vmstat.log echo $date >> /var/log/vmstat.log /usr/bin/vmstat -n 300 >> /var/log/vmstat.log &
Zum Überprüfen des verfügbaren RAM-Speichers auf einem V-Server (Script 3).
Quelle: devnulled.
#!/bin/bash bean=`cat /proc/user_beancounters` guar=`echo "$bean" | grep vmguar | awk '{ print $4;}'` burst=`echo "$bean" | grep privvm | awk '{ print $5;}'` priv=`echo "$bean" | grep privvm | awk '{ print $2;}'` privmax=`echo "$bean" | grep privvm | awk '{ print $3;}'` let total=guar/256 let used=priv/256 let max=privmax/256 let burst=burst/256 echo "VPS memory usage:" echo "Used: $used MB (max $max MB)" echo "Total: $total MB" echo "Burstable to: $burst MB"