Kategorien
Infrastruktur Performance Webserver

Schnellere Antwortzeiten mit dem LiteSpeed Web Server

In den Monaten November und Dezember 2015 haben wir die Auslieferung der Websites für alle Webhostings bei Novatrend deutlich beschleunigt. Möglich wurde das durch die Nutzung eines anderen Web Servers. Vor November 2015 nutzten wir ausschliesslich den Apache HTTP Server. Nach und nach haben wir dann alle Web Hostings mit dem LiteSpeed Web Server versehen.

Gemäss w3techs.com wird LiteSpeed von mehr als 2 Prozent aller Websites weltweit genutzt, Tendenz steigend (http://w3techs.com/technologies/overview/web_server/all).

Usage of web servers for websites
Usage of web servers for websites

Mit Hilfe von Services wie site24x7.com kann man Antwortzeiten von Websites messen. Unser Kunde Adi Heutschi hat das für seine beiden Sites arbeitsrentner.ch und adiheutschi.ch mal genauer untersucht. Im Zeitraum der Untersuchung hat er seine Sites auf SSL umgestellt und wir haben den Web Server ausgetauscht. Alle Screenshots sind von Adi Heutschi erstellt worden.

Website – adiheutschi.ch

Die Website nutzt Joomla und läuft mit dem Apache HTTP Server. Am 18.11.2015 erhält Sie ein SSL/TLS Zertifikat und die Antwortzeiten werden größer. Hier ein Screenshot vom 19.11.2015.

adiheutschi.ch - SSL-Aktivierung/Apache
adiheutschi.ch – SSL-Aktivierung/Apache

Am 17. Dezember wird der Apache HTTP Server von unserer Seite durch den LiteSpeed Web Server ersetzt. Die Verbesserung der Antwortzeiten ist deutlich zu sehen.

adiheutschi.ch - Umstellung Apache -> LiteSpeed
adiheutschi.ch – Umstellung Apache -> LiteSpeed

Die erste Woche vom 20.12. – 26.12.2015 sieht dann so aus:

adiheutschi.ch - eine Woche - LiteSpeed mit SSL
adiheutschi.ch – eine Woche – LiteSpeed mit SSL

Website – arbeitsrentner.ch

Auch diese Site lief mit Joomla und dem Apache HTTP Server. Hier wurde SSL/TLS am 16.12.2015 um 11:00 Uhr aktiviert. Die Antwortzeiten werden grösser.

arbeitsrentner.ch - SSL-Aktivierung/Apache
arbeitsrentner.ch – SSL-Aktivierung/Apache

Am 17.12.2015, also einen Tag später wurde dann auf den LiteSpeed Server gewechselt. Die Antwortzeiten werden kürzer, es gibt aber vereinzelte Peaks (lange Antwortzeit).

arbeitsrentner.ch - Apache -> LiteSpeed
arbeitsrentner.ch – Apache -> LiteSpeed

Etwas besser kann man beide Effekte in diesem Chart sehen. Es deckt die Woche vom 13.12-19.12.2015 ab. Nach der SSL/TLS Aktivierung wird alles etwas langsamer, nach Einführung von LiteSpeed wieder schneller.

arbeitsrentner.ch - Umstellungszeitraum
arbeitsrentner.ch – Umstellungszeitraum

Wiederum eine Woche, in der Zeit vom 21.12-16.12.2015, später stabilisieren sich die Antwortzeiten im Durchschnitt auf 681 ms.

arbeitsrentner.ch - LiteSpeed Server mit SSL/TLS
arbeitsrentner.ch – LiteSpeed Server mit SSL/TLS
Hier zum Vergleich eine Woche Anfang Dezember (06.12. – 12.12.) mit dem Apache HTTP Server ohne SSL. Im Durchschnitt lagen dort die Antwortzeiten bei 869 ms, mehr als 20 Prozent besser als zuvor.

Fazit

Zunächst sagen die Werte in Millisekunden (ms) wenig über echte Antwortzeiten am Telefon oder dem heimischen PC aus, da diese von sehr vielen Faktoren abhängig sind. Interessant ist aber die sichtbare Beschleunigung nach Einsatz des LiteSpeed Web Servers.
Der Einsatz von SSL/TLS verlangsamt grundsätzlich die Auslieferung von Websites. Der LiteSpeed Web Server kann diesen Unterschied, verglichen mit dem Apache HTTP Server, jedoch mehr als ausgleichen. Durch den Einsatz von HTTP/2 (siehe auch Transportverschlüsselung und HTTP/2 für alle – kostenlos!) und weitere Massnahmen wird die Auslieferung aller Websites massiv beschleunigt. Auf der Benchmark Seite von LiteSpeed kann man das an verschiedenen Szenarien nachvollziehen (Statische Seiten, PHP – Hello World, HTTPS und mehr). Im Screenshot kannst du ein Beispiel für WordPress Sites sehen:

Benchmark - WordPress
Benchmark – WordPress

Es besteht auch die Möglichkeit den LiteSpeed Web Server auf deinem dedizierten Server und beim Cloud Hosting zu nutzen. Hier müssen wir allerdings Lizenzkosten in Höhe vom 50 CHF pro Monat erheben. Für Rückfragen kontaktiere uns einfach per E-Mail.


tl;dr: Durch einen Wechsel der Web Server Software antworten alle von uns gehosteten Websites schneller auf Anfragen

Kategorien
Performance Server

Serverauslastung mit Munin aufzeichnen

In den letzten zwei Blogeinträgen haben wir uns mit dem Thema Serverauslastung beschäftigt. Die dazu notwendigen Linux Befehle geben einen guten Überblick über die Serverauslastung zum aktuellen Zeitpunkt. Wenn Sie aber Ihren Server über einen längeren Zeitraum beobachten wollen, so kommen Sie mit den vorgestellten Methoden nicht sehr weit.

Deshalb wollen heute wir das Ganze mal auf einen anderen Level heben :).

Das Zauberwort heisst Server-Monitoring oder ganz allgemein Netzwerk-Management und es gibt zahlreiche Programme für ebenso zahlreiche Einsatzzwecke. Allein im Open Source Segment gibt es beispielsweise die Programme BigSister, Cacti, Icinga, Multi Router Traffic Grapher, Munin, Nagios, OpenNMS, Opsview, Op5 Monitor, Xymon, Zabbix und Zenoss.

Wir wollen uns in diesem Artikel exemplarisch mit Munin beschäftigen.

Der Ursprung vieler Progamme ist der Multi Router Traffic Grapher (MRTG), der HTML-Seiten erzeugt, die Grafiken enthalten. Mit Hilfe von MRTG kann so ziemlich jede Reihe von Zahlen visualisiert werden („von der Temperatur im Serverraum bis zur Anzahl der eigehenden SPAM-Mails“).

Das RRDtool bietet ein clevere Methode um Daten zu sammeln. RRD steht für Round Robin Database. Round Robin lässt sich im Deutschen mit „Rundlauf-Verfahren“ übersetzen. In unserem Fall wird eine Datenbank mit einer festen Grösse und für eine feststehende Zeitspanne angelegt (RRD-Datei). Wenn die Zeitspanne vorbei ist, wird die Datei nicht vergrössert, sondern die ältesten Einräge werden gelöscht. Man kann also beispielsweise die Daten der letzten Tage alle 5 Minuten speichern, die der letzten Monate alle 30 Minuten und die der letzten Jahre alle 6 Stunden.

Munin nutzt RRDtool zum Sammeln von Daten und besteht aus einem Server und beliebig vielen Clients. Wenn Sie nur einen Server überwachen wollen, liegen Client und Server auf einer Maschine.

In unserem Fall nutzen wir den Apache2 Webserver unter Ubuntu 14.04, Munin funktioniert aber auch mit anderen Webservern wie beispielsweise Nginx.

Installation

Zunächst muss das Paket Munin installiert werden

sudo apt-get install munin

Konfiguration

Munin muss die HTML-Dateien erzeugen, in einem Verzeichnis ablegen und der Webserver Apache muss die Seiten bei Bedarf ausliefern. Da alle Websites auf unserem Server im Verzeichnis /var/www/[domainname] liegen, werde ich die Konfigurationsdatei /etc/munin/munin.conf und die /etc/munin/apache.conf entsprechend anpassen.

sudo nano /etc/munin/munin.conf

Entfernen Sie das Kommentarzeichen # für die folgenden vier Zeilen und ändern Sie den Pfad des htlmdir .

dbdir   /var/lib/munin
htmldir /var/www/munin/
logdir /var/log/munin
rundir  /var/run/munin

Entfernen Sie ebenfalls das Kommentarzeichen für die Zeile

tmpldir /etc/munin/templates

Am Ende der Konfigurationsdatei müssen Sie noch einen Namen für den munin Dienst festlegen. Wenn Sie nur einen Server überwachen, können Sie die IP-Adresse 127.0.0.1 stehen lassen, wenn Sie mehrere Maschinen überwachen wollen, müssen Sie die IP-Adresse Ihres Servers hier eintragen.

# a simple host tree
[NOVATREND-Serverblogger-Munin]
    address 127.0.0.1
    use_node_name yes

Als nächstes müssen Sie das Verzeichnis /var/www/munin erstellen und den Benutzer munin zum Eigentümer machen.

sudo mkdir /var/www/munin
sudo chown munin:munin /var/www/munin

Dann müssen Sie in der /etc/munin/apache.conf noch ein paar Änderungen vornehmen:

sudo nano /etc/munin/apache.conf

Ändern Sie dem Pfad im Alias und im Directory Container und das Allow Kommando.

Alias /munin /var/www/munin
<Directory /var/www/munin>
  Order allow,deny
  #Allow from localhost 127.0.0.0/8  ::1 
  Allow from all 
  Options None
  ...

Nun können Sie den munin-node Client (der mitinstalliert wurde) und den Apache Webserver neu starten.

sudo service munin-node restart
sudo service apache2 restart

Wenn Sie in Ihrem Browser Ihre IP-Adresse oder einen auf Ihren Server zeigenden Domainamen eingeben, gefolgt von /munin sollte Sie die generierten HTML-Seiten mit den Auswertungen sehen. Es kann sein, dass es fünf Minuten braucht, bis die HTML Dateien erstellt sind.

In meinem Fall ist die URL https://serverblogger.ch/munin und das Ergebnis sieht so aus (Benutzer: serverblogger, Passwort serverblogger):

munin Server Monitoring
munin Server Monitoring
In den Kategorien stehen die Auswertungen basierend auf Tag, Woche, Monat und Jahr (d für day, w für week, m für month und y für year).

Die wichtigsten Antworten auf Fragen der Systemauslastung finden Sie in den Kategorien system und disk.

Zugriff schützen

Nun soll ja vermutlich nicht jeder Ihre Auswertungen sehen und darum ist in den Munin/Apache Konfigurationsdateien bereits ein Verzeichnisschutz vorbereitet. Damit das funktioniert, müssen Sie das Paket apache2-utils installieren.

sudo apt-get install apache2-utils

Nach der Installation ist es möglich, eine Datei zu erstellen, die eine Benutzer/Passwort Kombination enthält, die beim Aufruf der Munin Seiten abgefragt wird. Die Datei wird mit dem folgenden Befehl erzeugt.

sudo htpasswd -c /etc/munin/munin-htpasswd serverblogger

Als Benutzernamen und Passwort wähle ich serverblogger.

In der Konfigurationsdatei für den Apache

sudo nano /etc/munin/apache.conf

müssen noch die entsprechenden Befehle auskommentiert werden.

AuthUserFile /etc/munin/munin-htpasswd
AuthName "NOVATREND Serverblogger Munin"
AuthType Basic
require valid-user

Nun sind Ihre Daten geschützt und nur mit der Benutzername/Passwort Kombination einsehbar.

https://serverblogger.ch/munin

Benutzername/Passwort Schutz
Benutzername/Passwort Schutz
Hinweis: Der angegebene Server ist der Testserver, auf dem die Dinge, die ich hier im Blog vorstelle, ausprobiert werden. Die anzeigten Daten können daher etwas „eigentümlich“ sein ;).

Munin kann durch viele Plugins erweitert werden, beispielsweise für Apache und MySQL, aber auch für Content Management Systeme wie Drupal oder das bereits angesprochene Raspberry Pi Temperatur Plugin für die Temperatur im Serverraum oder im Gartenbeet 🙂

Links


tl;dr: Munin visualisert fast alles und bringt Erkenntnis und Farbe in den Administratoren-Alltag