You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chukwa.apache.org by as...@apache.org on 2009/08/13 05:07:33 UTC

svn commit: r803762 - /hadoop/chukwa/trunk/src/test/org/apache/hadoop/chukwa/datacollection/collector/TestBackpressure.java

Author: asrabkin
Date: Thu Aug 13 03:07:33 2009
New Revision: 803762

URL: http://svn.apache.org/viewvc?rev=803762&view=rev
Log:
CHUKWA-373. Missed a file

Added:
    hadoop/chukwa/trunk/src/test/org/apache/hadoop/chukwa/datacollection/collector/TestBackpressure.java

Added: hadoop/chukwa/trunk/src/test/org/apache/hadoop/chukwa/datacollection/collector/TestBackpressure.java
URL: http://svn.apache.org/viewvc/hadoop/chukwa/trunk/src/test/org/apache/hadoop/chukwa/datacollection/collector/TestBackpressure.java?rev=803762&view=auto
==============================================================================
--- hadoop/chukwa/trunk/src/test/org/apache/hadoop/chukwa/datacollection/collector/TestBackpressure.java (added)
+++ hadoop/chukwa/trunk/src/test/org/apache/hadoop/chukwa/datacollection/collector/TestBackpressure.java Thu Aug 13 03:07:33 2009
@@ -0,0 +1,53 @@
+package org.apache.hadoop.chukwa.datacollection.collector;
+
+import junit.framework.TestCase;
+import org.apache.hadoop.chukwa.datacollection.agent.ChukwaAgent;
+import org.apache.hadoop.chukwa.datacollection.collector.servlet.ServletCollector;
+import org.apache.hadoop.chukwa.datacollection.connector.http.HttpConnector;
+import org.apache.hadoop.chukwa.datacollection.writer.NullWriter;
+import org.apache.hadoop.chukwa.datacollection.writer.PipelineStageWriter;
+import org.apache.hadoop.chukwa.util.ConstRateAdaptor;
+import org.apache.hadoop.conf.Configuration;
+import org.mortbay.jetty.Server;
+import org.mortbay.jetty.servlet.Context;
+import org.mortbay.jetty.servlet.ServletHolder;
+
+public class TestBackpressure extends TestCase {
+
+  int PORTNO = 9991;
+  int SLEEP_SEC = 20;
+  int WRITE_RATE = 300; //kb/sec
+  int SEND_RATE = 2500000; //bytes/sec
+  
+  public void testBackpressure() throws Exception {
+    Configuration conf = new Configuration();
+    conf.set("chukwaCollector.writerClass", NullWriter.class
+        .getCanonicalName());
+    conf.set(NullWriter.RATE_OPT_NAME, ""+WRITE_RATE);//kb/sec
+    conf.setInt(HttpConnector.MIN_POST_INTERVAL_OPT, 100);
+    conf.setInt("constAdaptor.sleepVariance", 1);
+    conf.setInt("constAdaptor.minSleep", 50);
+    
+    conf.setInt("chukwaAgent.control.port", 0);
+    ChukwaAgent agent = new ChukwaAgent(conf);
+    HttpConnector conn = new HttpConnector(agent, "http://localhost:"+PORTNO+"/chukwa");
+    conn.start();
+    Server server = new Server(PORTNO);
+    Context root = new Context(server, "/", Context.SESSIONS);
+
+    root.addServlet(new ServletHolder(new ServletCollector(conf)), "/*");
+    server.start();
+    server.setStopAtShutdown(false);
+    Thread.sleep(1000);
+    agent.processAddCommand("add constSend = " + ConstRateAdaptor.class.getCanonicalName() + 
+        " testData "+ SEND_RATE + " 0");
+    Thread.sleep(SLEEP_SEC * 1000);
+
+    String stat = agent.getAdaptorList().get("constSend");
+    long bytesPerSec = Long.valueOf(stat.split(" ")[3]) / SLEEP_SEC / 1000;
+    System.out.println("data rate was " + bytesPerSec + " kb /second");
+    assertTrue(bytesPerSec < WRITE_RATE);
+    assertTrue(bytesPerSec > 3* WRITE_RATE / 4);//an assumption, but should hold true
+    agent.shutdown();
+  }
+}