Author: fhanik
Date: Thu May 18 07:15:27 2006
New Revision: 407555
URL: http://svn.apache.org/viewvc?rev=407555&view=rev
Log:
Added throughput interceptor to measure send speed
Added:
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/ThroughputInterceptor.java
Modified:
tomcat/container/tc5.5.x/modules/groupcom/VERSION
tomcat/container/tc5.5.x/modules/groupcom/test/java/org/apache/catalina/tribes/demos/ChannelCreator.java
tomcat/container/tc5.5.x/modules/groupcom/test/java/org/apache/catalina/tribes/demos/LoadTest.java
Modified: tomcat/container/tc5.5.x/modules/groupcom/VERSION
URL:
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/groupcom/VERSION?rev=407555&r1=407554&r2=407555&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/modules/groupcom/VERSION (original)
+++ tomcat/container/tc5.5.x/modules/groupcom/VERSION Thu May 18 07:15:27 2006
@@ -1,3 +1,6 @@
+0.9.2.3
+ - Keep alive pings for AbstractReplicatedMap
+ - Improved TcpFailureDetector
0.9.2.2
- removed getMemberProperties from the membership interface
0.9.2.1
Added:
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/ThroughputInterceptor.java
URL:
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/ThroughputInterceptor.java?rev=407555&view=auto
==============================================================================
---
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/ThroughputInterceptor.java
(added)
+++
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/ThroughputInterceptor.java
Thu May 18 07:15:27 2006
@@ -0,0 +1,86 @@
+/*
+ * Copyright 1999,2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ */
+
+package org.apache.catalina.tribes.group.interceptors;
+
+import org.apache.catalina.tribes.ChannelException;
+import org.apache.catalina.tribes.ChannelMessage;
+import org.apache.catalina.tribes.Member;
+import org.apache.catalina.tribes.group.ChannelInterceptorBase;
+import org.apache.catalina.tribes.group.InterceptorPayload;
+import org.apache.catalina.tribes.io.ChannelData;
+import org.apache.catalina.tribes.io.XByteBuffer;
+import java.text.DecimalFormat;
+
+
+
+/**
+ *
+ *
+ * @author Filip Hanik
+ * @version 1.0
+ */
+public class ThroughputInterceptor extends ChannelInterceptorBase {
+
+ double mbTx = 0;
+ double mbRx = 0;
+ double timeTx = 0;
+ long msgTxCnt = 1;
+ long msgRxCnt = 1;
+ int interval = 10000;
+ DecimalFormat df = new DecimalFormat("##.00");
+
+ public void sendMessage(Member[] destination, ChannelMessage msg,
InterceptorPayload payload) throws ChannelException {
+ long bytes =
XByteBuffer.getDataPackageLength(((ChannelData)msg).getDataPackage().length);
+ long start = System.currentTimeMillis();
+ super.sendMessage(destination,msg,payload);
+ long stop = System.currentTimeMillis();
+ timeTx+= ((double)(stop-start))/1000d;
+ mbTx += ((double)bytes)/(1024d*1024d);
+ if ( msgTxCnt % interval == 0 ) report();
+ msgTxCnt++;
+ }
+
+ public void messageReceived(ChannelMessage msg) {
+ long bytes =
XByteBuffer.getDataPackageLength(((ChannelData)msg).getDataPackage().length);
+ mbRx += ((double)bytes)/(1024d*1024d);
+ if ( msgRxCnt % interval == 0 ) report();
+ msgRxCnt++;
+ }
+
+ public void report() {
+ StringBuffer buf = new StringBuffer("ThroughputInterceptor
Report[\n\tTx Msg:");
+ buf.append(msgTxCnt).append(" messages\n\tSent:");
+ buf.append(df.format(mbTx));
+ buf.append(" MB\n\tTime:");
+ buf.append(df.format(timeTx));
+ buf.append(" seconds\n\tSpeed:");
+ buf.append(df.format(mbTx/timeTx));
+ buf.append(" MB/sec\n\tRx Msg:");
+ buf.append(msgRxCnt);
+ buf.append(" messages\n\tReceived:");
+ buf.append(df.format(mbRx)).append(" MB]\n");
+ System.out.println(buf);
+ }
+
+ public void setInterval(int interval) {
+ this.interval = interval;
+ }
+
+ public int getInterval() {
+ return interval;
+ }
+
+}
Modified:
tomcat/container/tc5.5.x/modules/groupcom/test/java/org/apache/catalina/tribes/demos/ChannelCreator.java
URL:
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/groupcom/test/java/org/apache/catalina/tribes/demos/ChannelCreator.java?rev=407555&r1=407554&r2=407555&view=diff
==============================================================================
---
tomcat/container/tc5.5.x/modules/groupcom/test/java/org/apache/catalina/tribes/demos/ChannelCreator.java
(original)
+++
tomcat/container/tc5.5.x/modules/groupcom/test/java/org/apache/catalina/tribes/demos/ChannelCreator.java
Thu May 18 07:15:27 2006
@@ -29,6 +29,7 @@
import org.apache.catalina.tribes.transport.MultiPointSender;
import org.apache.catalina.tribes.transport.ReceiverBase;
import org.apache.catalina.tribes.transport.ReplicationTransmitter;
+import org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor;
/**
* <p>Title: </p>
@@ -65,6 +66,7 @@
.append("\n\t\t[-ordersize maxorderqueuesize]")
.append("\n\t\t[-frag]")
.append("\n\t\t[-fragsize maxmsgsize]")
+ .append("\n\t\t[-throughput]")
.append("\n\t\t[-async]")
.append("\n\t\t[-asyncsize maxqueuesizeinbytes]");
return buf;
@@ -93,6 +95,7 @@
String receiver =
"org.apache.catalina.tribes.transport.nio.NioReceiver";
boolean async = false;
int asyncsize = 1024*1024*50; //50MB
+ boolean throughput = false;
for (int i = 0; i < args.length; i++) {
if ("-bind".equals(args[i])) {
@@ -112,6 +115,8 @@
} else if ("-asyncsize".equals(args[i])) {
asyncsize = Integer.parseInt(args[++i]);
System.out.println("Setting
MessageDispatchInterceptor.maxQueueSize="+asyncsize);
+ } else if ("-throughput".equals(args[i])) {
+ throughput = true;
} else if ("-order".equals(args[i])) {
order = true;
} else if ("-ordersize".equals(args[i])) {
@@ -185,6 +190,7 @@
channel.setChannelSender(ps);
channel.setMembershipService(service);
+ if ( throughput ) channel.addInterceptor(new ThroughputInterceptor());
if (gzip) channel.addInterceptor(new GzipInterceptor());
if ( frag ) {
FragmentationInterceptor fi = new FragmentationInterceptor();
Modified:
tomcat/container/tc5.5.x/modules/groupcom/test/java/org/apache/catalina/tribes/demos/LoadTest.java
URL:
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/groupcom/test/java/org/apache/catalina/tribes/demos/LoadTest.java?rev=407555&r1=407554&r2=407555&view=diff
==============================================================================
---
tomcat/container/tc5.5.x/modules/groupcom/test/java/org/apache/catalina/tribes/demos/LoadTest.java
(original)
+++
tomcat/container/tc5.5.x/modules/groupcom/test/java/org/apache/catalina/tribes/demos/LoadTest.java
Thu May 18 07:15:27 2006
@@ -232,7 +232,7 @@
"\n\tTotal mbytes :"+(long)mBytesReceived+
"\n\tTime since 1st:"+seconds+" seconds"+
"\n\tBytes/second :"+(bytes/seconds)+
- "\n\tMBytes/second :"+(mBytesReceived/seconds));
+ "\n\tMBytes/second :"+(mBytesReceived/seconds)+"\n");
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]