Hi Scott,

We're running Resin 4.0.5 for a heavy traffic site (100K+ Pageviews in an
hour) for a couple of months.

In the past several days I've experienced frequent failing responding of
requests after two or three hours a Resin instance was started.

The environment:
Hardware: 16 cores with 24GB ram
OS: Centos 5.5 64bit
Java Version: Oracle JRockit(R) (build
R28.0.0-679-130297-1.6.0_17-20100312-2121-linux-x86_64, compiled mode)
Database: Mysql 5.1.47 64bit (on another Centos 5.5 box with 8 cores and
12GB ram)

The situation:
* Java process running the resin CPU utilization: raised from the
usual 60%~150% to 200%~300% (16Cores)
* Threads in resin server: raised from usual 200~800 to 1500~3000
* Resin Centos box load average: no notable change
* Database CPU utilization: dropped from the usual  50%~200% to below 10%
* DB box IO utilization: drop from the usual 3%~5% to below 1%
* DB box load average: no notable change
* Most browser requests were blocked, no result, no error.

I have to restart it after it hanged.

I did jvm flight recordings of the jrockit JVM before restart for several

The jfr record file show that, in most of the time, the threads were blocked
in class InjectManager

public static InjectManager getCurrent(ClassLoader loader) {
    synchronized (_localContainer) {
        return _localContainer.get(loader);

I noticed in the 4.0.9 source, it changed to
public static InjectManager getCurrent(ClassLoader loader)
    return _localContainer.get(loader);

Probably this problem has bean resolved but I need to do more test in next

Thanks for the great work.

resin-interest mailing list

Reply via email to