Ce blog a pour but de diffuser les informations liées aux applications et données libre et open source, plus connus sous le terme de GFOSS. Esprit critique, annonce de nouveautés, compte rendu de salon et bien d'autres choses encore, voilà ce que vous y trouverez. RSS Souscrire via RSS

Conférence FOSS4G : comparaison des performances en tant que serveur WMS entre MapServer et GeoServer

Cette conférence avait pour objectif de montrer une comparaison des performances entre les deux principaux serveurs cartographiques open source pour fournir un service WMS. Exercice compliqué s’il en est, souvent l’objet de discussion enflammées – notamment les jours précédents – la présentation entre les pro-MapServer et les pro-GeoServer. Cette comparaison avait également pour objectif d’identifier les paramètres de configuration qui pourrait augmenter les performances et de corriger les problèmes au sein de GeoServer.

Ce test n’a pas vérifié la stabilité, ni la praticité ou l’attribution des styles ou d’étiquetage. L’objectif était de tester les vecteurs en entrée.

Autant dire que le travail n’a pas était simple et qu’il a fallut comprendre le fonctionnement de ces deux serveurs pour éviter par exemple de lancer des processus accidentellement.

Environnement de test

Les tests de performance ont été réalisé avec le logiciel JMeter 2.2. Les versions de serveurs étaient la 4.10.2 pour MapServer (la dernière au moment des tests), et la 1.6b pour GeoServer.

Au niveau des données, les tests ont été effectués avec deux jeux de données chacun au format shapefile et postGIS. Les deux jeux de données étaient composés l’une de 3 000 000 et l’autre de 10 000 routes Tiger (Dallas, Texas). Les index ont été construits pour les deux jeux de données et pour chacun des formats.

Comparatif

Shapefile contre postgis

GeoServer et MapServe ont de bonnes performances pour les 2 jeux de données sauf MapServer au format Shapefile lors du plus gros jeu de données. L’équipe de développement de MapServer déconseille d’ailleurs d’utiliser ce format pour un grand jeu de données, le format PostGIS est généralement conseillé, le temps d’attente pour se connecter à la base est généralement très inférieur au temps de récupération et de traitement des données.

Requête concurrent
Ces requêtes ont été effectuées avec le jeu de données comprenant 10 00 objets. Chaque requête comprenait une bbox aléatoire comprenant un millier d’objets.

GeoServer et MapServer ont des performances similaires pour les deux formats. Cependant au format PostGIS, les requêtes diminuent les performances et ce d’autant plus que le nombre de requêtes concurrentes est élevé, ce qui est logique.

Reprojection
Dans ce cas, les performances sont très intéressante. En effet, en fonction de la projection utilisée, nous n’aurons pas les mêmes performances. Le problème de MapServer est qu’il utilise la bibliothèque PROJ pour chaque vertex, ce qui fait perdre du temps. MapServer est plus performant pour les projections Géographique WGS84 – NAD83 et UTM14N WGS84 – SPS NAD83 alors que GeoServer l’est plus pour les projections Géographique WGS84 – UTM14N WGS84 et Géographique WGS84 – UTM14N NAD27

GeoTools simplifie les objets avant la reprojection, augmentant ainsi ses performances.

CGI contre FastCGI
GeoServer ne peut pas être utilisé en CGI, nous ne parlerons ici que de MapServer. FastCGI est plus rapide que le mode CGI surtout avec PostGIS (40 % de réduction : 81 ms à 52 ms).

FastCGI permet d’éviter les coûts de lancement de MapServer et de connection à la base de données. L’étape d’écriture de l’image est dépendant du format de sortie choisit pas du mode CGI (fast ou ‘slow’) que l’on utilise.

Servlet et Java
De même, nous ne parlerons ici que de GeoServer. Il est conseillé d’utiliser la version 6 de Java et Tomcat plutôt que Jetty, bien que pour ce dernier conseil, l’utilisation de Java 6 ne soit pas si évident (pour une utilisation de shapefile).

Résumé
La version 1.6 contient de nombreuses optimisations des performances, ceci explique peut être que GeoServer se sorte plutôt bien de ce test. MapServer peut être amélioré, certains problèmes seront remontés sur le bugtracker. Les deux serveurs sont rapides mais demandent une configuration avancée pour vraiment optimiser les performances.

Si vous utilisez MapServer et des sources de données utilisant de nombreuses connections, vous avez tout intérêt à passer à l’utilisation de FastCGI.

Quelques conseils
La définition de vos projections dans votre mapfile, entraîne l’ouverture et la lecture du ficher EPSG, ce qui fait diminuer les performances. Placez vos définitions les plus utilisé en haut du fichier.

GeoServer a beaucoup de fonctionnalités activées par défaut, désactivez celle que vous n’utilisez pas :

  • Les styles transparent doublent le temps d’affichage. Utilisez opacity=1 dans votre SLD pour le désactiver.
  • L’antialiasing est coûteux. Essayez ‘&format_options=antialias:none’ pour le désactiver.
  • Testez la désactivation de ‘PNG native accélération’
    Préférez Java 6 sur Java 5 sur Java 1.4. Désactivez la journalisation.

Liens


Commentaires fermés sur Conférence FOSS4G : comparaison des performances en tant que serveur WMS entre MapServer et GeoServer
Posté le : 29 Oct 2007
Tags: , ,
Posté dans Salon |

Désolé, les commentaires pour cet articles sont clos pour le moment.


- Faire un don - Contact - Mentions légales -