Sustainable engineering and design Prestanda i karttjänster 1
Prestandaproblem i karttjänster Hur identifierar man grundproblemet Vilka vägar till lösningar finns det 2
Bildyta - Välj Infoga bild Sweco Position Att som leverantörsoberoende konsulter skapa mervärden för våra kunder genom att leverera kvalificerade konsulttjänster baserade på geografisk IT. 3
Magnús Agnarsson Projektledare GIS hos Sweco Position Teknisk Lantmätare från KTH 1994 Sweco från Januari 2010 Eniro juni 1996 till december 2009 Nuvarande projekt AB Storstockholms Lokaltrafik Hemnet Nordic Energy Research LinkedIN http://se.linkedin.com/in/magnusagnarsson Blog http://blogs.sweco.se/blog/author/magns-agnarsson/ 4
Oavsett det jag tar upp här kom ihåg att lösningen på prestandaproblem ligger i samspelet mellan applikationen, plattformen och hur applikationen används Applikation användare Databaser Nätverk Lastbalanserare servrar Brandvägg Lagring Konfiguration 5
Vad händer vid prestandaproblem Tjänsten går för långsamt chefen skriker eller jämrar sig stressen att lösa problemet är hög Vi tar lite Alvedon Teknikern föreslår att man köper mer hårdvara, eller annan dyr infrastruktur Om tjänsten är viktig brukar man köpa in servrar Ofta räcker det 6
Ibland räcker det inte med mer servrar Eftersom de grundläggande arkitektoniska felen inte är lösta Påbörjas en lite mödosammare resa för att hitta grundorsaken och göra något åt problemen 7
Vid felsökningen behövs två synsätt Lös det omedelbara problemet Hämta alvedon Förebygga problem framöver Är alvedon verkligen lösningen? 8
Hur fungerar organisationen Hur fick vi reda på att det var prestandaproblem? En användare ringde och klagade Ett mätverktyg indikerar att tjänsten börjar gå långsamt Vilka processer sätts igång när det är prestandaproblem Chefen skriker och samlar ett kristeam som jobbar hela dygnet i några dagar Chefen får reda på prestandaproblemet i månadsrapporten - teamet löste det utan hans vetskap 9
Hur mäter man prestandaproblem Skaffa dig verktyg och mätpunkter Lastverktyg Från Internet tex Loadimpact.com Interna tex Apache Jmeter VIKTIGT ATT SÄTTS UPP KORREKT! Är det verkligen alvedon vi behöver? 10
I din browser Firebug tillägget till Firefox Utmärkt för att identifiera vilka specifika delar som går långsamt 11
Övervakningsverktyg Från internet med tex Pingdom.com Övervakar en URL med regelbundna intervall 12
Serverövervakning www.nagios.org Tjänste- och serverövervakning Relativt enkelt att sätta upp basövervakning Sätts upp på andra datorer i samma nätverk 13
Vilket är normalläget för din applikation och plattform? Om du vet hur applikationen agerar i normalläget är det lättare att identifiera avvikelser Brukar det fungera med alvedon? 14
PROBLEMET MED ATT MÄTA PRESTANDA NÄR MAN HAR PRESTANDAPROBLEM - RISK ATT MÄTNINGEN PÅVERKAR FUNKTIONEN ÖVNING GER FÄRDIGHET- BRANDKÅREN TRÄNAR PÅ ATT SLÄCKA BRÄNDER 15
VILKA LÖSNINGAR FINNS?? 16
Nutida basarkitektur för kartlösningar Browser Internet Kartserver Databas Browser JavaScript / Java / Flash OpenLayers, ArcGIS API for Javascript, etc Kartserver WMS / WFS service GeoJSON, GeoRSS Tile service GeoServer, ArcGIS, MapServer Database Hanterar kartdata Andra data PostgreSQL, Oracle, SQL Server 17
En av de största utmaningarna inom WebGIS är att hitta balansen mellan behovet för uppdatering av data och hur mycket det går att cacha för att uppnå bättre användarupplevelse och lägre kostnader 18
Hur en liten karttjänst blir vuxen Browser Browser Browser Browser Browser Browser Browser Browser Browser Browser Browser Browser Browser Browser Internet Loadbalancing Loadbalancing Intelligent LB Caching Caching Caching WebServer WebServer WebServer WebServer WebServer WebServer Database Database Database Map Server Map Server Map Server Map Server Map Server Map Server 19
Lär dig känna din applikation Läsintensiv cacha, cacha och cacha Skrivintensiv Vad händer i databasen Hur kan du minimera och förenkla skrivandet till databasen eller disken? 20
Vanliga prestandaproblem hos karttjänster Bristfälliga index i databaser alternativ ej optimerad SQL sats Felkonfigurerade brandväggar Felkonfigurerade expire headers Tankesätt som inte stödjer cachning Hoppsan vi behövde ipren! Onödigt skrivande till databaser eller disk 21
Frågor??? 22