[Geoserver-users] Geoserver 2.6 RC1 slow WMS

Hello,

I am testing out Geoserver 2.6 RC1 (and 2.6 beta). When performance testing
(WMS getmap), I find 2.6x to be ~50% slower than 2.5.2. (Or the other way
around - 2.5.2 is 100-150 % faster).
I get these results reqeusting png, png8 and jpeg.
I tried

I have native JAI / JAI ImageIO installed, under Server Status:
Native JAI true
Native JAI ImageIO true)

I tried PNGJ based encoder (returns the error below) and ImageIO native
encoder.

The only thing I can come up with is this error message (wiht PNGJ based
encoder):

PM it.geosolutions.imageio.plugins.png.PNGWriter writePNG
SEVERE: Failed to encode the PNG
ar.com.hjg.pngj.PngjOutputException:
org.geoserver.ows.ClientStreamAbortedException
        at
ar.com.hjg.pngj.PngHelperInternal.writeBytes(PngHelperInternal.java:196)
        at ar.com.hjg.pngj.chunks.ChunkRaw.writeChunk(ChunkRaw.java:97)
        at
ar.com.hjg.pngj.PngIDatChunkOutputStream.flushBuffer(PngIDatChunkOutputStream.java:28)
        at
ar.com.hjg.pngj.ProgressiveOutputStream.checkFlushBuffer(ProgressiveOutputStream.java:65)
        at
ar.com.hjg.pngj.ProgressiveOutputStream.write(ProgressiveOutputStream.java:34)
        at
java.util.zip.DeflaterOutputStream.deflate(DeflaterOutputStream.java:253)
        at
java.util.zip.DeflaterOutputStream.write(DeflaterOutputStream.java:211)
        at ar.com.hjg.pngj.PngWriter.filterAndSend(PngWriter.java:245)
        at ar.com.hjg.pngj.PngWriter.writeRow(PngWriter.java:572)
        at ar.com.hjg.pngj.PngWriter.writeRow(PngWriter.java:548)
        at
it.geosolutions.imageio.plugins.png.PNGWriter.writePNG(PNGWriter.java:90)
        at org.geoserver.wms.map.png.PNGJWriter.writePNG(PNGJWriter.java:50)
        at
org.geoserver.wms.map.PNGMapResponse.formatImageOutputStream(PNGMapResponse.java:108)
        at
org.geoserver.wms.map.RenderedImageMapResponse.write(RenderedImageMapResponse.java:122)
        at org.geoserver.ows.Dispatcher.response(Dispatcher.java:936)
        at
org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:277)
        at
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
        at
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
        at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
        at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
        at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
        at
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:27)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:74)
        at
org.geoserver.wms.animate.AnimatorFilter.doFilter(AnimatorFilter.java:70)
        at
org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:70)
        at
org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:45)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:49)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)
        at
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68)
        at
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
        at
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
        at
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72)
        at
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)
        at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68)
        at
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
        at
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72)
        at
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)
        at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at
org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:53)
        at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68)
        at
org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
        at
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72)
        at
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)
        at
org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:82)
        at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68)
        at
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
        at
org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:52)
        at
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72)
        at
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)
        at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)
        at
org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:134)
        at
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
        at
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:75)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:48)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:47)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:43)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:555)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
        at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:722)
Caused by: org.geoserver.ows.ClientStreamAbortedException
        at
org.geoserver.ows.DispatcherOutputStream.write(DispatcherOutputStream.java:45)
        at
ar.com.hjg.pngj.PngHelperInternal.writeBytes(PngHelperInternal.java:194)
        ... 95 more
Caused by: ClientAbortException: java.net.SocketException: Connection reset
        at
org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:358)
        at
org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:434)
        at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:349)
        at
org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:381)
        at
org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:370)
        at
org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89)
        at
org.geoserver.filters.FlushSafeResponse$FlushSafeServletOutputStream.write(FlushSafeResponse.java:57)
        at
org.vfny.geoserver.util.PartialBufferedOutputStream2.write(PartialBufferedOutputStream2.java:154)
        at
org.geoserver.ows.DispatcherOutputStream.write(DispatcherOutputStream.java:43)
        ... 96 more
Caused by: java.net.SocketException: Connection reset
        at
java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
        at java.net.SocketOutputStream.write(SocketOutputStream.java:153)
        at
org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:741)
        at
org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:434)
        at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:349)
        at
org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:765)
        at
org.apache.coyote.http11.filters.IdentityOutputFilter.doWrite(IdentityOutputFilter.java:127)
        at
org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:574)
        at org.apache.coyote.Response.doWrite(Response.java:560)
        at
org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:353)
        ... 104 more

Best regards,
Jakob Ventin

--
View this message in context: http://osgeo-org.1560.x6.nabble.com/Geoserver-2-6-RC1-slow-WMS-tp5161306.html
Sent from the GeoServer - User mailing list archive at Nabble.com.

Some more information:

tests 1-3 were done with a in-house made software, which requested the
layers with a random 3200x3200 m bounding box (same srs as data)

1) When requesting a single layer (road network, line sld) geoserver 2.6 rc1
and 2.5.2 are giving the response in similar time (my case 31 sec).

2) When requesting a layergroup (120 vector layers from PostGIS) at 1m /px
resolution, 2.6 rc1 is almost 2 times slower (rc1: 172 seconds / 2.5.2: 94
seconds)

3) When requesting the same layergroup as in 2) but this time from another
layergroup containing the layergroup in 2), 2.6 rc1 is much slower (rc1: 244
sec / 2.5.2: 94 seconds)

When doing requests straight from the server on which geoserver is running
(localhost:8080/geoserver...) both versions of geoserver delivers the
requested map in same time (layergroup wiht 130 vector layers from PostGIS)

Anybody having similar experiences? Ideas what I should look at?

(Don't think this has anything to do with PNG encoding as I thought in
previous post.)

regards, Jakob

--
View this message in context: http://osgeo-org.1560.x6.nabble.com/Geoserver-2-6-RC1-slow-WMS-tp5161306p5162063.html
Sent from the GeoServer - User mailing list archive at Nabble.com.

This is the first we have heard of it Jakob, I am not aware of any change that would be causing your speed regression.

Can you reproduce this performance difference with the default data directory? Or is it something specific to using PostGIS?

One thing to keep an eye out for is new functionality that the developers consider stable that is off by default in 2.5.x. As an example we have changed scale calculations, they are available in 2.5.x series - but used as the default in 2.6.x.

I could easily see a change in scale calculation changing the amount of data your rules draw at a given zoom level - resulting in a performance regression.

···

Jody Garnett

On Tue, Sep 16, 2014 at 4:04 AM, Jakob Ventin <jventin@anonymised.com> wrote:

Some more information:

tests 1-3 were done with a in-house made software, which requested the
layers with a random 3200x3200 m bounding box (same srs as data)

  1. When requesting a single layer (road network, line sld) geoserver 2.6 rc1
    and 2.5.2 are giving the response in similar time (my case 31 sec).

  2. When requesting a layergroup (120 vector layers from PostGIS) at 1m /px
    resolution, 2.6 rc1 is almost 2 times slower (rc1: 172 seconds / 2.5.2: 94
    seconds)

  3. When requesting the same layergroup as in 2) but this time from another
    layergroup containing the layergroup in 2), 2.6 rc1 is much slower (rc1: 244
    sec / 2.5.2: 94 seconds)

When doing requests straight from the server on which geoserver is running
(localhost:8080/geoserver…) both versions of geoserver delivers the
requested map in same time (layergroup wiht 130 vector layers from PostGIS)

Anybody having similar experiences? Ideas what I should look at?

(Don’t think this has anything to do with PNG encoding as I thought in
previous post.)

regards, Jakob


View this message in context: http://osgeo-org.1560.x6.nabble.com/Geoserver-2-6-RC1-slow-WMS-tp5161306p5162063.html
Sent from the GeoServer - User mailing list archive at Nabble.com.


Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce.

Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk


Geoserver-users mailing list
Geoserver-users@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

On Thu, Sep 11, 2014 at 2:22 PM, Jakob Ventin <jventin@anonymised.com> wrote:

Hello,

I am testing out Geoserver 2.6 RC1 (and 2.6 beta). When performance testing
(WMS getmap), I find 2.6x to be ~50% slower than 2.5.2. (Or the other way
around - 2.5.2 is 100-150 % faster).
I get these results reqeusting png, png8 and jpeg.
I tried

I have native JAI / JAI ImageIO installed, under Server Status:
Native JAI true
Native JAI ImageIO true)

I tried PNGJ based encoder (returns the error below) and ImageIO native
encoder.

The only thing I can come up with is this error message (wiht PNGJ based
encoder):

PM it.geosolutions.imageio.plugins.png.PNGWriter writePNG
SEVERE: Failed to encode the PNG
ar.com.hjg.pngj.PngjOutputException:
org.geoserver.ows.ClientStreamAbortedException
        at

Ah, this is just the client shutting the http connection in GeoServer's
face, not an issue by itself.

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/NWWaa2 for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------

On Tue, Sep 16, 2014 at 12:04 PM, Jakob Ventin <jventin@anonymised.com> wrote:

Some more information:

tests 1-3 were done with a in-house made software, which requested the
layers with a random 3200x3200 m bounding box (same srs as data)

1) When requesting a single layer (road network, line sld) geoserver 2.6
rc1
and 2.5.2 are giving the response in similar time (my case 31 sec).

2) When requesting a layergroup (120 vector layers from PostGIS) at 1m /px
resolution, 2.6 rc1 is almost 2 times slower (rc1: 172 seconds / 2.5.2: 94
seconds)

3) When requesting the same layergroup as in 2) but this time from another
layergroup containing the layergroup in 2), 2.6 rc1 is much slower (rc1:
244
sec / 2.5.2: 94 seconds)

When doing requests straight from the server on which geoserver is running
(localhost:8080/geoserver...) both versions of geoserver delivers the
requested map in same time (layergroup wiht 130 vector layers from PostGIS)

This is weird... the work done by GeoServer is the same regardless of
whether
you are calling from localhost or from another host.
However if it was a network issue, it should slow down everything pretty
much
the same way.. well, unless there is some network apparatus that does
something
different when a request takes, say... more than one minute?

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/NWWaa2 for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------

On Tue, Sep 16, 2014 at 2:17 PM, Jody Garnett <jody.garnett@anonymised.com>
wrote:

This is the first we have heard of it Jakob, I am not aware of any change
that would be causing your speed regression.

Can you reproduce this performance difference with the default data
directory? Or is it something specific to using PostGIS?

One thing to keep an eye out for is new functionality that the developers
consider stable that is off by default in 2.5.x. As an example we have
changed scale calculations, they are available in 2.5.x series - but used
as the default in 2.6.x.

Clarification needed here, we did not change the way we do scale
computations, we added a parameter to allow the user
to control the way we do it, but the default is the same method as before
(unless we have bugs there)

I could easily see a change in scale calculation changing the amount of
data your rules draw at a given zoom level - resulting in a performance
regression.

True, however the change will also be pretty visible, as you won't get the
same map in the output. Jacob, do you see changes in the generated map?

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/NWWaa2 for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------

Andrea,

No, if I understand this correct it would cause that the requested map
(layergroup) would have elements from other maps (layergroups) in the "main"
layergroup.

regards,

Jakob

--
View this message in context: http://osgeo-org.1560.x6.nabble.com/Geoserver-2-6-RC1-slow-WMS-tp5161306p5162564.html
Sent from the GeoServer - User mailing list archive at Nabble.com.

I have had time to test a little more, and here is what i found out

- the pictures look (exactly) the same. Picture size differs just a little
(2.5.2: 2264928 byte 2.6 rc1: 2265587 byte).

- when plugging in tomcat against Java visual vm, i found out, that there
was a class

org.postgresql.core.visiblebufferedinputstream.readmore()

that consumed significantly more cpu in all test cases in 2.6. (Typically
for a test case 2.6 40.7 % / 2.5.2 13.7 %)

- in PostGIS:
-- turned on logging for sql queries
-- did same wms getmap from 2.5.2 and 2.6rc1
--> turned out, that in 2.6, first the query below was executed 773 times
(took 2.316 seconds) and then again between each SELECT geometry. This makes
the queries in PostGIS take about 3 times longer for 2.6 than 2.5.2.

The query that is executed in PostGIS when using 2.6: (this query returns
the information about the tables in the schema):

Here is a LINK
<https://drive.google.com/file/d/0B-5GTVFPLqxUQjltUXVGZ1ZiWXM/edit?usp=sharing&gt;
to the complete postgresql log using 2.5.2 and here is a LINK
<https://drive.google.com/file/d/0B-5GTVFPLqxUTXRRaUpGUTduZVU/edit?usp=sharing&gt;
to the complete log using 2.6.

SELECT NULL AS TABLE_CAT,
    n.nspname AS TABLE_SCHEM,
    c.relname AS TABLE_NAME,
      CASE n.nspname ~ '^pg_' OR n.nspname = 'information_schema'
        WHEN true THEN
          CASE
          WHEN n.nspname = 'pg_catalog' OR n.nspname = 'information_schema' THEN
            CASE c.relkind
              WHEN 'r' THEN 'SYSTEM TABLE'
              WHEN 'v' THEN 'SYSTEM VIEW'
              WHEN 'i' THEN 'SYSTEM INDEX'
              ELSE NULL
            END
          WHEN n.nspname = 'pg_toast' THEN
            CASE c.relkind
              WHEN 'r' THEN 'SYSTEM TOAST TABLE'
              WHEN 'i' THEN 'SYSTEM TOAST INDEX'
              ELSE NULL
            END
          ELSE
            CASE c.relkind
              WHEN 'r' THEN 'TEMPORARY TABLE'
              WHEN 'i' THEN 'TEMPORARY INDEX'
              ELSE NULL
            END
          END
          WHEN false THEN CASE c.relkind
          WHEN 'r' THEN 'TABLE'
          WHEN 'i' THEN 'INDEX'
          WHEN 'S' THEN 'SEQUENCE'
          WHEN 'v' THEN 'VIEW'
          ELSE NULL
        END
      ELSE NULL
      END AS TABLE_TYPE, d.description AS REMARKS
      FROM pg_catalog.pg_namespace n, pg_catalog.pg_class c
      LEFT JOIN pg_catalog.pg_description d ON (c.oid = d.objoid AND d.objsubid
= 0)
      LEFT JOIN pg_catalog.pg_class dc ON (d.classoid=dc.oid AND
dc.relname='pg_class')
      LEFT JOIN pg_catalog.pg_namespace dn ON (dn.oid=dc.relnamespace AND
dn.nspname='pg_catalog')
      WHERE c.relnamespace = n.oid
        AND n.nspname LIKE 'public'
        AND c.relname LIKE '%'
        AND (false OR ( c.relkind = 'r'
        AND n.nspname !~ '^pg_' AND n.nspname <> 'information_schema' )
        OR ( c.relkind = 'v' AND n.nspname <> 'pg_catalog' AND n.nspname <>
'information_schema' ) )
      ORDER BY TABLE_TYPE,TABLE_SCHEM,TABLE_NAME

Any ideas what may cause this?

best regards,

Jakob

--
View this message in context: http://osgeo-org.1560.x6.nabble.com/Geoserver-2-6-RC1-slow-WMS-tp5161306p5164275.html
Sent from the GeoServer - User mailing list archive at Nabble.com.

On Fri, Sep 26, 2014 at 8:08 AM, Jakob Ventin <jventin@anonymised.com> wrote:

Any ideas what may cause this?

The above query is not written by GeoServer/GeoTools directly, but I
believe it's generated
by the JDBC driver as we try to access something in the JDBCMetaData.
By the looks of it, it seems we're failing to cache in memory some
table/index information we need,
and end up computing it over and over as a result

Could you open a ticket in JIRA for it?

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/NWWaa2 for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

*AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*

Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo è consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for
the attention and use of the named addressee(s) and may be confidential or
proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.

-------------------------------------------------------

Yes,

https://jira.codehaus.org/browse/GEOS-6691

created.

/Jakob

--
View this message in context: http://osgeo-org.1560.x6.nabble.com/Geoserver-2-6-RC1-slow-WMS-tp5161306p5164305.html
Sent from the GeoServer - User mailing list archive at Nabble.com.