Search code examples
javacoldfusiongarbage-collectionjvmjconsole

ColdFusion JVM: strange memory behaviour


Since last month, we got a problem on our company's server (Win2008ServerStd + IIS7 + CF enterprise 9.0.1 (hotfix2)).

I used jConsole to monitor the Coldfusion JVM (1.6.0_24) activity and here's what I see:

Curve1

Curve2

Notice that strange "curve" between 14:10 and 14:15 ! What is that?

Obviously it's not a standard behaviour, when it happens, my applications hang for 30 to 70 seconds!

Do you know what can cause that memory issue? It seems like GC does not run correctly, or hangs itself.

I don't expect a flash-answer, I wonder there can be a lot of root problems causing that but.... where can I start investigating?


Solution

  • Using cfstat, perfmon, fusionreactor, or cf perfomance monitor take a look at running requests and queued duing your problem. What you will likely see is running requests climbing past the setting of the simultaneous requests (in the cf admin). Then the requests will start to queue. Eventually the queue will clear out (if your server is recovering on it's own).

    This sort of thing can be caused by a number of things. For example, if your DB server slows down or has an issue, if your network has a problem, or if network ports are resyncing, if your disks have I/O problems etc.

    My guess is that you will drive yourself batty trying to figure this out by monitoring your heap. See if you can watch one of the monitors for some specific scripts that might be the culprit.

    The other comment (about some indexing agents) is also a possibility. A flurry of indexing can definitely cause behavior. If that's the case, you might take a look at the simultaneous request settings. If it is set at the default you might have enough head room to increase it.