[hornetq-commits] JBoss hornetq SVN: r8092 - in trunk: src/main/org/hornetq/core/config/impl and 1 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Tue Oct 13 10:28:25 EDT 2009
Author: jmesnil
Date: 2009-10-13 10:28:25 -0400 (Tue, 13 Oct 2009)
New Revision: 8092
Modified:
trunk/docs/user-manual/en/configuration-index.xml
trunk/docs/user-manual/en/perf-tuning.xml
trunk/src/main/org/hornetq/core/config/impl/FileConfiguration.java
trunk/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java
Log:
https://jira.jboss.org/jira/browse/HORNETQ-164: Allow MemoryManager to be disabled
* allowed memory-measure-interval to set to -1 to disable MemoryManager
* added documentation for memory-measure-interval & memory-warning-threshold in configuration
index + memory settings chapter
Modified: trunk/docs/user-manual/en/configuration-index.xml
===================================================================
--- trunk/docs/user-manual/en/configuration-index.xml 2009-10-13 13:01:11 UTC (rev 8091)
+++ trunk/docs/user-manual/en/configuration-index.xml 2009-10-13 14:28:25 UTC (rev 8092)
@@ -394,6 +394,20 @@
<entry>true</entry>
</row>
<row>
+ <entry><link linkend="perf-tuning.memory"
+ >memory-measure-interval</link></entry>
+ <entry>Long</entry>
+ <entry>frequency to sample JVM memory in ms (or -1 to disable memory sampling)</entry>
+ <entry>30000</entry>
+ </row>
+ <row>
+ <entry><link linkend="perf-tuning.memory"
+ >memory-warning-threshold</link></entry>
+ <entry>Integer</entry>
+ <entry>Percentage of available memory which threshold a warning log</entry>
+ <entry>25</entry>
+ </row>
+ <row>
<entry><link linkend="configuring-transports.acceptors"
>acceptors</link></entry>
<entry>Acceptor</entry>
Modified: trunk/docs/user-manual/en/perf-tuning.xml
===================================================================
--- trunk/docs/user-manual/en/perf-tuning.xml 2009-10-13 13:01:11 UTC (rev 8091)
+++ trunk/docs/user-manual/en/perf-tuning.xml 2009-10-13 14:28:25 UTC (rev 8092)
@@ -193,7 +193,7 @@
garbage collection algorithm, e.g. using the JVM argument <literal
>-XX:+UseParallelGC</literal> on Sun JDKs.</para>
</listitem>
- <listitem>
+ <listitem id="perf-tuning.memory">
<para>Memory settings. Give as much memory as you can to the server. HornetQ can run
in low memory by using paging (described in <xref linkend="paging"/>) but if it
can run with all queues in RAM this will improve performance. The amount of
@@ -201,6 +201,13 @@
size and number of your messages. Use the JVM arguments <literal>-Xms</literal>
and <literal>-Xmx</literal> to set server available RAM. We recommend setting
them to the same high value.</para>
+ <para>HornetQ will regularly sample JVM memory and reports if the available memory is below
+ a configurable threshold. Use this information to properly set JVM memory and paging.
+ The sample frequency can be configured by setting <literal>memory-measure-interval</literal>
+ in <literal>hornetq-configuration.xml</literal> (default is 30000ms, set it to -1 to disable
+ memory sampling). When the available memory goes below the configured threshold, a warning is logged.
+ The threshold can be configured by setting <literal>memory-warning-threshold</literal> in
+ <literal>hornetq-configuration.xml</literal> (default is 25%).</para>
</listitem>
<listitem>
<para>Aggressive options. Different JVMs provide different sets of JVM tuning
@@ -256,7 +263,7 @@
Instead the temporary queue should be re-used for many requests.</para>
</listitem>
<listitem>
- <para>Don't use Mesage Driven Beans for the sake of it. As soon as you start using MDBs you are greatly
+ <para>Don't use Message-Driven Beans for the sake of it. As soon as you start using MDBs you are greatly
increasing the codepath for each message received compared to a straightforward message consumer, since a lot of
extra application server code is executed. Ask yourself
do you really need MDBs? Can you accomplish the same task using just a normal message consumer?</para>
Modified: trunk/src/main/org/hornetq/core/config/impl/FileConfiguration.java
===================================================================
--- trunk/src/main/org/hornetq/core/config/impl/FileConfiguration.java 2009-10-13 13:01:11 UTC (rev 8091)
+++ trunk/src/main/org/hornetq/core/config/impl/FileConfiguration.java 2009-10-13 14:28:25 UTC (rev 8092)
@@ -332,7 +332,7 @@
memoryWarningThreshold = getInteger(e, "memory-warning-threshold", memoryWarningThreshold, PERCENTAGE);
- memoryMeasureInterval = getLong(e, "memory-measure-interval", memoryMeasureInterval, GT_ZERO); // in milliseconds
+ memoryMeasureInterval = getLong(e, "memory-measure-interval", memoryMeasureInterval, MINUS_ONE_OR_GT_ZERO); // in milliseconds
started = true;
}
Modified: trunk/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java 2009-10-13 13:01:11 UTC (rev 8091)
+++ trunk/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java 2009-10-13 14:28:25 UTC (rev 8092)
@@ -389,8 +389,11 @@
pagingManager.stop();
}
- memoryManager.stop();
-
+ if (memoryManager != null)
+ {
+ memoryManager.stop();
+ }
+
pagingManager = null;
securityStore = null;
resourceManager = null;
@@ -938,10 +941,13 @@
scheduledPool,
managementConnectorID);
- memoryManager = new MemoryManagerImpl(configuration.getMemoryWarningThreshold(),
- configuration.getMemoryMeasureInterval());
+ if (configuration.getMemoryMeasureInterval() != -1)
+ {
+ memoryManager = new MemoryManagerImpl(configuration.getMemoryWarningThreshold(),
+ configuration.getMemoryMeasureInterval());
- memoryManager.start();
+ memoryManager.start();
+ }
}
private void initialiseLogging()
More information about the hornetq-commits
mailing list