Thanks to multiple people responding to this!

My site diglloyd.com serves almost entirely static content, with many large JPEG files.

I have set:
CATALINA_OPTS=-Xmx1024M

That's limiting the JVM to 1GB of memory. And in tomcat/conf/ context.xml, I set:

<Context cacheMaxSize="1500000" cacheTTL="60000" cachingAllowed="true" >

Therein presumably lies the problem. I'll change CATALINA_OPTS to be 2GB or so and retry.


Mark, it would be helpful to be able to say "don't cache anything larger the N kilobytes/megabytes". I'd probably use a setting of 2MB or so for that.

Lloyd

Lloyd Chambers
http://diglloyd.com

[Mac OS X 10.5.2 Intel, Tomcat 6.0.16]




On Sep 26, 2008, at 4:07 AM, Mark Thomas wrote:

DIGLLOYD INC wrote:
I have some large zip files I want to make available for download. When
I try to download a 70MB file, tomcat is trying to cache these huge
files (it seems). The result is that downloading them always fails. I
*want* caching for most everything eg jpegs, html, etc and I've set
tomcat to use up to 1.5GB of memory.

Do you mean you have set cacheMaxSize="1500000" on the context?

Which JVM are you using? Particularly, are you using a 32bit or 64bit JVM?

Is there a way to limit the size of the file that will be cached?
Not at present. The maximum (cacheObjectMaxSize) is set to
(cacheMaxSize/20). I can see a case for making cacheObjectMaxSize
configurable. The cache should probably use the smaller of
(cacheMaxSize/20) and cacheObjectMaxSize.

It's
regrettable that failure to cache a file can't gracefully degrade into
just not caching it.
It isn't possible to handle OOMs gracefully. Once they occur you have to
assume the JVM is toast and restart it.

Providing you have enough memory configured for the JVM to support the
cache size you have asked for plus the other memory you need to run Tomcat,
the cache will be fine and you won't see an OOM.

It appears in this case that the failure is that your JVM doesn't have
enough memory configured. With sufficient memory head room you should be fine. The current cache implementation requires more headroom than is the ideal. Limiting cacheObjectMaxSize should reduce the headroom required.

Mark



---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to