see http://jira.codehaus.org/browse/GEOT-3145 ------------------------------------------------------- Ing. Simone Giannecchini GeoSolutions S.A.S. Founder - Software Engineer Via Carignoni 51 55041 Camaiore (LU) Italy
phone: +39 0584983027 fax: +39 0584983027 mob: +39 333 8128928 http://www.geo-solutions.it http://geo-solutions.blogspot.com/ http://www.linkedin.com/in/simonegiannecchini http://twitter.com/simogeo ------------------------------------------------------- On Wed, Jun 16, 2010 at 4:44 PM, Mathieu Lavoie <mathieu.lav...@valtus.com> wrote: > Hi Simone, > > First thank you for your quick answer. > > > I've updated our layers to use the multithreading. With the default > configuration I've found it's faster this way for less than 5 users. > > > My test was to create x users and generate 10 requests for each of them. > > I did a lot of testing using different configuration. > > I've tried changing the workQueue object ofthe ThreadPoolExecutor for > SynchronousQueue and ArrayBlockingQueue. In both cases some tasks are dropped > (pass +/-15 users). So these 2 queues might be useful but require more fine > tuning. > > I've switched back to the default queue, LinkedBlockingQueue with > corePoolSize set to 16 which gave me the vest overall result. > > Here are some results: > > > AllowMultithreading=true, default pool setting > users avg Median 90% > 1 1670 1986 2416 > 5 1495 1510 2381 > 10 2278 2289 3392 > 15 3885 3945 5136 > > AllowMultithreading=false > > users avg Median 90% > 1 2217 2417 3253 > 5 1763 1635 3037 > 10 2370 2325 3450 > 15 2821 2553 4779 > > AllowMultithreading=true, LinkedBlockingQueue with corePoolSize=16 > users avg Median 90% > 1 1669 1980 2407 > 5 1371 1279 2207 > 10 1756 1580 2798 > 15 2599 2464 4430 > > thanks > > Mathieu > > > > ________________________________________ > From: simbo...@gmail.com [simbo...@gmail.com] On Behalf Of Simone > Giannecchini [simone.giannecch...@geo-solutions.it] > Sent: Wednesday, June 16, 2010 6:28 AM > To: Mathieu Lavoie > Cc: geoserver-devel@lists.sourceforge.net > Subject: Re: [Geoserver-devel] Fixed number of threads used by > ImageMosaicReader from the ImageMosaic plugin > > Ciao Mathieu, > two things: > > -1- By default we do not use that multithreading switch, so it should > not impact your requests > -2- In newer version of the plugin we are making that thread pool configurable > > Question, which are the values for the mosaic parameters that you are using? > > Ciao, > Simone. > ------------------------------------------------------- > Ing. Simone Giannecchini > GeoSolutions S.A.S. > Founder - Software Engineer > Via Carignoni 51 > 55041 Camaiore (LU) > Italy > > phone: +39 0584983027 > fax: +39 0584983027 > mob: +39 333 8128928 > > > http://www.geo-solutions.it > http://geo-solutions.blogspot.com/ > http://www.linkedin.com/in/simonegiannecchini > http://twitter.com/simogeo > > ------------------------------------------------------- > > > > On Tue, Jun 15, 2010 at 5:39 PM, Mathieu Lavoie > <mathieu.lav...@valtus.com> wrote: >> Hi, >> >> I'm running a Jmeter test that send some WMS requests to Geoserver to >> investigate a performance issue we encounter while deploying our app. I can >> see that the time to respond is really slowing down for more than 5 users. >> >> Looking at the threads usage using JVisualVM, I've found that the number of >> threads used by the ImageMosaicReader was not adjusted to reach the >> maximumPoolSize. >> >> I've done some tests by increasing the corePoolSize value to a higher value >> and, in my case, the average time to process a WMS request is faster. >> >> An average of 2852ms with corePoolSize=8 threads compare to 3885ms with >> corePoolSixe=4 with 15 users doing 10 calls each. >> >> We're running Geoserver 2.0.2 on a 2 Quad-Core server with 32GB RAM, so our >> server can handle more threads. >> >> Unfortunately, the corePoolSize and maximumPoolSize value are hard coded in >> the ImageMosaicReader class and since the ThreadPoolExecutor is using a >> LinkedBlockingQueue, the maximumPoolSize is not used. In other word, the >> number of useful threads is 4: >> >> >> public final class ImageMosaicReader extends AbstractGridCoverage2DReader >> implements GridCoverageReader { >> >> /** Logger. */ >> private final static Logger LOGGER = >> org.geotools.util.logging.Logging.getLogger(ImageMosaicReader.class); >> >> final static ExecutorService multiThreadedLoader= new >> ThreadPoolExecutor(4,8,30,TimeUnit.SECONDS,new >> LinkedBlockingQueue<Runnable>()); >> >> Is there a particular reason to have those values hard coded? >> >> Is there any chance that a future version includes a way to customize those >> values either by the Geoserver UI or a properties file? >> >> And in the mean time, is there another possible workaround other than >> recompiling the gt-imagemosaic jar. >> >> >> Thank you >> >> >> >> ------------------------------------------------------------------------------ >> ThinkGeek and WIRED's GeekDad team up for the Ultimate >> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the >> lucky parental unit. See the prize list and enter to win: >> http://p.sf.net/sfu/thinkgeek-promo >> _______________________________________________ >> Geoserver-devel mailing list >> Geoserver-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/geoserver-devel >> > ------------------------------------------------------------------------------ > ThinkGeek and WIRED's GeekDad team up for the Ultimate > GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the > lucky parental unit. See the prize list and enter to win: > http://p.sf.net/sfu/thinkgeek-promo > _______________________________________________ > Geoserver-devel mailing list > Geoserver-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/geoserver-devel > ------------------------------------------------------------------------------ ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit. See the prize list and enter to win: http://p.sf.net/sfu/thinkgeek-promo _______________________________________________ Geoserver-devel mailing list Geoserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-devel