Announcement Announcement Module
Collapse
No announcement yet.
CPU Utilization Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • CPU Utilization

    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.

    Pls advice! ..

    /Michael

  • #2
    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.

    Comment


    • #3
      CPU utilization continued

      Hi

      Well we are not allowed to change. The operations department is outsourced and they have standard policies. One of them is using Jrockit under BEA Weblogic server.

      1) Could you/anyone give a tip to getting rid of this optimizer thread that we for sure dosnt need anyway?

      2) Alternatively suggest what dynamic proxy implementation the Jrockit Weblogic optimizer thread likes or how to get cglib working/coexist with the Weblogic optimizer thread without peaking sky high?

      /Michael

      Comment


      • #4
        Originally posted by flexzor View Post
        Hi

        Well we are not allowed to change. The operations department is outsourced and they have standard policies. One of them is using Jrockit under BEA Weblogic server.



        Originally posted by flexzor View Post
        1) Could you/anyone give a tip to getting rid of this optimizer thread that we for sure dosnt need anyway?
        I never encountered such a wls feature. However, you may ask BEA support about the feature purpose and what kind of optimizations it performs and how to turn it off.


        Originally posted by flexzor View Post
        2) Alternatively suggest what dynamic proxy implementation the Jrockit Weblogic optimizer thread likes or how to get cglib working/coexist with the Weblogic optimizer thread without peaking sky high?

        /Michael
        You can try JDK-based proxies or AspectJ weaving (either load- or compile-time).

        From my point of view the first thing to point out is what is the purpose of 'Weblogic Optimizer Thread' and why it extensively uses system resources in the case of cglib-generated classes presence.

        Comment

        Working...
        X