Greetings,

I am trying to set up a large collection of image pyramids to be served
via GeoServer 2.1.1 WMS and am having a few issues. 

Background: 

The source data is 2010 NAIP satellite imagery consisting of about 900
images (roughly corresponding to a US county) processed into 900
pyramids with the GDAL tools. We added these as 900 image pyramid
stores/900 layers in GeoServer and I am currently testing with a layer
group consisting of about half of these layers. The processed imagery is
stored on a 20 TB SAN. 

Our test server is a 64 bit Windows 2008 box running 64 bit Tomcat
7.0.20/Geoserver 2.1.1 with 4 GB of memory available to it (-Xmx4096M).
The 64 bit Java version is 1.6.0_27. We do not have GDAL or any native
JAI code installed at the moment. We are not using GeoWebCache yet. The
client software we are using is Nasa Worldwind.

Issues: 

The main issue we are having is with GeoServer not releasing memory.
After a fresh restart of Tomcat/GeoServer, when repeatedly running the
same request (which consists of requesting a set of tiles for a view
with the eye point about 500 miles above the surface), the performance
is acceptable for about the first 7 or so transactions. After this the
performance degrades significantly until it reaches the point that the
requests just time out.

In looking at the performance monitors, GeoServer keeps grabbing more
and more memory with every request and the performance degradation
occurs once the maximum heap size has been reached. I've tried tweaking
the various performance settings and saw the largest improvement in
memory usage when I turned off JAI Tile Recycling.

When our GeoServer has reached maximum heap size, the first few lines of
jmap -histo are: 

num     #instances         #bytes  class name
----------------------------------------------
   1:      31288522     3271712504  [B
   2:         22653      166615128  [[B
   3:        496962       33813848  [C
   4:        228869       17929440  [I
   5:        512471       16399072  java.lang.String
   6:        507465       16238880  java.util.HashMap$Entry
   7:        171957       14780896  [Ljava.util.HashMap$Entry;
   8:         95652       14719808  <constMethodKlass>
   9:         95652       13024320  <methodKlass>
  10:        228519       10997352  [Ljava.lang.Object;
  11:          9251       10996496  <constantPoolKlass>
  12:        312358        9995456  java.util.Hashtable$Entry
  13:        145426        9855192  [Ljava.util.Hashtable$Entry;
  14:          4462        9602224
[Lit.geosolutions.imageio.plugins.tiff.TIFFField;
  15:        154694        8479584  <symbolKlass>

Other issues (possibly related):

1. Certain of our stores/layers cause the following warning: "WARN
[imagemosaic.catalog] - BBOXFilterExtractor::extractBasicProperties():
passed typename is null, using: 7". The number at the end varies.
2. 99% of our stores/layers load in OpenLayers almost instantaneously
when loaded individually. A few generate a large amount of disk activity
and take much longer to load, these have been removed for now and we
will reprocess them later.

Sorry for the long winded message, but I thought it was important to be
somewhat detailed. At the moment, I am in the process of building the
source code so that I can do some of my own analysis. Any insights any
of you may have would be welcome.

Thank you for your time,

- Mark

------------------------------------------------------------------------------
EMC VNX: the world's simplest storage, starting under $10K
The only unified storage solution that offers unified management 
Up to 160% more powerful than alternatives and 25% more efficient. 
Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
_______________________________________________
Geoserver-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Reply via email to