----- Original Message -----
From: "Johnny Kewl" <[EMAIL PROTECTED]>
To: "Tomcat Users List" <users@tomcat.apache.org>
Sent: Sunday, September 07, 2008 9:58 AM
Subject: Re: Tomcat 6 Memory problem
----- Original Message -----
From: "Barak Yaish" <[EMAIL PROTECTED]>
To: "'Tomcat Users List'" <users@tomcat.apache.org>
Sent: Sunday, September 07, 2008 9:25 AM
Subject: Tomcat 6 Memory problem
Bouncing, in case someone missed this post...
Is this thread should be relocated to the dev list?
Thanks again,
Barak.
-----Original Message-----
From: Barak Yaish [mailto:[EMAIL PROTECTED]
Sent: Thursday, September 04, 2008 1:23 PM
To: users@tomcat.apache.org
Subject: Tomcat 6 Memory problem
Hello all,
I'm running Tomcat 6.0.16 on CentoOS 5, linked with native library. I
deployed a Servelt, which on invocation executes an RMI call to a remote
RMI
server. Tomcat configured with max heap size of 2G
After short time of running under heavy load, the memory consumption
reported by top is close to 2G. jmap output is:
Attaching to process ID 20248, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 1.6.0-b105
using thread-local object allocation.
Parallel GC with 4 thread(s)
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 2147483648 (2048.0MB)
NewSize = 1048576 (1.0MB)
MaxNewSize = 4294901760 (4095.9375MB)
OldSize = 4194304 (4.0MB)
NewRatio = 2
SurvivorRatio = 8
PermSize = 16777216 (16.0MB)
MaxPermSize = 268435456 (256.0MB)
Heap Usage:
PS Young Generation
Eden Space:
capacity = 582221824 (555.25MB)
used = 0 (0.0MB)
free = 582221824 (555.25MB)
0.0% used
From Space:
capacity = 48103424 (45.875MB)
used = 48079216 (45.85191345214844MB)
free = 24208 (0.0230865478515625MB)
99.9496751000511% used
To Space:
capacity = 69402624 (66.1875MB)
used = 0 (0.0MB)
free = 69402624 (66.1875MB)
0.0% used
PS Old Generation
capacity = 1431699456 (1365.375MB)
used = 1424597528 (1358.6020736694336MB)
free = 7101928 (6.772926330566406MB)
99.50395119798104% used
PS Perm Generation
capacity = 35782656 (34.125MB)
used = 28493056 (27.173095703125MB)
free = 7289600 (6.951904296875MB)
79.62811927655677% used
I've dump a file using jmap, and asked MemoryAnalyzer
(www.eclipse.org/mat)
to take a look. This tool reported that an instance of
java.security.Policy
retained 77.7% of the heap (552,569,816 bytes).
I would like to ask whether this behavior seems normal?
Thanks,
No not normal.... you runneth out of juice...
I dont know this native lib you using... what happening is every thread in
TC is making another one of these dll/so's
You probably going to have to find the source and study it a little, but
normally a native lib should be invoked in a static call...
If this is not the case, its breeding like a rabbit... a new native on
every thread.
The guys that designed it will probably know... but I think you going to
have to put part of this animal in the servlet init... so it only wakes up
once.
And then make sure you know if its multithreaded, or must be protected...
sync'd
If you do have the source, you cant change that section without remaking
stubs... so rather try init it just once.
The other thing about natives is that unlike Java that doesnt really care
if its on 64 bit or 32 bit... natives do care.
So if your JRE is 32 bit now... even when you later get a nice big fat 64
bit monster... Java must stay on 32 bit... unless you can find a 64 bit
native.
More or less... going to have to ask the guys that made it, or peek at the
code
Have fun...
Just an after thought... do you have anything like the task manager in linux
that windows has...
I seem to remember something like that on debian...
Anyway... on windows heap space and that stuff doesnt show you much... its
the handles that we watch...
And why they useful... is that as soon as heavy load comes off... those
handles quickly recover, if they dont, you leaking ;)
In your case the old heap is filling... and in theory that old heap should
only hold long lived objects (so mel tells me)..
ie things like a xml parser and that sort of stuff... the eden should be
rising and falling like a yoyo, and the old heap should stable out...
Anyway... if you can just find the equive of task manager handles on your
linux... its easier to watch.
I think ;)
---------------------------------------------------------------------------
HARBOR : http://www.kewlstuff.co.za/index.htm
The most powerful application server on earth.
The only real POJO Application Server.
See it in Action : http://www.kewlstuff.co.za/cd_tut_swf/whatisejb1.htm
---------------------------------------------------------------------------
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]