Skip to main content
Participant
December 17, 2008
Answered

ColdFusion not using -Xms JVM argument I specified

  • December 17, 2008
  • 3 replies
  • 2462 views
I have a ColdFusion instance that I'd like to configure to use a MINimum amount of memory. I'm setting the minimum heap size value to be equal to the maximum heap size value so CF can just grab the memory all at once and not have to worry about messing with the size of the heap. The problem is when the ColdFusion service starts, it's NOT grabbing the 256MB of memory I told it to grab, it's only grabbing ~80MB. The strange thing is it will obey the MAX heap size I have set AND if I set the -Xms attribute to a value of "0m" the service won't start up. So it appears to be USING the value of the -Xms parameter to some degree. I'm at a loss as to why this is happening. Does anyone have any ideas? Below are the JVM args in the jvm.config file for my particular instance.

java.args=-Xms256m -Xmx256m -server -Dsun.io.useCanonCaches=false -XX:MaxPermSize=128m -XX:+UseParallelGC -DJINTEGRA_NATIVE_MODE -DJINTEGRA_PREFETCH_ENUMS -Dcoldfusion.rootDir={application.home}/

I am running CFMX 7.0.2 Enterprise using multi-server instances on Windows 2003
    This topic has been closed for replies.
    Correct answer Kurt1
    Totally forgot to update this post. Adam, thanks for mentioning the Windows Task Manager isn't always very accurate, that turned out to be the case. CF WAS allocating memory properly, the Task Manager wasn't showing it consistently across machines. I had the Task Manager show the amount of memory for a process that was stored in virtual memory in addition to the default columns it displays, and sure enough, everything added up to what I told CF to allocate.

    Thanks for your help

    3 replies

    December 19, 2008
    And you can easily figure that out by commenting out the JAVA.HOME line and trying to start the service. It fails, you figured out which config file you're using :)

    Or you could dig through the registry.....
    Inspiring
    December 17, 2008
    > I'm setting the minimum heap size value to be equal to the maximum
    > heap size value
    > [...]
    > the 256MB of memory I told it to grab,

    256MB seems like a pretty small heap to allocate, btw.

    --
    Adam
    Kurt1Author
    Participant
    December 18, 2008
    I'm fully aware that CF runs on top of Java and how they mesh with each other. 256MB is small yes, I plan to bump it up to 1024MB once the -Xms is actually being used. I can tell that the JVM for the CF instance is not grabbing the minimum amount of memory I set because when I start the service for the instance I'm working with, I can see the new process in the "Processes" tab of the Windows Task Manager, and it never exceeds ~80MB, even after running for a little while.

    I have the minimum heap size set to 1GB for one of my production servers, and it grabs 1GB of memory right away after the service starts. The only difference between the server I'm having issues with and the production server is that the one I'm having issues with is a multi-instance install, versus a regular install of CF (without instances).
    Inspiring
    December 17, 2008
    First of all - and it's a slightly semantical point - but CF doesn't grab
    any memory from the system at all. CF is a Java application, and the *JVM*
    grabs the memory. It's got nothing to do with CF.

    But that's mostly beside the point.

    How are you determining that the JVM isn't grabbing the memory?

    --
    Adam