activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From chir...@apache.org
Subject svn commit: r479053 - in /incubator/activemq/activeio/trunk/activeio-core/src/test: java/org/apache/activeio/journal/ java/org/apache/activeio/journal/active/ java/org/apache/activeio/net/ resources/
Date Sat, 25 Nov 2006 00:03:30 GMT
Author: chirino
Date: Fri Nov 24 16:03:29 2006
New Revision: 479053

URL: http://svn.apache.org/viewvc?view=rev&rev=479053
Log:
Added JournalRWPerfTool that tests write and read performance.

Added:
    incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/JournalRWPerfToolSupport.java
    incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/active/JournalRWPerfTool.java
Removed:
    incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/net/
Modified:
    incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/JournalPerfToolSupport.java
    incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/JournalStatsFilter.java
    incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/active/JournalImplTest.java
    incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/active/JournalPerfTool.java
    incubator/activemq/activeio/trunk/activeio-core/src/test/resources/log4j.properties

Modified: incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/JournalPerfToolSupport.java
URL: http://svn.apache.org/viewvc/incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/JournalPerfToolSupport.java?view=diff&rev=479053&r1=479052&r2=479053
==============================================================================
--- incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/JournalPerfToolSupport.java
(original)
+++ incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/JournalPerfToolSupport.java
Fri Nov 24 16:03:29 2006
@@ -49,9 +49,10 @@
 	protected File statCSVFile = new File("stats.csv");;
 
 	// Controls how often we start a new batch of workers.
-	protected int workerIncrement=20;
+	protected int workerIncrement=5;
 	protected long incrementDelay=1000*20;
 	protected boolean verbose=true;
+	protected int initialWorkers=10;
 
 	// Worker configuration.
 	protected int recordSize=1024;
@@ -106,20 +107,26 @@
 		
         try {        	
         	
+    		System.out.println("Starting "+initialWorkers+" Workers...");
+        	for(int i=0;i <initialWorkers;i++) {
+            	new Thread(new Worker()).start();
+            	workerCount++;
+        	}
+        	
         	// Wait a little to see the worker affect the stats.
         	// Increment the number of workers every few seconds.
         	while(true) {
-        		System.out.println("Starting "+workerIncrement+" Workers...");
-            	for(int i=0;i <workerIncrement;i++) {
-                	new Thread(new Worker()).start();
-                	workerCount++;
-            	}
-            				
             	// Wait a little to see the worker affect the stats.
             	System.out.println("Waiting "+(incrementDelay/1000)+" seconds before next Stat
sample.");
             	Thread.sleep(incrementDelay);
             	displayStats();
             	journal.reset();
+
+            	System.out.println("Starting "+workerIncrement+" Workers...");
+            	for(int i=0;i <workerIncrement;i++) {
+                	new Thread(new Worker()).start();
+                	workerCount++;
+            	}
         	}
         	
         	
@@ -132,7 +139,7 @@
 		System.out.println("Stats at "+workerCount+" workers.");
 		System.out.println(journal);        	
 		if( statWriter!= null ) {
-			statWriter.println(""+workerCount+","+journal.getThroughputKps()+","+journal.getAvgSyncedLatencyMs()+","+journal.getThroughputRps());
+			statWriter.println(""+workerCount+","+journal.getWriteThroughputKps()+","+journal.getAvgSyncedLatencyMs()+","+journal.getWriteThroughputRps());
 			statWriter.flush();
 		}
 	}

Added: incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/JournalRWPerfToolSupport.java
URL: http://svn.apache.org/viewvc/incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/JournalRWPerfToolSupport.java?view=auto&rev=479053
==============================================================================
--- incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/JournalRWPerfToolSupport.java
(added)
+++ incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/JournalRWPerfToolSupport.java
Fri Nov 24 16:03:29 2006
@@ -0,0 +1,214 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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
+ * limitations under the License.
+ */
+package org.apache.activeio.journal;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Random;
+import java.util.concurrent.atomic.AtomicLong;
+
+import org.apache.activeio.journal.InvalidRecordLocationException;
+import org.apache.activeio.journal.Journal;
+import org.apache.activeio.journal.JournalEventListener;
+import org.apache.activeio.journal.RecordLocation;
+import org.apache.activeio.packet.ByteArrayPacket;
+import org.apache.activeio.packet.Packet;
+
+/**
+ * Provides the base class uses to run performance tests against a Journal.
+ * Should be subclassed to customize for specific journal implementation.
+ * 
+ * @version $Revision: 1.1 $
+ */
+abstract public class JournalRWPerfToolSupport implements JournalEventListener {
+
+	private JournalStatsFilter journal;
+	private Random random = new Random();
+	private byte data[];
+	private int writeWorkerCount=0;	
+	private int readWorkerCount=0;
+	private PrintWriter statWriter;
+	// Performance test Options
+	
+	// The output goes here:
+	protected File journalDirectory = new File("journal-logs");
+	protected File statCSVFile = new File("stats.csv");;
+
+	// Controls how often we start a new batch of workers.
+	protected int writeWorkerIncrement=5;
+	protected int initialWriteWorkers=5;
+	protected int readWorkerThinkTime=0;
+	
+	protected int readWorkerIncrement=5;
+	protected int initialReadWorkers=5;
+	protected int writeWorkerThinkTime=0;
+	
+	protected long incrementDelay=1000*20;
+	protected boolean verbose=true;
+
+	// Worker configuration.
+	protected int recordSize=1024;
+	protected int syncFrequency=15;	
+
+    private final class WriteWorker implements Runnable {
+		public void run() {
+			int i=random.nextInt()%syncFrequency;
+			while(true) {
+				boolean sync=false;
+				
+				if( syncFrequency>=0 && (i%syncFrequency)==0 ) {
+					sync=true;
+				}				
+				try {
+					journal.write(new ByteArrayPacket(data), sync);
+					Thread.sleep(writeWorkerThinkTime);
+				} catch (Exception e) {
+					e.printStackTrace();
+					return;
+				}
+				i++;						
+			}					
+		}
+	}	
+
+    
+    private final class ReadWorker implements Runnable {
+    	
+    	AtomicLong counter=new AtomicLong();
+		public void run() {
+			while(true) {
+				try {
+					RecordLocation pos = null;
+					while( (pos=journal.getNextRecordLocation(pos))!=null ) {
+						Packet packet = journal.read(pos);
+						counter.addAndGet(packet.limit());
+						Thread.sleep(readWorkerThinkTime);
+					}
+				} catch (Throwable e) {
+					e.printStackTrace();
+				}
+			}					
+		}
+	}	
+
+    /**
+     * @throws IOException
+	 * 
+	 */
+	protected void exec() throws Exception {
+		
+		System.out.println("Client threads write records using: Record Size: "+recordSize+", Sync
Frequency: "+syncFrequency+", Worker Think Time: "+readWorkerThinkTime);
+
+		// Create the record and fill it with some values.
+		data = new byte[recordSize];
+		for (int i = 0; i < data.length; i++) {
+			data[i] = (byte)i;
+		}
+		
+		if( statCSVFile!=null ) {
+			statWriter = new PrintWriter(new FileOutputStream(statCSVFile));
+			statWriter.println("Threads,Write Throughput (k/s),Forced Write latency (ms), Write Throughput
(records/s),Read Throughput (k/s),Read latency (ms),Read Throughput (records/s)");
+		}
+		
+        if( journalDirectory.exists() ) {
+        	deleteDir(journalDirectory);
+        }		
+        journal = new JournalStatsFilter(createJournal()).enableDetailedStats(verbose);
+        journal.setJournalEventListener(this);
+		
+        try {        	
+        	
+    		System.out.println("Starting "+initialWriteWorkers+" Write Workers...");
+        	for(int i=0;i <initialWriteWorkers;i++) {
+            	new Thread(new WriteWorker()).start();
+            	writeWorkerCount++;
+        	}
+
+    		System.out.println("Starting "+initialReadWorkers+" Read Workers...");
+        	for(int i=0;i <initialReadWorkers;i++) {
+            	new Thread(new ReadWorker()).start();
+            	readWorkerCount++;
+        	}
+
+        	// Wait a little to see the worker affect the stats.
+        	// Increment the number of workers every few seconds.
+        	while(true) {
+            	// Wait a little to see the worker affect the stats.
+            	System.out.println("Waiting "+(incrementDelay/1000)+" seconds before next Stat
sample.");
+            	Thread.sleep(incrementDelay);
+            	displayStats();
+            	journal.reset();
+
+            	System.out.println("Starting "+writeWorkerIncrement+" Workers...");
+            	for(int i=0;i <writeWorkerIncrement;i++) {
+                	new Thread(new WriteWorker()).start();
+                	writeWorkerCount++;
+            	}
+        	}
+        	
+        	
+        } finally {
+        	journal.close();
+        }
+	}
+
+	private void displayStats() {		
+		System.out.println("Stats at "+writeWorkerCount+" write workers and "+readWorkerCount+"
read workers.");
+		System.out.println(journal);        	
+		if( statWriter!= null ) {
+			statWriter.println(
+					""+writeWorkerCount+","+
+					journal.getWriteThroughputKps()+","+
+					journal.getAvgSyncedLatencyMs()+","+
+					journal.getWriteThroughputRps()+","+
+					journal.getReadThroughputKps()+","+
+					journal.getAvgReadLatencyMs()+","+
+					journal.getReadThroughputRps()
+					);
+			statWriter.flush();
+		}
+	}
+
+	/**
+	 * @return
+	 */
+	abstract public Journal createJournal() throws Exception;
+
+	static private void deleteDir(File f) {
+		File[] files = f.listFiles();
+		for (int i = 0; i < files.length; i++) {
+			File file = files[i];
+			file.delete();
+		}
+		f.delete();
+	}
+    
+    
+	public void overflowNotification(RecordLocation safeLocation) {
+		try {
+			// System.out.println("Mark set: "+safeLocation);
+			journal.setMark(safeLocation, false);
+		} catch (InvalidRecordLocationException e) {
+			e.printStackTrace();
+		} catch (IOException e) {
+			e.printStackTrace();
+		}		
+	}
+}

Modified: incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/JournalStatsFilter.java
URL: http://svn.apache.org/viewvc/incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/JournalStatsFilter.java?view=diff&rev=479053&r1=479052&r2=479053
==============================================================================
--- incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/JournalStatsFilter.java
(original)
+++ incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/JournalStatsFilter.java
Fri Nov 24 16:03:29 2006
@@ -40,6 +40,9 @@
 	private final TimeStatisticImpl unsynchedWriteLatency = new TimeStatisticImpl(writeLatency,
"unsynchedWriteLatency", "The amount of time that is spent waiting for a non synch record
to be written to the Journal"); 	
 	private final TimeStatisticImpl readLatency = new TimeStatisticImpl("readLatency", "The
amount of time that is spent waiting for a record to be read from the Journal"); 
 	private final CountStatisticImpl readBytesCounter = new CountStatisticImpl("readBytesCounter","The
number of bytes that have been read by the Journal");
+	private final CountStatisticImpl readRecordsCounter = new CountStatisticImpl("readRecordsCounter","The
number of records that have been read by the Journal");
+	private final TimeStatisticImpl cursorLatency = new TimeStatisticImpl("nextRecordLocationLatency",
"The amount of time that is spent waiting to locate the next record location from the Journal");

+	private final CountStatisticImpl cursorCounter = new CountStatisticImpl("nextRecordLocationCounter","The
number of times the the next record was located in the Journal");
 	
 	private final Journal next;
 	private boolean detailedStats;
@@ -81,6 +84,7 @@
 		Packet answer = next.read(location);		
 		long end = System.currentTimeMillis();
 		
+		readRecordsCounter.increment();
 		readBytesCounter.add(answer.remaining());
 		readLatency.addTime(end-start);
 		return answer;
@@ -119,8 +123,15 @@
 	 * @see org.codehaus.activemq.journal.Journal#getNextRecordLocation(org.codehaus.activemq.journal.RecordLocation)
 	 */
 	public RecordLocation getNextRecordLocation(RecordLocation lastLocation)
-			throws IOException, InvalidRecordLocationException {		
-		return next.getNextRecordLocation(lastLocation);
+			throws IOException, InvalidRecordLocationException {	
+		
+		long start = System.currentTimeMillis();
+		RecordLocation rc = next.getNextRecordLocation(lastLocation);
+		long end = System.currentTimeMillis();
+		
+		cursorCounter.increment();
+		cursorLatency.addTime(end-start);
+		return rc;
 	}
 	
 	/**
@@ -133,11 +144,17 @@
         out.println("Journal Stats {");        
         out.incrementIndent();
         out.printIndent();
-        out.println("Throughput           : "+ getThroughputKps() +" k/s and " + getThroughputRps()
+" records/s" );
+        out.println("Write Throughput           : "+ getWriteThroughputKps() +" k/s and "
+ getWriteThroughputRps() +" records/s" );
+        out.printIndent();
+        out.println("Write Latency with force   : "+ getAvgSyncedLatencyMs() +" ms"  );
         out.printIndent();
-        out.println("Latency with force   : "+ getAvgSyncedLatencyMs() +" ms"  );
+        out.println("Write Latency without force: "+ getAvgUnSyncedLatencyMs() +" ms"  );
+        out.printIndent(); 
+        out.println("Read Throughput            : "+ getReadThroughputKps() +" k/s and "
+ getReadThroughputRps() +" records/s" );
         out.printIndent();
-        out.println("Latency without force: "+ getAvgUnSyncedLatencyMs() +" ms"  );
+        out.println("Read Latency               : "+getAvgReadLatencyMs()+" ms" );
+        out.printIndent();
+        out.println("Cursor Latency             : "+ getAvgCursorLatencyMs() +" ms"  );
 
         out.printIndent();
         out.println("Raw Stats {");
@@ -186,11 +203,18 @@
 			StringWriter w = new StringWriter();
 			PrintWriter pw = new PrintWriter(w);
 			IndentPrinter out = new IndentPrinter(pw, "  ");
-	        out.println("Throughput           : "+ getThroughputKps() +" k/s and " + getThroughputRps()
+" records/s");
 	        out.printIndent();
-	        out.println("Latency with force   : "+getAvgSyncedLatencyMs()+" ms"  );
+	        out.println("Write Throughput           : "+ getWriteThroughputKps() +" k/s and
" + getWriteThroughputRps() +" records/s");
+	        out.printIndent();
+	        out.println("Write Latency with force   : "+getAvgSyncedLatencyMs()+" ms"  );
+	        out.printIndent();
+	        out.println("Write Latency without force: "+getAvgUnSyncedLatencyMs()+" ms"  );
+	        out.printIndent();
+	        out.println("Read Throughput            : "+ getReadThroughputKps() +" k/s and "
+ getReadThroughputRps() +" records/s");
+	        out.printIndent();
+	        out.println("Read Latency               : "+getAvgReadLatencyMs()+" ms" );
 	        out.printIndent();
-	        out.println("Latency without force: "+getAvgUnSyncedLatencyMs()+" ms"  );
+	        out.println("Cursor Latency       : "+ getAvgCursorLatencyMs() +" ms"  );
 			return w.getBuffer().toString();			
 		}
     }
@@ -209,7 +233,7 @@
 	 * 
 	 * @return the average throughput in k/s.
 	 */
-	public double getThroughputKps() {
+	public double getWriteThroughputKps() {
 		 long totalTime = writeBytesCounter.getLastSampleTime()-writeBytesCounter.getStartTime();

 		 return (((double)writeBytesCounter.getCount()/(double)totalTime)/(double)1024)*1000;
 	}
@@ -219,12 +243,32 @@
 	 * 
 	 * @return the average throughput in records/s.
 	 */
-	public double getThroughputRps() {
+	public double getWriteThroughputRps() {
 		 long totalTime = writeRecordsCounter.getLastSampleTime()-writeRecordsCounter.getStartTime();

 		 return (((double)writeRecordsCounter.getCount()/(double)totalTime))*1000;
 	}
 
 	/**
+	 * Gets the average throughput in k/s.
+	 * 
+	 * @return the average throughput in k/s.
+	 */
+	public double getReadThroughputKps() {
+		 long totalTime = readBytesCounter.getLastSampleTime()-readBytesCounter.getStartTime();

+		 return (((double)readBytesCounter.getCount()/(double)totalTime)/(double)1024)*1000;
+	}
+
+	/**
+	 * Gets the average throughput in records/s.
+	 * 
+	 * @return the average throughput in records/s.
+	 */
+	public double getReadThroughputRps() {
+		 long totalTime = readRecordsCounter.getLastSampleTime()-readRecordsCounter.getStartTime();

+		 return (((double)readRecordsCounter.getCount()/(double)totalTime))*1000;
+	}
+
+	/**
 	 * Gets the average number of writes done per second
 	 * 
 	 * @return the average number of writes in w/s.
@@ -238,8 +282,26 @@
 	 * 
 	 * @return the average sync write latency in ms.
 	 */
+	public double getAvgCursorLatencyMs() {
+		return cursorLatency.getAverageTime();
+	}
+
+	/**
+	 * Gets the average sync write latency in ms.
+	 * 
+	 * @return the average sync write latency in ms.
+	 */
 	public double getAvgSyncedLatencyMs() {
 		return synchedWriteLatency.getAverageTime();
+	}
+
+	/**
+	 * Gets the average read latency in ms.
+	 * 
+	 * @return the average sync write latency in ms.
+	 */
+	public double getAvgReadLatencyMs() {
+		return readLatency.getAverageTime();
 	}
 
 	/**

Modified: incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/active/JournalImplTest.java
URL: http://svn.apache.org/viewvc/incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/active/JournalImplTest.java?view=diff&rev=479053&r1=479052&r2=479053
==============================================================================
--- incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/active/JournalImplTest.java
(original)
+++ incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/active/JournalImplTest.java
Fri Nov 24 16:03:29 2006
@@ -44,7 +44,7 @@
     int size = 1024*10;
     int logFileCount=2;
     File logDirectory = new File("test-logfile");
-	private Journal journal;
+	private JournalImpl journal;
     
     /**
      * @see junit.framework.TestCase#setUp()
@@ -133,6 +133,9 @@
             journal.setMark(pos, false);
             
         } while( pos.getLogFileId() < 5 );
+        
+        Packet p = createPacket("<<<data>>>");
+        pos = (Location) journal.write( p, true);
         
         // Now see if we can read that first packet.
         Packet data;

Modified: incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/active/JournalPerfTool.java
URL: http://svn.apache.org/viewvc/incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/active/JournalPerfTool.java?view=diff&rev=479053&r1=479052&r2=479053
==============================================================================
--- incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/active/JournalPerfTool.java
(original)
+++ incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/active/JournalPerfTool.java
Fri Nov 24 16:03:29 2006
@@ -36,10 +36,12 @@
 	
 	public static void main(String[] args) throws Exception {
 		JournalPerfTool tool = new JournalPerfTool();
+        tool.initialWorkers=10;
         tool.syncFrequency=15;
-        tool.workerIncrement=50;
+        tool.workerIncrement=0;
         tool.workerThinkTime=0;
         tool.verbose=false;
+        tool.incrementDelay=5*1000;
 
 		if( args.length > 0 ) {
 			tool.journalDirectory = new File(args[0]);

Added: incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/active/JournalRWPerfTool.java
URL: http://svn.apache.org/viewvc/incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/active/JournalRWPerfTool.java?view=auto&rev=479053
==============================================================================
--- incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/active/JournalRWPerfTool.java
(added)
+++ incubator/activemq/activeio/trunk/activeio-core/src/test/java/org/apache/activeio/journal/active/JournalRWPerfTool.java
Fri Nov 24 16:03:29 2006
@@ -0,0 +1,83 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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
+ * limitations under the License.
+ */
+package org.apache.activeio.journal.active;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.activeio.journal.Journal;
+import org.apache.activeio.journal.JournalRWPerfToolSupport;
+
+/**
+ * A Performance statistics gathering tool for the JournalImpl based Journal.
+ * 
+ * @version $Revision: 1.1 $
+ */
+public class JournalRWPerfTool extends JournalRWPerfToolSupport {
+	
+	private int logFileSize = 1024*1024*50;
+    private int logFileCount = 4;
+	
+	public static void main(String[] args) throws Exception {
+		JournalRWPerfTool tool = new JournalRWPerfTool();
+        tool.initialWriteWorkers=10;
+        tool.syncFrequency=15;
+        tool.writeWorkerIncrement=0;
+        tool.writeWorkerThinkTime=0;
+        tool.verbose=false;
+        tool.incrementDelay=5*1000;
+
+		if( args.length > 0 ) {
+			tool.journalDirectory = new File(args[0]);
+		}
+		if( args.length > 1 ) {
+			tool.writeWorkerIncrement = Integer.parseInt(args[1]);
+		}
+		if( args.length > 2 ) {
+			tool.incrementDelay = Long.parseLong(args[2]);
+		}
+		if( args.length > 3 ) {
+			tool.verbose = Boolean.getBoolean(args[3]);
+		}
+		if( args.length > 4 ) {
+			tool.recordSize = Integer.parseInt(args[4]);
+		}
+		if( args.length > 5 ) {
+			tool.syncFrequency = Integer.parseInt(args[5]);
+		}
+		if( args.length > 6 ) {
+			tool.writeWorkerThinkTime = Integer.parseInt(args[6]);
+		}
+		if( args.length > 7 ) {
+			tool.logFileCount = Integer.parseInt(args[7]);
+		}
+		if( args.length > 8 ) {
+			tool.logFileSize = Integer.parseInt(args[8]);
+		}
+		tool.exec();
+	}
+
+	/**
+	 * @throws IOException
+	 * @see org.apache.activeio.journal.JournalPerfToolSupport#createJournal()
+	 */
+	public Journal createJournal() throws IOException {
+		return new JournalImpl( this.journalDirectory, logFileCount, logFileSize);
+	}
+	
+}

Modified: incubator/activemq/activeio/trunk/activeio-core/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/incubator/activemq/activeio/trunk/activeio-core/src/test/resources/log4j.properties?view=diff&rev=479053&r1=479052&r2=479053
==============================================================================
--- incubator/activemq/activeio/trunk/activeio-core/src/test/resources/log4j.properties (original)
+++ incubator/activemq/activeio/trunk/activeio-core/src/test/resources/log4j.properties Fri
Nov 24 16:03:29 2006
@@ -18,7 +18,7 @@
 #
 # The logging properties used during tests..
 #
-log4j.rootLogger=DEBUG, out
+log4j.rootLogger=INFO, stdout
 
 # CONSOLE appender not used by default
 log4j.appender.stdout=org.apache.log4j.ConsoleAppender



Mime
View raw message