[jboss-cvs] JBoss Messaging SVN: r7227 - in trunk: examples/core/perf/server0 and 7 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Jun 5 12:22:39 EDT 2009
Author: timfox
Date: 2009-06-05 12:22:39 -0400 (Fri, 05 Jun 2009)
New Revision: 7227
Modified:
trunk/examples/core/perf/perf.properties
trunk/examples/core/perf/server0/jbm-configuration.xml
trunk/src/config/common/schema/jbm-configuration.xsd
trunk/src/main/org/jboss/messaging/core/asyncio/impl/TimedBuffer.java
trunk/src/main/org/jboss/messaging/core/config/Configuration.java
trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java
trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java
trunk/src/main/org/jboss/messaging/core/journal/impl/AIOSequentialFileFactory.java
trunk/src/main/org/jboss/messaging/core/persistence/impl/journal/JournalStorageManager.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/asyncio/TimedBufferTest.java
Log:
added rate logging
Modified: trunk/examples/core/perf/perf.properties
===================================================================
--- trunk/examples/core/perf/perf.properties 2009-06-05 14:13:10 UTC (rev 7226)
+++ trunk/examples/core/perf/perf.properties 2009-06-05 16:22:39 UTC (rev 7227)
@@ -1,5 +1,5 @@
-num-messages=20000
-num-warmup-messages=4000
+num-messages=1000000
+num-warmup-messages=10000
message-size=1000
durable=true
transacted=false
@@ -14,6 +14,6 @@
tcp-buffer=1048576
tcp-no-delay=false
send-window=1048576
-pre-ack=false
-block-ack=true
-block-persistent=true
+pre-ack=true
+block-ack=false
+block-persistent=false
Modified: trunk/examples/core/perf/server0/jbm-configuration.xml
===================================================================
--- trunk/examples/core/perf/server0/jbm-configuration.xml 2009-06-05 14:13:10 UTC (rev 7226)
+++ trunk/examples/core/perf/server0/jbm-configuration.xml 2009-06-05 16:22:39 UTC (rev 7227)
@@ -21,6 +21,7 @@
<journal-type>ASYNCIO</journal-type>
<journal-min-files>20</journal-min-files>
<journal-aio-buffer-timeout>20000</journal-aio-buffer-timeout>
+ <log-journal-write-rate>true</log-journal-write-rate>
<queues>
Modified: trunk/src/config/common/schema/jbm-configuration.xsd
===================================================================
--- trunk/src/config/common/schema/jbm-configuration.xsd 2009-06-05 14:13:10 UTC (rev 7226)
+++ trunk/src/config/common/schema/jbm-configuration.xsd 2009-06-05 16:22:39 UTC (rev 7227)
@@ -201,6 +201,9 @@
<xsd:element name="journal-sync-non-transactional"
type="xsd:boolean" maxOccurs="1" minOccurs="0">
</xsd:element>
+ <xsd:element name="log-journal-write-rate"
+ type="xsd:boolean" maxOccurs="1" minOccurs="0">
+ </xsd:element>
<xsd:element name="journal-file-size" type="xsd:unsignedLong"
maxOccurs="1" minOccurs="0">
</xsd:element>
Modified: trunk/src/main/org/jboss/messaging/core/asyncio/impl/TimedBuffer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/asyncio/impl/TimedBuffer.java 2009-06-05 14:13:10 UTC (rev 7226)
+++ trunk/src/main/org/jboss/messaging/core/asyncio/impl/TimedBuffer.java 2009-06-05 16:22:39 UTC (rev 7227)
@@ -25,6 +25,8 @@
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.List;
+import java.util.Timer;
+import java.util.TimerTask;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
@@ -79,6 +81,52 @@
private volatile boolean started;
private final boolean flushOnSync;
+
+ // for logging write rates
+
+ private final boolean logRates;
+
+ private volatile long bytesFlushed;
+
+ private Timer logRatesTimer;
+
+ private TimerTask logRatesTimerTask;
+
+ private long lastExecution;
+
+ private class LogRatesTimerTask extends TimerTask
+ {
+ private boolean closed;
+
+ @Override
+ public synchronized void run()
+ {
+ if (!closed)
+ {
+ long now = System.currentTimeMillis();
+
+ if (lastExecution != 0)
+ {
+ double rate = 1000 * ((double)bytesFlushed) / ( now - lastExecution);
+
+ log.info("Write rate = " + rate + " bytes / sec");
+ }
+ else
+ {
+ lastExecution = now;
+ }
+
+ bytesFlushed = 0;
+ }
+ }
+
+ public synchronized boolean cancel()
+ {
+ closed = true;
+
+ return super.cancel();
+ }
+ }
// Static --------------------------------------------------------
@@ -86,9 +134,14 @@
// Public --------------------------------------------------------
- public TimedBuffer(final int size, final long timeout, final boolean flushOnSync)
+ public TimedBuffer(final int size, final long timeout, final boolean flushOnSync, final boolean logRates)
{
bufferSize = size;
+ this.logRates = logRates;
+ if (logRates)
+ {
+ this.logRatesTimer = new Timer(true);
+ }
// Setting the interval for nano-sleeps
// We are keeping this disabled for now until we figure out what to do.
@@ -119,6 +172,13 @@
timerThread = new Thread(timerRunnable, "jbm-aio-timer");
timerThread.start();
+
+ if (logRates)
+ {
+ logRatesTimerTask = new LogRatesTimerTask();
+
+ logRatesTimer.scheduleAtFixedRate(logRatesTimerTask, 2000, 2000);
+ }
started = true;
}
@@ -137,6 +197,11 @@
latchTimer.down();
timerRunnable.close();
+
+ if (logRates)
+ {
+ logRatesTimerTask.cancel();
+ }
while (timerThread.isAlive())
{
@@ -261,6 +326,11 @@
active = false;
pendingSync = false;
+
+ if (logRates)
+ {
+ bytesFlushed += currentBuffer.position();
+ }
currentBuffer.limit(0);
}
Modified: trunk/src/main/org/jboss/messaging/core/config/Configuration.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/Configuration.java 2009-06-05 14:13:10 UTC (rev 7226)
+++ trunk/src/main/org/jboss/messaging/core/config/Configuration.java 2009-06-05 16:22:39 UTC (rev 7227)
@@ -157,7 +157,7 @@
boolean isPersistIDCache();
void setPersistIDCache(boolean persist);
-
+
// Journal related attributes ------------------------------------------------------------
String getBindingsDirectory();
@@ -211,7 +211,12 @@
boolean isCreateJournalDir();
void setCreateJournalDir(boolean create);
+
+ boolean isLogJournalWriteRate();
+
+ void setLogJournalWriteRate(boolean rate);
+
// Paging Properties --------------------------------------------------------------------
String getPagingDirectory();
Modified: trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java 2009-06-05 14:13:10 UTC (rev 7226)
+++ trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java 2009-06-05 16:22:39 UTC (rev 7227)
@@ -100,6 +100,8 @@
public static final int DEFAULT_JOURNAL_AIO_BUFFER_TIMEOUT = 500000;
public static final int DEFAULT_JOURNAL_AIO_BUFFER_SIZE = 128 * 1024;
+
+ public static final boolean DEFAULT_JOURNAL_LOG_WRITE_RATE = false;
public static final boolean DEFAULT_WILDCARD_ROUTING_ENABLED = true;
@@ -240,6 +242,8 @@
protected int journalAIOBufferTimeout = DEFAULT_JOURNAL_AIO_BUFFER_TIMEOUT;
protected int journalAIOBufferSize = DEFAULT_JOURNAL_AIO_BUFFER_SIZE;
+
+ protected boolean logJournalWriteRate = DEFAULT_JOURNAL_LOG_WRITE_RATE;
protected boolean wildcardRoutingEnabled = DEFAULT_WILDCARD_ROUTING_ENABLED;
@@ -603,7 +607,17 @@
{
journalMinFiles = files;
}
+
+ public boolean isLogJournalWriteRate()
+ {
+ return logJournalWriteRate;
+ }
+ public void setLogJournalWriteRate(boolean logJournalWriteRate)
+ {
+ this.logJournalWriteRate = logJournalWriteRate;
+ }
+
public boolean isCreateBindingsDir()
{
return createBindingsDir;
Modified: trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java 2009-06-05 14:13:10 UTC (rev 7226)
+++ trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java 2009-06-05 16:22:39 UTC (rev 7227)
@@ -304,6 +304,8 @@
journalMinFiles = getInteger(e, "journal-min-files", journalMinFiles);
journalMaxAIO = getInteger(e, "journal-max-aio", journalMaxAIO);
+
+ logJournalWriteRate = getBoolean(e, "log-journal-write-rate", DEFAULT_JOURNAL_LOG_WRITE_RATE);
wildcardRoutingEnabled = getBoolean(e, "wild-card-routing-enabled", wildcardRoutingEnabled);
Modified: trunk/src/main/org/jboss/messaging/core/journal/impl/AIOSequentialFileFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/journal/impl/AIOSequentialFileFactory.java 2009-06-05 14:13:10 UTC (rev 7226)
+++ trunk/src/main/org/jboss/messaging/core/journal/impl/AIOSequentialFileFactory.java 2009-06-05 16:22:39 UTC (rev 7227)
@@ -78,15 +78,20 @@
this(journalDir,
ConfigurationImpl.DEFAULT_JOURNAL_AIO_BUFFER_SIZE,
ConfigurationImpl.DEFAULT_JOURNAL_AIO_BUFFER_TIMEOUT,
- ConfigurationImpl.DEFAULT_JOURNAL_AIO_FLUSH_SYNC);
+ ConfigurationImpl.DEFAULT_JOURNAL_AIO_FLUSH_SYNC,
+ false);
}
- public AIOSequentialFileFactory(final String journalDir, int bufferSize, long bufferTimeout, boolean flushOnSync)
+ public AIOSequentialFileFactory(final String journalDir,
+ int bufferSize,
+ long bufferTimeout,
+ boolean flushOnSync,
+ boolean logRates)
{
super(journalDir);
this.bufferSize = bufferSize;
this.bufferTimeout = bufferTimeout;
- this.timedBuffer = new TimedBuffer(bufferSize, bufferTimeout, flushOnSync);
+ this.timedBuffer = new TimedBuffer(bufferSize, bufferTimeout, flushOnSync, logRates);
}
/* (non-Javadoc)
Modified: trunk/src/main/org/jboss/messaging/core/persistence/impl/journal/JournalStorageManager.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/persistence/impl/journal/JournalStorageManager.java 2009-06-05 14:13:10 UTC (rev 7226)
+++ trunk/src/main/org/jboss/messaging/core/persistence/impl/journal/JournalStorageManager.java 2009-06-05 16:22:39 UTC (rev 7227)
@@ -192,7 +192,8 @@
journalFF = new AIOSequentialFileFactory(journalDir,
config.getAIOBufferSize(),
config.getAIOBufferTimeout(),
- config.isAIOFlushOnSync());
+ config.isAIOFlushOnSync(),
+ config.isLogJournalWriteRate());
log.info("AIO loaded successfully");
}
}
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/asyncio/TimedBufferTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/asyncio/TimedBufferTest.java 2009-06-05 14:13:10 UTC (rev 7226)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/asyncio/TimedBufferTest.java 2009-06-05 16:22:39 UTC (rev 7227)
@@ -92,7 +92,7 @@
}
}
- TimedBuffer timedBuffer = new TimedBuffer(100, 3600 * 1000, false); // Any big timeout
+ TimedBuffer timedBuffer = new TimedBuffer(100, 3600 * 1000, false, false); // Any big timeout
timedBuffer.setObserver(new TestObserver());
More information about the jboss-cvs-commits
mailing list