Donnerstag, den 10. Juli 2014

Leichtgweichtige und skalierbare Anwendungen

Nachdem ich in den letzten eineinhalb Jahren sehr intensiv in ein Projekt eingebunden war, bin ich kaum dazu gekommen neue Texte zu schreiben. Dieses Projekt hat mich auch dazu gebraucht über die Art und Weise wie serverseitige Anwendungen im Internet erstellt und bereitgestellt werden nachzudenken. Anwendungen die schon im regulären Betrieb viele Millionen tägliche Anfragen zu bewältigen haben und während DDOS Angriffen mehrere Millionen Anfragen in einer einzigen Minute verarbeiten müssen, vertragen lassen sich nur sehr schwer mit schwergewichtigen Webapplikationen. Wenn eine simple http-Anfrage dazu führt, dass der Server hunderte von Datenbankabfragen starten muss und nebenbei noch zehntausende php-Funktionsaufrufe starten muss, wird eine Skalierung auf die oben genannte Größenor...


Weiterlesen über: Leichtgweichtige und skalierbare Anwendungen
Kategorie: Allgemeines

Freitag, den 05. April 2013

DDOS-Angriff gegen TYPO3-Webseite abwehren

Mit wenig Handgriffen lässt sich ein Webserver mit dynamisch generierten Seiten für die Zeit des Angriffs so Umstellen, dass mit wenig Ressourcen auch sehr große Angriffe harmlos abprallen.

Einer der einfachsten Wege eine Webseite mit dynamisch generierten Inhalten lahmzulegen sind ganz einfache HTTP-Anfragen auf diese Webseite.
Eine solche Anfrage kostet wenig Ressourcen, ist für den Administrator schwer von den normalen Anfragen zu trennen und verursacht eine menge Rechenaufwand die angeforderten Seiten zu berechnen.

Kürzlich hatte ich das zweifelhafte vergnügen mit etwa 500 Anfragen pro Sekunde auf eine auf einem einzelnen Server gehosteten Webseite umgehen zu müssen.

1) Wenn herkömmliche Abwehrmechanismen fehlschlagen.

Die eleganteste Lösung einem Angriff zu begegnen wäre es keine Änderungen an der Software selbst vornehmen zu müssen.

Eine verbreitetet Ansatz ist es den Traffic auf Port 80 einzuschränken:

z.B.:<...


Weiterlesen über: DDOS-Angriff gegen TYPO3-Webseite abwehren
Kategorie: Tuning

Mittwoch, den 12. September 2012

Cache Hitrate und Zugriffsstatistiken für TYPO3 Webseite hinter Varnish aufzeichnen

Für den Erfolg der Performance-Optimierung einer Webseite durch einen Caching Proxy wie Varnish spielt die Hitrate eine große Rolle.

Bei der Optimierung einzerner Elemente einer Webseite kann es nützlich sein zu wissen wie oft bestimmte Seiten aus dem Cache bedient werden können und wie oft die Inhalte aus dem Backend geholt werden müssen.
Um die Cache-Hitrate von Einzelseiten einer TYPO3-Installation komfortabel analysieren zu können zeigt eine kleine Erweiterung die Daten direkt im Backend an.

Installation


Nachdem es mir derzeit nicht gelingen will die Erweiterung ins TER hochzuladen, findet sie sich derzeit am Ende dieses Dokuments oder im Bereich Downloads.

Voraussetzungen für den Einsatz ist, dass alle Zugriffe mit dem varnishncsa Dienst in Logfiles protokolliert werden. Das tätsächliche Format des L...


Weiterlesen über: Cache Hitrate und Zugriffsstatistiken für TYPO3 Webseite hinter Varnish aufzeichnen
Kategorie: Tuning

Samstag, den 21. Juli 2012

Ladezeiten der Webseite mit xdebug serverseitig analysieren

TYPO3 Webseite mit KCacheGrind analysieren

Die Ladezeit einer Webseite hängt zuallererst davon ab wie schnell die html-Inhalte auf dem Server bereit gestellt werden können. PHP-Anwendungen wie TYPO3 lassen sich mit Hilfe von xdebug nach Performance-Engpässen durchsuchen.

In den meisten Fällen sollte es ausreichen die Ladezeit einer Webanwendung statt auf dem Livesystem in einer Testumgebung zu untersuchen. In Einzelfällen (z.B. langsame Festplattenzugriffe, oder Engpässe beim Datenbankzugriff) kann auch die Analyse auf dem Livesystem nötig sein. Der Debugger sollte aber nicht dauerhaft aktiviert werden.

1) Testumgebung einrichten

Xdebug selbst gibt es für die meisten Distributionen als fertiges Paket. Unter Ubuntu oder Debian ist es beispielsweise mit
  1. apt-get install php5-xdebug

schnell installiert.

Nehmen wir an, dass ein Apache-Webserver php als Modul geladen hat. In diesem Fall findet sich die nötige Konfigurationsdatei unter
  1. /etc/php5/apache2/conf.d/xdebug.ini


Weiterlesen über: Ladezeiten der Webseite mit xdebug serverseitig analysieren
Kategorie: Messungen

Samstag, den 12. Mai 2012

Optimierte Varnish3 Konfiguration für TYPO3

TYPO3 Seite hinter Varnish-Cache

Der statische Content einer Webseite sollte nicht bei jedem Aufruf durch ein CMS gerendert werden. Nach einigen Optimierungen lässt sich nahezu jeder Seitenaufruf einer TYPO3 serverseitig durch den Varnish-Cache beschleunigen.

Die grenzen des Caches von TYPO3

Obwohl TYPO3 über sehr ausgefeilte Techniken verfügt, um unveränderte Inhalte nicht unveränderte Inhalte nicht bei jedem Aufruf komplett neu zu berechnen, ist es sinnvoll das Caching serverseitig zu unterstützen. Denn auch eine intern gecachte Seite muss noch aus der Datenbank geholt werden und durch den PHP-Interpreter wandern.
Um das zu verdeutlichen habe ich den zweimaligen Aufruf einer TYPO3-Webseite mit xdebug protokolliert.
Beim ersten Aufruf der Startseite einer ziemlich umfangreichen TYPO3-Seite listet der Funktions-Trace 20844 Funktionsaufrufe. Beim zweiten Aufruf, also nachdem TYPO3 die Seite cachen konnte, sind es immerhin noch 9038.

Die Verarbeitung dieser Funktionen durch den PHP-Interpreter und die Abarbeitung ...


Weiterlesen über: Optimierte Varnish3 Konfiguration für TYPO3
Kategorie: Tuning

News 1 bis 5 von 13
<< Erste < zurück 1-5 6-10 11-13 vor > Letzte >>