Performance de QGIS Server
QGIS joue dans la cour des grands !
2/28www.camptocamp.com /
Problématique
■ Comment définir le concept de performances et le mesurer
■ Historique
■ Framework de tests de performances
■ Quelques retours
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
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
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
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 !
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)
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
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)
10/28www.camptocamp.com /
Les couches
■ Ponctuel : amenities
■ Linéaire : route
■ Surfacique : bâtiments
11/28www.camptocamp.com /
Couches ponctuelles
■ Amenities
MapServer GeoServer QGIS-Server
Simple
Class
12/28www.camptocamp.com /
Couches linéaires
■ roads
MapServer GeoServer QGIS-Server
Simple
Hatched
13/28www.camptocamp.com /
Couches surfaciques
■ Buildings
MapServer GeoServer QGIS-Server
Simple
Hatched
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
15/28www.camptocamp.com /
Benchmark
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é
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)
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)
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
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
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é
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)
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
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
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
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
27/28www.camptocamp.com /
Information projet
■ Github : http://github.com/camptocamp/ms_perfs
■ Contactez moi : [email protected]
■ PR bienvenues
Top Related