Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15...

28
Performance de QGIS Server QGIS joue dans la cour des grands !

Transcript of Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15...

Page 1: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

Performance de QGIS Server

QGIS joue dans la cour des grands !

Page 2: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

2/28www.camptocamp.com /

Problématique

■ Comment définir le concept de performances et le mesurer

■ Historique

■ Framework de tests de performances

■ Quelques retours

Page 3: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

3/28www.camptocamp.com /

Performance : une définition

Indications chiffrées mesurant les possibilités maximales ou optimales d'un matériel, d'un logiciel, d'un système ou d'un procédé technique pour exécuter une tâche donnée.

Source : Wikipedia

Page 4: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

4/28www.camptocamp.com /

Performance : les mesures

■ Selon le contexte, les performances incluent les mesures suivantes:○ Un faible temps de réponse pour effectuer une tâche donnée

○ Un débit élevé (vitesse d'exécution d'une tâche)

○ L'efficience : faible utilisation des ressources informatiques : processeur, mémoire, stockage, réseau, consommation électrique, etc.

○ Une haute disponibilité du système ou de l'application

○ Une bande passante élevée ou une faible latence

○ Le passage à l'échelle (scalabilité)

○ La capacité d'un canal de communication

○ La performance du stockage informatique

Page 5: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

5/28www.camptocamp.com /

Limite de tests de performance

■ Pertinent seulement pour le cas étudié, attention à l'extrapolation (« il est performant dans ce test, ce sera le cas avec mes données et mes cas d'utilisations »)

■ Bien faire attention à ce qui est testé

■ Le rendu et les données doivent être identique

■ L'optimisation doit être égale entre les différents éléments comparés

Page 6: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

6/28www.camptocamp.com /

Historique

■ OSGeo a organisé un WMS Benchmark○ Complexe à installer

○ Données à récupérer en différent endroit

■ Volonté d'avoir quelque chose de facile à mettre en place, reproductible !

Page 7: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

7/28www.camptocamp.com /

Objectif de notre infrastructure

■ Être reproductible : basé sur une infra docker

■ Les mêmes données :○ Stocké dans une base PostGIS

○ Sans optimisation avancée

○ Seulement le minimum de l'état de l'art : colonnes indéxées

■ Configuration des serveurs○ mise en place des bonnes pratiques (pool de connexion

si disponible, FastCGI)

Page 8: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

8/28www.camptocamp.com /

Limite actuelle de notre infra de test

■ Optimisation à améliorer○ Dangereux de comparer les services si une optimisation

n'a pas été mise en place

■ Tous les cas d'usage ne sont pas testés

■ On ne compare pas les fonctionnalités, obligation de limiter par le bas

Page 9: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

9/28www.camptocamp.com /

Infrastructure de test

■ Serveur :○ CPU :

- 8 cores

- Intel Xeon E312xx

- 2 GHz

○ RAM :

- 16 Go.

○ Système :

- Linux 3.16.0-4-amd64 x86_64

■ MapServer 7.0.*

■ GeoServer 2.9

■ QGIS master (3.x)

Page 10: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

10/28www.camptocamp.com /

Les couches

■ Ponctuel : amenities

■ Linéaire : route

■ Surfacique : bâtiments

Page 11: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

11/28www.camptocamp.com /

Couches ponctuelles

■ Amenities

MapServer GeoServer QGIS-Server

Simple

Class

Page 12: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

12/28www.camptocamp.com /

Couches linéaires

■ roads

MapServer GeoServer QGIS-Server

Simple

Hatched

Page 13: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

13/28www.camptocamp.com /

Couches surfaciques

■ Buildings

MapServer GeoServer QGIS-Server

Simple

Hatched

Page 14: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

14/28www.camptocamp.com /

Différence visuelle

■ MapServer et GeoServer très proche mais :○ Bbox très légèrement différente

○ Hachure difficile à reproduire

○ Teinte différente

■ QGIS :○ Problème de la projection CRS:84

Page 15: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

15/28www.camptocamp.com /

Benchmark

Page 16: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

16/28www.camptocamp.com /

Attention à l'optimisation !

0 5 10 15 20 25 30 35 40 450

100

200

300

400

500

600

700

800

900

1000

Temps de génération d'une imageCouche : point simple

GeoServerMapServerQGIS

Nbre d'utilisateurs

Tem

ps

(en

ms)

0 5 10 15 20 25 30 35 40 450

500

1000

1500

2000

2500

3000

3500

4000

4500

Temps de génération d'une image

Couche : point simple

GeoServerMapServerQGIS

Nbre d'utilisateurs

Tem

ps

(en

ms)

GeoServer out-of-box

GeoServer optimisé

Page 17: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

17/28www.camptocamp.com /

Évolution du nombre d'utilisateurs

0 5 10 15 20 25 30 35 40 450

100

200

300

400

500

600

700

800

900

1000

Temps de génération d'une image

Couche : point simple

GeoServer

MapServer

QGIS

Nbre d'utilisateurs

Tem

ps

(en

ms)

Page 18: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

18/28www.camptocamp.com /

Évolution du nombre d'utilisateurs

0 5 10 15 20 25 30 35 40 450

100

200

300

400

500

600

700

Tems de génération de l'image

Couche : point avec plusieurs classes

GeoServer

MapServer

QGIS

Nbre d'utilisateurs

Tem

ps

(en

ms)

Page 19: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

19/28www.camptocamp.com /

Évolution du nombre d'utilisateurs

0 5 10 15 20 25 30 35 40 450

1000

2000

3000

4000

5000

6000

Temps de génération d'une image

Couche : linéaire simple

GeoServer

MapServer

QGIS

Nbre d'utilisateur

Tem

ps

en

ms

Page 20: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

20/28www.camptocamp.com /

Évolution du nombre d'utilisateurs

0 5 10 15 20 25 30 35 40 450

1000

2000

3000

4000

5000

6000

Temps de génération d'une image

Couche : linéaire pointillé

GeoServer

MapServer

QGIS

Nbre d'Utilisateurs

Tem

ps

en

ms

Page 21: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

21/28www.camptocamp.com /

Attention à l'optimisation !

0 5 10 15 20 25 30 35 40 450

1000

2000

3000

4000

5000

6000

7000

Temps de génération d'une imagteCouche : polygone simple

GeoServerMapServerQGIS

Nbr d'utilisateurs

Tem

ps

(en

ms)

0 5 10 15 20 25 30 35 40 450

1000

2000

3000

4000

5000

6000

7000

Temps de génération d'une imagteCouche : polygone simple

GeoServer

MapServer

QGIS

Nbr d'utilisateurs

Tem

ps

(en

ms)

GeoServer out-of-box

GeoServer optimisé

Page 22: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

22/28www.camptocamp.com /

Évolution du nombre d'utilisateurs

0 5 10 15 20 25 30 35 40 450

1000

2000

3000

4000

5000

6000

7000

Temps de génération d'une imagte

Couche : polygone simple

GeoServer

MapServer

QGIS

Nbr d'utilisateurs

Tem

ps

(en

ms)

Page 23: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

23/28www.camptocamp.com /

Évolution du nombre d'utilisateurs

0 5 10 15 20 25 30 35 40 450

1000

2000

3000

4000

5000

6000

7000

8000

9000

10000

Temps de génération d'une image

Couche : polygone hachuré

GeoServer

MapServer

QGIS

Nbre d'Utilisateurs

Tem

ps

en

ms

Page 24: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

24/28www.camptocamp.com /

1ere conclusion

■ Amélioration des performances avec GeoServer○ Pas out of the box

○ Plugins Control flow module manquant ?

○ Désactivé certaines valeurs par défaut

■ QGIS plutôt performant mais moins que les autres

■ MapServer plutôt performant, out of the box

Page 25: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

25/28www.camptocamp.com /

Autres considérations

■ QGIS server :○ Erreurs lors des tests :

- ~200 au total

- notamment sur les polygones – ~135 erreurs

○ L'écart type du temps de réponse augmente avec le nombre d'utilisateurs

- Double de ceux de MapServer et GeoServer

Page 26: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

26/28www.camptocamp.com /

Conclusion / todo

■ Il manque un test QGIS 2.18 vs 3.x○ Des évolutions ont été apportées cette année par

Camptocamp sur les performances

■ Ce test permettra au prochain code sprint de s'assurer qu'il n'y a aucune régression (voire une amélioration)

■ Automatiser la génération des graphiques

Page 27: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une

27/28www.camptocamp.com /

Information projet

■ Github : http://github.com/camptocamp/ms_perfs

■ Contactez moi : [email protected]

■ PR bienvenues

Page 28: Performance de QGIS ServerGeoServer MapServer QGIS Nbr d'utilisateurs T e m p s (e n m s) 0 5 10 15 20 25 30 35 40 45 0 1000 2000 3000 4000 5000 6000 7000 Temps de génération d'une