We use both of these GC's under different circumstances. Concurrent mark
sweep GC is useful in that it is a little less heavy handed (using a 2 step
recovery
process that ties to young GC), but either of these GC's will work.
Your description of your "memory" leak problem sounds very much like
your perm gen GC is not running - or at least is not adequately recovering
memory. That is eerily similar to the scoping problem I mentioned. Here's a
stop gap
That might work and thankfully falls short of restarting CF on your server
:)
Next time it gets close to locking up try this code:
<cfset obj = createObject("java","java.lang.System")/>
<cfset obj.gc()/>
<cfset obj.runFinalization()/>
If it works you can put together a scheduled task runs every few minutes
and kicks in the full GC when free mem goes too low... something like this.
<Cfset runtime = CreateObject("java","java.lang.Runtime").getRuntime()>
<cfset fm = runtime.freememory()/>
<Cfset fm = int((fm/1024)/1024)/>
<!--- 1024 is the number of megs in your -Xmx: setting --->
<cfset usedmem = 1024-fm/>
<cfoutput>
Free: #fm# megs<br>
Used: #usedmem#<br>
</cfoutput>
<!--- set this number to something that makes sense to you this code runs a
full stop GC. --->
<Cfif fm le 200>
<cfset obj = createObject("java","java.lang.System")/>
<cfset obj.gc()/>
<cfset obj.runFinalization()/>
</CFIF>
Mark A. Kruger, CFG, MCSE
(402) 408-3733 ext 105
www.cfwebtools.com
www.coldfusionmuse.com
www.necfug.com
-----Original Message-----
From: Wil Genovese [mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> ]
Sent: Thursday, May 29, 2008 2:45 PM
To: CF-Talk
Subject: Re: When is is time to upgrade to Enterprise Edition?
Parallel GC is a different GC algorithm that works best with multi-
processors and large (Gb or greater) JVM heaps. We use parallel GC on our
servers with zero issues and we're pushing darn near a million page views
per day per server.
Those switches control the time interval between GC runs in seconds.
Wil Genovese
One man with courage makes a majority.
-Andrew Jackson
A fine is a tax for doing wrong. A tax is a fine for doing well.
On May 29, 2008, at 2:32 PM, Michael Patti wrote:
> Glad to hear I'm not totally off base with my settings. My server has
> 4 GB physical memory. One thing I'm unsure about: you recommend using
> '-XX:+UseParallelGC' for garbage collection. I've read a few articles
> that recommended '-XX:+UseConcMarkSweepGC' (which is what I'm using
> now). Why do you recommend ParallelGC?
>
> Also, I haven't seen references to the '-
> Dsun.rmi.dgc.client.gcInterval' and '- Dsun.rmi.dgc.server.gcInterval'
> switches before. What do those affect?
>
>> Michael,
>>
>> So far pretty good. Most people I talk to about this haven't even
>> heard about tuning their JVM. My article is not complete yet and
>> your past the parts that I have posted.
>>
>> So here are a few items for your java.args line. Your setting
>> maxpermsize and permsize. Good, but make them the same size. You
>> also need to get garbage collection under control. The last three
>> items will do that. This should get you going pretty smoothly. Also,
>> how much physical memory does your server have?
>>
>>
>> -XX:MaxPermSize=128m
>> -XX:PermSize=128m
>> -Dsun.rmi.dgc.client.gcInterval=600000
>> -Dsun.rmi.dgc.server.gcInterval=600000
>> -XX:+UseParallelGC
>>
>>
>> Wil Genovese
>>
>> One man with courage makes a majority.
>> -Andrew Jackson
>>
>> A fine is a tax for doing wrong. A tax is a fine for doing well.
>>
>> On May 29, 2008, at 1:54 PM, Michael Patti wrote:
>>
>>>
>
>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to
date
Get the Free Trial
http://ad.doubleclick.net/clk;192386516;25150098;k
Archive:
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:306309
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe:
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4