Question
CF MX 8 CPU Spikes
System:
CF MX 8 Ent. MultiServer
Server 2003 Enterprise. x64
Dual socket Quad core Xeon L5335
2.00GHz 4GB RAM
Problem:
Within 24 hours of instance startup, JRun reaches max heap, begins radically spiking CPU times across all eight cores. Not a solid CPU ramp, but spikes. These spikes appear to correlate to high PF Delta and Mem Dealta (Task Manager). PF Delta will hit 1k-2k just before a spike. At that very time, there is a mem alloc and dealloc justbefore, during, and after.
Background:
We currently have one instance for dev and one for live. The live instance gets about 500,000 hits per day, so a generous amount of traffic. Nearly all the pages are driven by 1-5 SQL (caching) queries to a neighboring SQL Server inches away. None of them are long running queries, all can execute within 16-95ms.
The most frequently used queries are built in onApplicationStart() and scoped to the Appliacation. Any page using these, cflock and duplicate to the variables scope.
There are 3 cfobject calls for CFC's in onApplicationStart() and scoped to the Appliacation. Any page using these, cflock and duplicate to the variables scope.
After a fresh start up of the live instance, everything runs fine for maybe a day. Memory climbs up to about 700-900M within a few minutes, everything is stable, the site is very responsive. Server Monitor shows response times near 10-20ms, requests per second bouncing between 6-30, with a narrow band around 15. Template cache eventually hits the limit and we're getting 100% cache hit. Query cache hits the limit and we get 90%+ cahche hit. Things are still very stable.
A fresh start yesterday morning and it ran great all day (after learning to NOT leave SM memory tracking on). I get up this morning and JRun has taken 1.25GB of RAM, and is spiking all over the CPU cores. SM Response times now leap 0 to 200ms with occasional 1000ms response times. Requests per second now leap 0 to 40, as if it is queuing things up and finally being able to deliver. Site responsivness simulates what I see in SM requests per second. Lots of delay and then quick access, back and forth.
The site has bee deployed for 1 week and I've had to restart it every morning to clean it up. It really behaves like a memory leak.
JMC Settings:
Max Heap Size: 1GB (I've tried 2GB and it only delays the problem.)
VM Args:
-server -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:+UseParallelGC -Xbatch -Dcoldfusion.rootDir={application.home}/ -Djava.security.policy={application.home}/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/coldfusion.policy -Djava.security.auth.policy={application.home}/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/neo_jaas.policy
Instance Settings:
Max Templates Requests: 400
Max Running JRun Threads: 25
Max Queued JRun Threads: 600
Cached Templates: 400
Cached Queries: 400
What to look for? Direction to proceed in for troubleshooting.
-Dan
CF MX 8 Ent. MultiServer
Server 2003 Enterprise. x64
Dual socket Quad core Xeon L5335
2.00GHz 4GB RAM
Problem:
Within 24 hours of instance startup, JRun reaches max heap, begins radically spiking CPU times across all eight cores. Not a solid CPU ramp, but spikes. These spikes appear to correlate to high PF Delta and Mem Dealta (Task Manager). PF Delta will hit 1k-2k just before a spike. At that very time, there is a mem alloc and dealloc justbefore, during, and after.
Background:
We currently have one instance for dev and one for live. The live instance gets about 500,000 hits per day, so a generous amount of traffic. Nearly all the pages are driven by 1-5 SQL (caching) queries to a neighboring SQL Server inches away. None of them are long running queries, all can execute within 16-95ms.
The most frequently used queries are built in onApplicationStart() and scoped to the Appliacation. Any page using these, cflock and duplicate to the variables scope.
There are 3 cfobject calls for CFC's in onApplicationStart() and scoped to the Appliacation. Any page using these, cflock and duplicate to the variables scope.
After a fresh start up of the live instance, everything runs fine for maybe a day. Memory climbs up to about 700-900M within a few minutes, everything is stable, the site is very responsive. Server Monitor shows response times near 10-20ms, requests per second bouncing between 6-30, with a narrow band around 15. Template cache eventually hits the limit and we're getting 100% cache hit. Query cache hits the limit and we get 90%+ cahche hit. Things are still very stable.
A fresh start yesterday morning and it ran great all day (after learning to NOT leave SM memory tracking on). I get up this morning and JRun has taken 1.25GB of RAM, and is spiking all over the CPU cores. SM Response times now leap 0 to 200ms with occasional 1000ms response times. Requests per second now leap 0 to 40, as if it is queuing things up and finally being able to deliver. Site responsivness simulates what I see in SM requests per second. Lots of delay and then quick access, back and forth.
The site has bee deployed for 1 week and I've had to restart it every morning to clean it up. It really behaves like a memory leak.
JMC Settings:
Max Heap Size: 1GB (I've tried 2GB and it only delays the problem.)
VM Args:
-server -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:+UseParallelGC -Xbatch -Dcoldfusion.rootDir={application.home}/ -Djava.security.policy={application.home}/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/coldfusion.policy -Djava.security.auth.policy={application.home}/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/neo_jaas.policy
Instance Settings:
Max Templates Requests: 400
Max Running JRun Threads: 25
Max Queued JRun Threads: 600
Cached Templates: 400
Cached Queries: 400
What to look for? Direction to proceed in for troubleshooting.
-Dan
