#1 Thu 16 February 2017 03:54
- Oakland
- Participant actif
- Date d'inscription: 6 Nov 2006
- Messages: 142
[Geoserver] Activation de GeoWebCache et optimisation
Bonjour,
Je souhaite optimiser mes flux WMS et WMS-T publiés par Geoserver. Au sein de mon réseau, pas de soucis, l'affichage est quasi instantanée. Cependant, en accès internet client, les temps d'affichage avoisinent les 20 secondes.
Pour cela je dispose d'un serveur Ubuntu 16.04 Server, Tomcat 7, Geoserver 2.8.1, GeoTools 14.1, GeoWebCache interne 1.8.0, OpenLayer 2.8.
Les données raster sont stockées en local server .tif dallés et publiées en temps qu'ImageMosaïc et les données vecto en PostGIS 9.3
Tout ce petit monde se porte bien mais arrivé sur internet, tout prend du temps à l'affichage.
Je me suis inspiré de cette discussion qui m'a ensuite fait dériver sur plein d'autres : http://www.forumsig.org/showthread.p...t-performances
J'ai installé JAI, optimisé le JVM, autorisé le multithread, créer un BlobStores en local et activé le cache de mes données.
Plusieurs phénomènes particuliers :
- Côté QGIS en dehors de mon réseau.
quand je crée une nouvelle connexion WMS sur l'adresse : http://monserver.com/geoserver/projet/wms? avec les identifiants qui vont bien, je récupère mon GetCapabilities, j'affiche mes légendes, et les données s'affichent super lentement, mais elles s'affichent. Cela concerne aussi bien les vecto que les rasters.
si je contacte cette adresse : http://monserver.com/geoserver/projet/w … tiled=true avec les identifiants qui vont bien, pas de différence
si je contacte cette adresse : http://monserver.com/geoserver/projet/gwc/service/wms? avec les identifiants qui vont bien, je récupère mon GetCapabilities de toutes mes couches GeoWebCachées, je peux les charger dans QGIS, j'ai accès aux légendes mais la donnée ne s'affiche pas et je n'ai pas de message d'erreur. Dans les Propriétés, les SCR sont corrects et les GetMap semblent corrects :
http://monserveur.com/geoserver/gwc/... … E=WMS&
- Côté GeoServer.
la disponibilité JAI native est true, la mémoire à 1Go, les taille de threads sont par défaut, les paramètres de GeoWebCache sont tous activés, quand je visualise les couches cachées à partir de Aperçu, le Cache Statistics augmente. Toujours au travers de Aperçu, passé une certaine échelle, la donnée ne s'affiche plus et le Cache Statistics n'augmente plus.
J'ai créé un BlobStore en local server où pointent le stockage de mes tuiles cachées et il se fait supprimer si je redémarre GeoServer.
J'ai crée le GeoWebcache.xml mais je n'ai rien paramétré dedans. Dois-je y lister toutes mes données cachées ?? (ça va faire un sacré paquet).
J'ai tuilé à 20 par 20.
Quand je passe par le menu de GeoServer 'Prévisualisation de la Couche', le Cache Statistics n'augmente pas.
Le style raster est celui par défaut.
Logs GeoServer
Code:
la date,298 ERROR [geowebcache.GeoWebCacheDispatcher] - Problem communicating with GeoServer http://monserveur.com/geoserver/gwc/service/wms la date,301 ERROR [geoserver.ows] - org.geoserver.platform.ServiceException: Rendering request would use 102400KB, whilst the maximum memory allowed is 65536KB
Où est paramétré ce 65536KB ? Je ne l'ai pas trouvé
- Côté Fiddler.
J'ai analysé mes flux GeoWebCache, pour les tuiles qui fonctionnent à une certaine échelle, l'url testée :
http://monserveur.com/geoserver/gwc/ser … 1&REQU EST=GetMap&STYLES=&SRS=EPSG%3A4326&BBOX=xmin, ymin, xmax, ymax&WIDTH=256&HEIGHT=256
Le Header répond :
Code:
HTTP/1.1 200 OK Content-Type: image/pngCache-Control: max-age=1, must-revalidate Content-Disposition: inline; filename=geoserver-dispatch.image Content-Length: 262556 Content-Type: image/png geowebcache-cache-result: HIT geowebcache-crs: EPSG:4326 geowebcache-gridset: EPSG:4326 Ce qui semble correct.
Pour les tuiles qui ne s'affichent pas à une certaine échelle, l'url est la suivante :
http://monserveur.com/geoserver/gwc/ser … 1&REQU EST=GetMap&STYLES=&SRS=EPSG%3A4326&BBOX=xmin, ymin, xmax, ymax&WIDTH=256&HEIGHT=256
Le Header répond :
Code:
HTTP/1.1 400 Mauvaise Requête Content-Disposition: inline; filename=geoserver-dispatch.text Content-Encoding: gzip Content-Type: text/html Server: Apache-Coyote/1.1 Connection: close Transfer-Encoding: chunked
Mes questions :
Ai-je vraiment bien activé GeoWebCache pour mes couches ?
Ai-je oublié un paramètre interne ou lié à mon serveur ?
Existe-t-il des conflits ? La solution software utilisée est-elle réellement adaptée aux besoins ?
Juste pour info, je vais essayer cette adresse avec les identifiants qui vont bien en tant que client et voir le comportement :
http://monserveur.com/geoserver/projet/ … vice/wmts?
Je vous remercie par avance ...
PS: le sujet est également ouvert chez nos voisins ForumSIG. Je ne manquerai pas de mettre à jour soit l'un soit l'autre sujet en fonction des réponses.
Dernière modification par Oakland (Thu 16 February 2017 03:55)
Hors ligne
#2 Thu 16 February 2017 08:12
- Oakland
- Participant actif
- Date d'inscription: 6 Nov 2006
- Messages: 142
Re: [Geoserver] Activation de GeoWebCache et optimisation
En effet, l'adresse a tout changé. Si je me connecte en tant que client sur http://monserveur.com/geoserver/proj.../service/wmts?, l'affichage d'une couche se fait en 3 secondes. (2 couches 6 secondes etc etc ...)
Cependant, en naviguant dans mes données, il affiche toujours les mêmes tuiles aux mêmes échelles en 3 secondes, je n'ai pas l'impression que le cache s'utilise correctement.
Ai-je un moyen de le contrôler ?
Merci.
Hors ligne