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.
At some point we will have a streaming server, which would solve the problem. But not today :( Heiko Klein wrote: > 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 >>>>> to >>>>> greatly 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 >>>>>> the >>>>>> whole 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. >
thredds
archives: