NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
Thanks all for your replies,it is a pity that thredds/opendap cannot be configured to check available memory before serving a request. We have enabled the http-server, but this won't solve the problem of people pressing the 'Get Ascii' button and with that causing a DoS attack, accidentally or not.
On the other hands, this answers my former question concerning thredds-administration. I will start looking for a 64bit machine full with memory.
Best regards, Heiko Ethan Davis wrote:
Hi Heiko, Roy is right, the TDS requires a good amount of memory to handle large OPeNDAP data requests. (And the OPeNDAP ASCII requests, in particular, are very big memory hogs.) For downloads of entire files, you might consider enabling straight HTTP access for your data files (more on that below). On a 32-bit machine, there is 2GB of addressable memory. The JVM heap space is limited at closer to 1.5 or 1.6 GB. A 64-bit machine/OS/JVM will definitely give you more room to play. Straight HTTP downloads ... If you don't already have the TDS setup to serve data over HTTP, you will need to modify the configuration catalogs to include the HTTP service. It should look something like the following: <service name="all" serviceType="Compound" base="" > <service name="odap" serviceType="OpenDAP" base="/thredds/dodsC/" /> <service name="http" serviceType="HTTPServer" base="/thredds/fileServer/" /> </service> with datasets referencing the serviceName "all". More information can be found at http://www.unidata.ucar.edu/projects/THREDDS/tech/tutorial/ConfigCatalogs.html Ethan Roy Mendelssohn wrote:Yes, but in reality it doesn't appear to work on even that big a setting. I believe some people have THREDDS working in 64-bit (see for example http://www.unidata.ucar.edu/mailing_lists/archives/thredds/2008-March/001008.html) , but we do not. Our experience is that is takes a reasonably larger amount of heap than the file size to deal with it.Happy Thanksgiving Nathan, -Roy On Nov 27, 2008, at 10:01 AM, Nathan Potter wrote:Isn't the JVM heap a capped at 2GB for 32-bit operating systems/JVM's? On Nov 27, 2008, at 7:19 AM, Roy Mendelssohn wrote:I do believe THREDDS does all f its work in memory, if so you have togreatly increase the java hep settings. We run at 1500Mb and still run into this. I would be curious to know if even with a very large heap size if file sof tha size can be successfully transferred. -Roy On Nov 27, 2008, at 7:11 AM, Heiko Klein wrote:Hi, I use thredds as opendap server for some large netcdf-files (CF-1.0, size > 1.1GB). When selecting to download the whole file with the 'Get ASCII' or 'GET BINARY', thredds crashes with a 'Java heap error'.I'm currently using a default memory setup, i.e. -Xmx512MB for tomcat. How much memory will I need to avoid this problem. Does DODS read thewhole file at once or variable after variable, or even slice after slice? Or are there some adjustments I can make to reduce memory consumption? Best regards, Heiko Details: DODServlet ERROR (anyExceptionHandler): java.lang.OutOfMemoryError: Java heap space ReqState: serverClassName: 'thredds.server.opendap.NcDODSServlet' dataSet: 'XXXX.nc' requestSuffix: 'ascii' CE: '' compressOK: true InitParameters: DebugOn: '' maxNetcdfFilesCached: '10' java.lang.OutOfMemoryError: Java heap space at ucar.nc2.N3raf.readData(N3raf.java:77) at ucar.nc2.N3iosp.readData(N3iosp.java:159) at ucar.nc2.NetcdfFile.readData(NetcdfFile.java:1374) at ucar.nc2.Variable._read(Variable.java:923) at ucar.nc2.Variable.read(Variable.java:618) at thredds.server.opendap.NcSDArray.read(NcSDArray.java:102) at thredds.server.opendap.NcSDGrid.read(NcSDGrid.java:59) at opendap.servlet.AsciiWriter.writeAsc(AsciiWriter.java:95) at opendap.servlet.AsciiWriter.toASCII(AsciiWriter.java:56) at opendap.servlet.AbstractServlet.doGetASC(AbstractServlet.java:1029) at opendap.servlet.AbstractServlet.doGet(AbstractServlet.java: 1630) at thredds.server.opendap.NcDODSServlet.doGet(NcDODSServlet.java:269) at javax.servlet.http.HttpServlet.service(HttpServlet.java:698) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) ... Thredds-Version: Built-By: caron Built-On: 2008-02-20 22:56:05 Implementation-Title: THREDDS Data Server Implementation-Version: 3.16.33 Implementation-Vendor: UCAR/Unidata Running on tomcat 6.0.16 with jdk.1.6.0_04 on debian 4.0.
-- Dr. Heiko Klein Tel. + 47 22 96 32 58 Development Section / IT Department Fax. + 47 22 69 63 55 Norwegian Meteorological Institute http://www.met.no P.O. Box 43 Blindern 0313 Oslo NORWAY
thredds
archives: