This forum is now a read-only archive. All commenting, posting, registration services have been turned off. Those needing community support and/or wanting to ask questions should refer to the Tag/Forum map, and to http://spring.io/questions for a curated list of stackoverflow tags that Pivotal engineers, and the community, monitor.

CPU Utilization

Oct 15th, 2008, 01:50 AM

Hi

We have created an application stack of a web application based on spring mvc on spring 2.5 running on tomcat and an app tier application (weblogic annotated webservices) running dao classes on spring 2.5. We use AOP (cglib) for logging responsetimes against the backend legacy systems and for transaction handling against our local database. Everything seems to run fine, BUT! on the weblogic server (weblogic 10 MP1 running Jrockit 150_11) cpu utilization goes crazy literaly! Really this application is not rocket science and by just running one user the cpu can peak at 80% utilized! Hehe..yes we have checked it for buggy code. Spend 2 weeks to finetune all we could think of as we have been running a load test period.

Now heap is set correct, GC running as it should so that is not the problem. When I do a top -p <process> -H on solaris I can see the threads running. Hmm..what I discover is a "Weblogic Optimizer thread" running a lot taking up to 100% cpu sometimes. We ran JProfiler on it and found that it seems to be loving trying to optimize on the cglib classes! There is no way to turn of the damm optimizer thread in weblogic 10 from what i can read in forums and documentation.

Has anyone expirenced this with the cglib issue and especially does anyone have a clue on what to do. The optimizer thread seems to be running for runtime optimizations on most executed code and obviously the dynamic proxies are used a lot as we are logging before and after method execution hence run more or less all the time.

Why don't just use Sun JVM? Moreover, I can share that we had a problem with jrockit under SunOS - sometimes JVM just crashed. The reason for that was incorrect CMS collector work. However, BEA guys unofficially said that jrockit is optimized for Linus & x86 processors only. We started to use Sun JVM eventually.