Discussions

Performance and scalability: Websphere CPU utilization - SimpleFileServlet

  1. I'm seeing major CPU utilization hits on the WebSphere server. The CPU utilization is gradually increasing, then after a certain amount of time it booms up to 95%. Stays there until we re-boot the server. I have narrowed it down to the servlet "SimpleFileServlet". Anyone seen or experienced anything like this? Any ideas?

    Thanks.
  2. Swami.
    I am not sure what version of WebSphere your using, but I can tell you that some fixes are out to fix issues with serving static files with regards to SimpleFileServlet. You might want to check the IBM web site for a possible fix.
  3. DeWayne,
    I'm using WAS v4.01. Are there any fixes for this version to solve the file serving servlets problem? Thanks in advance for the reply.
  4. So what makes you think it's the SimpleFileServlet? I'm interested in why it looks like this. Did you do several threadDumps on the JVM over a period of several minutes? Did you run something like truss -pf (if on Solaris) to see what the CPUs were actually spending time doing?

    I've seen something similar, but it wasn't from SimpleFileServlet. It was from bad code that executed an infinite loop.
  5. Hi,

    We've experienced exactly the same problem. However, we've been unable to narrow it down despite using JInsight, so I'm interested to hear that it may be the file serving servlet.

    Curiously, we never had any problem/memory leak with Weblogic 6.1 - it ran for weeks. The problem started when we migrated the application to Websphere 4.0.3 AE. Since we are using the latest fix pack I don't think there is a fix to this yet.

    I'll try removing the file serving servlet as we only use it to serve an error page - since we're using Apache as the webserver I can do this with the ErrorDocument directive.

    Have you stopped the problem happening by removing the file serving servlet?

    Cheers,
    Steve

  6. The Introscope tool can help you find bottlenecks within WebSphere apps (or any J2EE applications) as the app runs in Production or in QA under heavy load. It is pretty cool. Shows you what is going on within the JVM under load down to the method level. I've used it to monitor my app and then find problems when they appear.