CF9 + JRUN = 1.19GB RAM usage. Safe?

Just to give you a little background on my situation.

I've inherited a very old CF site that's coded very very badly.

Recently, we had a severe crash and let's just say we upgraded the whole box.

We went from 2GB Ram and CF8 to 4gb Ram and CF9 on a Win2k3 R2 box running IIS6.

We've had some crashes after that regarding the JVM OutOfMemory Garbage Collecting.

I've since, tweaked the JVM startup and it's stable so far.

My question is this: jrun.exe is pinned at 1.19GB ram right now. Is this sorta high? The site is very well trafficked. We sustain anywhere from 200-700 people at a time at all hours of the day.

I'm wondering if there's something else I can do to help minimize the ram usage of jrun. Not even sure it's even necessary, but I wanted to throw this question out there to the CF universe :)

Thanks for your input!

Comments
Shawn Holmes's Gravatar What JVM build are you using?
32-bit or 64-bit?
What is your -Xmx and -Xms arguments set at for CF?
And...when you inherited it, did you happen to see any glaring "memory-leak"-ish holes out of the gate that you repaired, and if so, what kind were they?
# Posted By Shawn Holmes | 6/29/10 12:40 PM
admin's Gravatar JVM 32-bit (Win2k3 Standard 32-bit)

I tweaked the Maximum JVM Heap Size to 1024MB from 512MB (default).

These are my JVM startup arguments:
-server -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:+UseParallelGC -Dcoldfusion.rootDir={application.home}/../ -Dcoldfusion.libPath={application.home}/../lib -XX:-UseGCOverheadLimit

I don't have anything specified for -Xmx or -Xms. Any tips for these options? (and what are they too?)

As far as memory leakage, I didn't even monitor to know :(
# Posted By admin | 6/29/10 1:09 PM
Shawn Holmes's Gravatar Xmx and Xms are just command-line arguments to adjust the Maximum/Initial Heap, as you've already stated.

If the app constructs a hefty amount of CFCs, you may want to consider pushing the Maximum Heap up further (2048m) so that the JVM has plenty of memory to store them, rather than constantly running out of memory and having to flush the cache to make room for more CFCs, which is Disk I/O, which is a performance loss.

This isn't a long-term solution, though--this is a band-aid.

Regarding the memory leaks, this question was more a kind-of "eyeballing" of the code, rather than using a memory monitor.
# Posted By Shawn Holmes | 6/29/10 1:40 PM
Shawn Holmes's Gravatar Oh, you forgot to send over the Java Version you are using (JVM Build), ie. something along the lines of: 1.6.0_xx in the Server Settings Summary of CFAdmin.
# Posted By Shawn Holmes | 6/29/10 1:50 PM
Wil Genovese's Gravatar Yes, on a 32bit system 1.19Gb of ram usage CAN be safe. You will have to make sure there is enough physical RAM in the server to deal with all the other resources chewed up by Windows.

Since you have CF9 which is 64bit in both standard and enterprise version I would VERY HIGHLY recommend running a 64bit OS. It really helps when running large application that need more memory.
# Posted By Wil Genovese | 6/29/10 3:27 PM
admin's Gravatar @Shawn: 1.6.0_14
# Posted By admin | 6/30/10 1:26 AM
Mike Collins's Gravatar Please check your /jrun4/bin/jvm.config

What does your
# Arguments to VM
java.args=

state?

You can just remove the xms argument so that the jvm does not always hold memory.

Although at 1.1 gig this looks like something the app is doing.

My Mura CMS server as sitting at 200meg.

What you need to do is go into the Server Monitor and start Memory tracking and then look at all the scopes and variables. Turn it off when you have it figured out.
# Posted By Mike Collins | 6/30/10 10:10 AM
Shawn Holmes's Gravatar I have to agree with Mike. Your best bet now is to start fixing the code. You might try a newer Java VM (1.6.0_20) but I doubt you'll see much (if any) improvement.
# Posted By Shawn Holmes | 6/30/10 12:55 PM

Calendar

NAVIGATION

Recent Entries

Recent Comments

RSS

Search

Subscribe

Tags