Hi All,
I tried to render GeoServer OSM layer on my world wind map client and the
performance is very slow. I suspect there may be some configuration issues
that I did not do right. Not sure if it is caching or database issue.
Below is my environment:
OS: CentOS 6.5
RAM: 16 GB
Database: PostgreSQL 9.3/PostGIS 2.2
OSM dataset: North America
Tomcat 7.0.50
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8
-server -Xms1024m -Xmx2048m
-XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m
-XX:MaxPermSize=256m -XX:+DisableExplicitGC"
Tomcat and Database are on the same machine.
GeoServer Caching Defaults:
Enable direct integration with GeoServer WMS - enabled
Automatically configure a GeoWebCache layer for each new layer or layer
group.
Default matafile size: 4x4
Default Cached Gridsets:
Gridset CRS Tile Dimension Zoom
Levels Disk Usage
EPSG:4326 EPSG:4326 256x256 22
0.0 B
EPSG:900913 EPSG:900913 256x256 31
0.0 B
Below are some of the messages from Tomcat's catalina.out:
Request: getMap
Styles = [StyleImpl[ name=polygon]]
Width = 512
Height = 512
Tiled = false
Palette = null
FeatureVersion = null
SRS = CRS:84
Layers = [org.geoserver.wms.MapLayerInfo@anonymised.com]
MaxFeatures = null
Crs = GEOGCS["WGS84",
DATUM["WGS84",
SPHEROID["WGS84", 6378137.0, 298.257223563]],
PRIMEM["Greenwich", 0.0],
UNIT["degree", 0.017453292519943295],
AXIS["Geodetic longitude", EAST],
AXIS["Geodetic latitude", NORTH],
AUTHORITY["Web Map Service CRS","84"]]
Bbox = ReferencedEnvelope[-63.0 : -54.0, 45.0 : 54.0]
RemoteOwsType = null
RemoteOwsURL = null
Env = {}
FormatOptions = {}
Angle = 0.0
CQLFilter = null
Elevation =
FeatureId = null
StartIndex = null
ViewParams = null
BgColor = java.awt.Color[r=255,g=255,b=255]
Transparent = true
SldBody = null
ValidateSchema = false
Sld = null
SldVersion = null
TilesOrigin = null
Exceptions = SE_XML
Buffer = 0
Filter = null
Format = image/png
Filters = null
Time =
Get = true
RawKvp = {CRS=CRS:84, TRANSPARENT=TRUE, BBOX=-63.0,45.0,-54.0,54.0,
VERSION=1.3, FORMAT=image/png, SERVICE=WMS, HEIGHT=512, REQUEST=GetMap,
LAYERS=osm:north_america_polygon, STYLES=, WIDTH=512}
BaseUrl = http://172.16.203.150:8080/geoserver/
RequestCharset = UTF-8
Version = 1.3
Request = GetMap
13 Feb 13:30:28 ERROR [geotools.rendering] - Unable to obtain connection:
Cannot get a connection, pool error Timeout waiting for idle object
java.lang.RuntimeException: Unable to obtain connection: Cannot get a
connection, pool error Timeout waiting for idle object
at
org.geotools.jdbc.JDBCDataStore.createConnection(JDBCDataStore.java:1679)
at
org.geotools.jdbc.JDBCDataStore.getConnection(JDBCDataStore.java:1619)
at
org.geotools.jdbc.JDBCDataStore.getConnection(JDBCDataStore.java:1649)
at
org.geotools.jdbc.JDBCFeatureSource.getReaderInternal(JDBCFeatureSource.java:557)
at
org.geotools.data.store.ContentFeatureSource.getReader(ContentFeatureSource.java:563)
at
org.geotools.data.store.ContentFeatureCollection.features(ContentFeatureCollection.java:165)
at
org.geoserver.feature.RetypingFeatureCollection.features(RetypingFeatureCollection.java:45)
at
org.geoserver.feature.RetypingFeatureCollection.features(RetypingFeatureCollection.java:31)
at
org.geotools.renderer.lite.StreamingRenderer.drawPlain(StreamingRenderer.java:2481)
at
org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:2051)
at
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:837)
at
org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(RenderedImageMapOutputFormat.java:481)
at
org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(RenderedImageMapOutputFormat.java:251)
at
org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(RenderedImageMapOutputFormat.java:123)
at org.geoserver.wms.GetMap.executeInternal(GetMap.java:521)
at org.geoserver.wms.GetMap.run(GetMap.java:253)
at org.geoserver.wms.GetMap.run(GetMap.java:124)
at
org.geoserver.wms.DefaultWebMapService.getMap(DefaultWebMapService.java:328)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Note: When I had smaller OSM dataset such as just state of Florida,
GeoServer rendered the layer very fast. Not sure why it is very slow with
bigger dataset.
I hope someone can tell me what I need to do to make GeoServer renders my
OSM data faster. Please let me know if you need more information.
Many thanks in advance.
Regards,
Tam
--
View this message in context: http://osgeo-org.1560.x6.nabble.com/GeoServer-WMS-extremely-slow-rendering-OSM-data-tp5103703.html
Sent from the GeoServer - User mailing list archive at Nabble.com.