A few questions in this one:
The following is a log of a recurring issue with our ColdFusion 8 Standard server.
The JRun server is currently crashing every other day with the active thread error (error 1).
If the ColdFusion service is not restarted the system will then proceed to run out of memory (error 2) despite Windows still having 0.5 – 1GB to spare
A couple of things worth noting:
- The server normally runs with a thread count of 170 – 190
- When a crash is in progress this jumps to > 400
- There doesn’t appear to be a specific script or schedule to the crashes
- When tweaking the JVM Config attempts to assign more than 1024MB of heap space result in failure to start JRun
Preventative action
- We’ve switched the server to use Oracle’s JRockit JVM due to the monitoring tools available with this VM
- We’ve tuned the heap to use 1024MB static heap size with a 100M nursery (see VM Config below)
- We’re using an aggressively tuned GC (see VM Config below)
Questions
- Why won’t the JVM address more than 1024MB of RAM? Is this a limitation of 32 bit Windows / Java?
- Why doesn’t the GC handle the thread count before it gets out of hand?
- Is this expected from a 32 bit server once load reaches a certain level?
- Is there any way to identify the CF scripts that are causing the thread count to climb?
- Would switching to 64bit OS address these issues?
Answers
- On a postcard please …
(More info, configs, log snippets etc is available from the original blog post at http://blog.rubicon.je/ )