GIS och Opensource @ SGU Jonas Holmberg & Johan Olsson Nuvarande webbplattform • Webb- & applikationsserver – Apache 2 & Tomcat 4.1 och 5.5 – Solaris 8 • Kartserver – – – – ArcIMS 9.1 / 9.2 & WMSConnector 9.1 / 9.2 Geoserver 1.7.6 Apache 2 & Tomcat 5.0 och 5.5 / 6.0 för Windows Windows server 2003 • Databasserver – Oracle 9i & ArcSDE 9.1 – Solaris 8 Problem – befintlig plattform • Spretighet – Flera olika OS – Många olika versioner av applikationsservrar (Tomcat 4.x, 5.x,5.5.x) – Olika versioner av Java (1.4, 1.5, 1.6) • Underhåll / uppgraderingar – Svårt att underhålla och uppgradera – Många beroenden mellan systemkomponenter • Licenskostnader • Prestanda Enter ”Open Source” Operativssystem – ny plattfrom • Ubuntu LTS – En Linuxdistribution som bygger på Debian – Säkerhetspatchar och bugfixar per automatik – 24 mån uppdateringsintervall med 5 års support (server) (Long Term Support) – Lätt installera programvara via paketering • apt-get install tomcat6 • apt-get install postgresql-8.3 postgresql-client-8.3 postgresql-contrib-8.3 • apt-get install postgresql-8.3-postgis Webbfront Kartserver Databas Applikations- & webbserver – ny plattform • Tomcat 6.0.x – Java 1.6.x – Webbgränssnitt för deploy och admin Webbfront Kartserver Databas ”Webbfront” – www.sgu.se • NginX som reverse proxy • Tomcat 6.0.x som applikationsserver – OpenCMS - webbpubliceringssystem – Egenutvecklade webbapplikationer – Kartvisare – Inmatningsapplikationer såsom DGV, Brunnsarkivet – mm. Webbfront Kartserver Databas Kartserver – ny plattform • Tomcat 6 – GeoServer 1.7.7 • WMS 1.1.1 & WFS 1.1 • Bra admingränssnitt – Deegree 2.3 • (test av WMS 1.3/WFS 1.1) Webbfront Kartserver Databas Databasserver – ny plattfrom • PostgreSQL – Objekt-relationsdatabas – Bra administratörsgränssnitt (PGAdmin) • PostGIS - spatiellt tillägg till PostgreSQL – PostGIS följer OpenGIS ”Simple Feature for SQL” complient spatial database – Kan lagra punkter, linjer, polygoner, multipoint, multiline, multipolygon, geometrycollections – OGC WKT (Well-Known Text) and WKB (Well-Known Binary) Webbfront Kartserver Databas Systemarkitektur – ny plattform • OS – Linux Ubuntu LTS • Webb- & applikationsserver – Tomcat 6 • Kartserver – Tomcat 6 – GeoServer 1.7.7, WMS 1.1.1 – (Deegree 2.3, WMS 1.3 /WFS 1.1) • Databasserver • ”Blackbox” – OS – Linux Ubuntu LTS – Mapserver – OneGeology – Europé – WMS 1.3 – … Webbfront – PostgreSQL 8.3.8 / PostGIS 1.3.5 Kartserver Databas Systemarkitektur – ny plattform • Alla maskiner körs virtualiserat NginX Blackbox Reverse proxy MapServer Web/app server 1GE - Europe Tomcat 6.0 sgu.se kartvisare … … Kartserver Databas Tomcat 6.0 GeoServer 1.7.7 PostgreSQL+PostGIS Deegree 2.3 Test- och produktionsmiljö • Produktions- och testmiljö identiska • Tre testmaskiner (prestanda och funktionalitet) – webbfront – kartserver – databas • Testmiljön kopieras för att skapa produktionsmiljön • Alla maskiner i ett virtualiserat kluster • Finns även en utvecklingsmiljö Webbfront Kartserver Databas Optimering och testning • • • • • Lasttestning Konfigurering av bild / rastergenerering Minnesoptimering Indexering PostgreSQL parametrar Lasttestning – vad? • Vad ville vi testa? – Prestanda vid relativt stor last – För att upptäcka flaskhalsar – Stabilitet i applikationen, WMS-lagren och databasen – Ex. minnesluckor, fel etc. Lasttestning – vad? • Vad mäter vi? – Svarstider (ms) – Transaktioner / sek – Hur mycket som kan köras i systemet – Fel i applikationerna • Övrigt som övervakas (på OS nivå) vid testtillfället – Processoranvändning – Minnesanvändning – NFS-uppslag till filsystemet Lasttestning – hur? • ”The Grinder” • Opensource projekt – Java applikation • Scriptbaserad konfigurering (Python) • Möjlighet att spela in script • Inställningar – – – – http://grinder.sourceforge.net/ 2 maskiner 30 användare per maskin (60 samtidiga användare) 30 minuter 6 testscript körs parallellt i slumpvis ordning • Testfall – 6 kartvisarapplikationer – GetMap (olika skalor) – Zoom in – Pan – GetFeatureInfo – Totalt 16 WMS-lager • Varje script utför: – – – – – Välj kartvisare Zooma in Aktivera lager GetFeatureInfo Byt kartvisare Geoserver – inställningar • JAI & JAI Image I/O – Java Advanced Imaging – Default installation använder java klassbibliotek för att generera bilder • Relativt långsamt – ”Native” JAI installerat på maskinen • Snabbt • Finns som färdigkompilerade installationspaket för de vanligaste operativsystemen Tomcat – Java inställningar • Geoserver körs på dedikerad Tomcat instans • Java – parametrar – Optimering av JVM • Minnesinställningar – – – – -Xmx 512 -Xmx 1024 -Xmx 1536 -Xmx 3072 PostgreSQL – inställningar • Indexering – Index på geometrikolumnen för alla gis-dataset – Index på attribut som används av SLD för symbolisering • Ex. utdrag ur SLD med filter på ett attribut för symbolisering <ogc:Filter> <ogc:PropertyIsEqualTo> <ogc:PropertyName>symbol</ogc:PropertyName> <ogc:Literal>100</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter> PostgreSQL – parametrar exempel • shared_buffers – Anger hur mycket minne databasservern använder till ”shared memory buffers” – 800MB (24MB default ) • effective_cache_size – Används till frågeoptimeringen (sql-frågor) – 4000MB (128MB default) Lasttest – Resultat • Java JAI – Svarstider => ca 1550 ms • Native JAI – Svarstider => ca 1280 ms • PostgreSQL – – – – Ingen skillnad i svarstider Stor skillnad i NFS-anrop till filsystemet Från > 200 000 /sek till < 40 000 /sek (nfs calls get_attr) Beror på shared_buffers och effective_cache_size parametern Lasttest – Resultat • Minnesinställningar för JVM • Xmx 512 – Svarstider => ca 2200ms • Xmx 1024 – Svarstider => ca 1280 ms • Xmx 1536 – Svarstider => ca 1180 ms • Xmx 3072 – Svarstider => ca 1110 ms Kartvisarapplikationen • Egen utveckling med olika Opensource komponenter • OpenLayers – För WMS-tjänsterna (GetCapabilities, GetMap & GetFeatureInfo) • Mapfish/GeoExt – Koppling mellan lagerlistan och kartans lager – Verktyg och interaktion med kartan • ExtJS – Layout • JSP/Servlet Kvar att göra / lösa • GeoServer 2.1.x ? • WMS 1.3 ? • WFS 2.0 ? • Testa Deegree 3 • WMS 1.3? • … • Klientapplikationer – Javascript intensiva klienter blir ”tunga”, många KB – Komprimera Javascript – JavaScript – svårt att debugga – hitta testmetoder? Erfarenheter (–) • Kostnader – tid för utveckling och anpassning – Gäller även kommersiella produkter • Olika grad av dokumentation inom OS-projekten • Support – ofta hänvisad till forum av olika kvalitet • Livslängd, aktivitet och uppdateringsfrekvens • Kompetens behöver finnas tillgänglig – Gäller även kommersiella produkter • Spretighet – kan uppstå vid användning av många olika produkter – Gäller även kommersiella produkter Erfarenheter (+) • Gratis - inga licenskostnader • Flexibelt – tillgång till källkod • Det finns tillgång till kända och aktiva Opensourceprodukter – Ubuntu Linux, postgresql.org, postgis.refractions.net, apache.org, geoserver.org, openlayers.org, mapfish.org, geoext.org, extjs.com, deegree.org • Kompetens byggs upp • Följer standarder bra ? Extra Open source • Apache • Tomcat (http://tomcat.apache.org) • OSGeo • GeoServer (http://geoserver.org) • Deegree (http://deegree.org) • Refractions Research • PostGIS (http://postgis.refraction.net) • PostgreSQL (http://www.postgresql.org) • Ubuntu (http://ubuntu.se) Webbfront Kartserver Databas