DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUGĀ·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=42648>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED ANDĀ·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=42648

           Summary: SWAP increases by the cluster of Tomca6
           Product: Tomcat 6
           Version: unspecified
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: trivial
          Priority: P4
         Component: Catalina
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


SWAP increases by the cluster of Tomca6 and operation becomes unstable. 

Environment
 Tomcat6.0.13
 JDK1.5.11
 memory : 2G
 Heap size : - Xmx1500m -Xms1500m

SWAP increases only for direct="true". 
It occurs when operating for a long time by a high load. 

   <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
        ... 
        direct="true" />

SWAP doesn't increase when setting it to direct ="false". 

   <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
        ... 
        direct="false" />
        
I noticed the following. 
In org.apache.catalina.tribes.transport.nio.NioReplicationTask,buffer is made 
per run method.

    public synchronized void run() { 
        if ( (getOptions() & OPTION_DIRECT_BUFFER) == OPTION_DIRECT_BUFFER ) {
            buffer = ByteBuffer.allocateDirect(getRxBufSize());
        }else {
            buffer = ByteBuffer.allocate (getRxBufSize());
        }

        if (key == null) {
            return;     // just in case
        }
        ....

The buffer is enough if made once. 

For instance,
The creating of buffer by the run method is stopped. 

    public synchronized void run() { 
//      if ( (getOptions() & OPTION_DIRECT_BUFFER) == OPTION_DIRECT_BUFFER ) {
//            buffer = ByteBuffer.allocateDirect(getRxBufSize());
//        }else {
//            buffer = ByteBuffer.allocate (getRxBufSize());
//        }
    ....
    
Creating of buffer by the setRxBufSize method.

    public void setRxBufSize(int rxBufSize) {
        this.rxBufSize = rxBufSize;
        if ( (getOptions() & OPTION_DIRECT_BUFFER) == OPTION_DIRECT_BUFFER ) {
            buffer = ByteBuffer.allocateDirect(getRxBufSize());
        }else {
            buffer = ByteBuffer.allocate (getRxBufSize());
        }
    }
    
Result.
SWAP doesn't increase.

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to