Nach der Einrichtung

Komprimierung der Tiles

Bei der folgenden Komprimierung handelt es sich um die on-the-fly-Komprimierung des Webservers (Apache, nginx). Um sicherzustellen, dass die Tiles komprimiert übertragen werden:

% curl -I -H 'Accept-Encoding: gzip,deflate' \
    http://plexmap-server/static/tiles/terrain/tiles/9/265/171.json

Natürlich muss hier eine JSON-Datei gewählt werden, die auch beim Start des Viewers geladen wird. Hierzu kann man sich mit der Entwicklerkonsole (F12 bei den meisten Browsern) alle Dateien anzeigen lassen. Eine richtige Ausgabe von dem obigen Befehl sollte ungefähr so aussehen:

HTTP/1.1 200 OK
Server: nginx/1.1.19
Date: Tue, 15 Dec 2015 17:03:34 GMT
Content-Type: application/json
Last-Modified: Fri, 20 Mar 2015 18:43:01 GMT
Connection: keep-alive
Vary: Accept-Encoding
Content-Encoding: gzip

Die letzte Zeile ist das entscheidene Merkmal.

Eingestellt wird dieses beim jeweiligen Webserver:

  • Apache:

    AddOutputFilterByType DEFLATE application/json
    
  • nginx:

    gzip            on;
    gzip_min_length 1025;
    gzip_buffers    4 32k;
    gzip_types      application/json text/plain application/x-javascript text/xml text/css;
    gzip_vary       on;
    

Performancetests

Ein schöner Weg zum Lasttesten mit httperf ist hier beschrieben:

http://mervine.net/performance-testing-with-httperf

Zusammenfassung/Anleitung:

  • 1.) Mit einem Browser auf http://plexmap-server gehen und die Kamera ein bischen bewegen. Vorher cache löschen.

  • 2.) Die letzten 1000 Anfragen aus dem Loadbalancer-access-log in urls.log schreiben. Dies sollte sowohl die ap1, als auch die ts1 und ts2 Zugriffe umfassen:

    $ awk '{ print $7 }' access.log | tail -n 1000 > urls.log
    
  • 3.) Newlines durch Null-bytes ersetzen (httperf setzt das vorraus):

    $ tr "\n" "\0" < urls.log > wlog.log
    
  • 4.) Httperf starten. Mit dem folgenden Befehl werden die Zugriffe aus dem Log zyklisch durchgespielt, 5000 Requests bei 50 Requests/Sekunde, Werte können angepasst werden:

    $ httperf --server plexmap-server --wlog Y,wlog.log \
            --num-conns=5000 --rate=50