Website-Performance: Sind sie zu langsam, bist du zu schwach

Website-Performance: Sind sie zu langsam, bist du zu schwach

Wenn eine Website im Laufe der Zeit langsamer wird, d.h. die Zeit, die vergeht, bis der Browser sie vollständig darstellt immer länger wird, kann das verschiedene Ursachen haben. Z.B. mehr Inhalte auf den einzelnen Seiten, neue Media-Elemente wie Flash oder Videos, nachträglich hinzugefügte funktionale Erweiterungen, externe Skripte, deren Ladezeit sich verlängert hat. Eine Ursache kann aber auch sein, dass der Server auf dem die Website läuft, an die Grenzen seiner Kapazität kommt. Beherbergt der Server mehr als eine Website, dann brauchen diese alle anteilig Speicherplatz und Rechenzeit für den Betrieb. Das bedeutet, dass die eigenen Seite auch dann langsamer werden kann, wenn an ihr überhaupt nichts verändert wurde. Der Grund: Andere auf dem Server laufende Websites brauchen zunehmend mehr Ressourcen – und damit werden alle langsamer. Aber wie kann man erkennen, ob Ressourcenknappheit eine mögliche Ursache für langsamer werdende Webseiten ist?

Linux bietet dafür das Tool TOP, mit dessen Hilfe man die aktuelle Serverberlastung überprüfen kann. Dieses Tool läßt sich über die Kommandozeile der Servers starten (in der Regel benötigt man einen SSH-Zugang zu seinem Server). Nach dem Start zeigt TOP diverse Perfomance-Werte und die aktuelle laufenden Prozesse mitsamt der von ihnen benötigten Ressourcen. Der folgende Screenshot zeigt die Auslastung eines Server, der an seine Grenzen gekommen ist. Man erkennt dies gut an den Werten für "load average" oben rechts (rot umrandet)

Serverauslastung vor Upgrade: eindeutig zu hoch

Der erste Wert ist der 1-Minuten-, der zweite der 5-Minuten- und der dritte der 15-Minuten-Durchschnitt der CPU-Auslastung. Um diese Werte sinnvoll interpretieren zu können muss man allerdings wissen, wieviele CPUs bzw. CPU-Kerne der Server besitzt. Bezogen auf einen Kern sollte der 15-Minuten-Wert auf keinen Fall über 1 steigen – falls doch empfiehlt es sich, umgehend Maßnahmen zu ergreifen, um die Last zu reduzieren. Zeit um über ein Upgrade nachzudenken wird es aber schon früher: Sobald der 15-Minuten-Wert dauerhaft bei 0,75 oder höher liegt. Der 1-Minuten-Wert sollte dauerhaft möglichst nicht über 1 steigen. Bei Servern mit mehreren CPUs/CPU-Kernen multipliziert man diese Werte jeweils mit der Zahl der CPUs bzw. Kerne.

Der Server aus unserem Beispiel hat 2 Kerne (und 6 GByte RAM). D.h. der kritische Wert liegt bei
        2 (Kerne) x 0,75 (pro Kern) = 1,5 für den 15-Minuten- bzw.
        2 (Kerne) x 1,0 (pro Kern) = 2,0 für den 1-Minuten-Durchschnitt.

Wie man sieht, liegen die tatsächlichen Werte mit 2,18 (1 Minute) und 1,63 (15-Minuten) deutlich darüber. Außerdem war auch die Speicherauslastung sehr hoch. Die 6 GByte waren praktisch ständig voll belegt, so dass der Server immer häufiger auf die Swap-Datei ausweichen musste und da diese auf einer Festplatte liegt, ist sie natürlich deutlich langsamer als Zugriffe auf den viel schnelleren RAM.

Da dieser Zustand längere Zeit anhielt, war es Zeit zu handeln. Ein Upgrade wurde durchgeführt und der alte Server durch einen deutlich leistungsfähigeren ersetzt (4 Kerne, 32 GB RAM). Die Auslastung ging anschließend schlagartig herunter, wie man auf dem nächsten Screenshot sieht:

Serverauslastung nach Upgrade: alles im grünen Bereich

Die Werte für den 1- und 15-Minuten-Durchschnitt sind jetzt auf 0,23 bzw. 0,18 gefallen und bewegten sich auch in der Folgezeit ungefähr in diesen Bereichen.

Da der neue Server 4 Kerne besitzt, liegt der kritische Wert für den 15-Minuten-Wert jetzt bei 4 x 0,75 = 3,0 und der für den 1-Minuten-Wert bei 4,0. Auch die Speicherauslastung ist deutlich besser, so sind noch rund 28 GByte verfügbar und der Swap wird überhaupt nicht benutzt. Entsprechend schneller laufen seitdem die auf diesem Server gehosteten Webseiten.