Best Practices for JBoss configuration
This page gives a short overview over some of the settings which can be adjusted to fit your usage. Under each settings you find recommended values for RapidMiner Server installations on your local machine Local on a dedicated server Default and for high load scenarios Big. The following settings are done inside the standalone.xml
located in the configuration
folder of your RapidMiner Server home directory. You've selected the home directory during the installation process. The home folder's location typically depends on the machine's user with whom you've installed RapidMiner Server (for example C:\Users\TestUser\rapidminer-server\rapidminer-server-home\configuration\standalone.xml
).
Database pooling
min-pool-size
The 'min-pool-size' defines the minimum amount of connections that should always be kept open. This reduces the response time but also allocate resources even if RapidMiner Server is not used.
max-pool-size
The 'max-pool-size' defines an upper limit of open database connections. Higher values might require adjustments to the max_connections
setting of your database.
Statement Caching
prepared-statement-cache-size
The number of prepared statements that should be kept in cache.
This parameter should only be used in combination with a high min-pool-size
value.
Setting this value to 100 increases the throughput, but will consume additional RAM for the cache.
share-prepared-statements
Allows to reuse a prepared statement inside a transaction.
Session Beans
Access Timeout
While not required for normal usage you can increase the 'default-access-timeout' of both stateful and singleton beans to better survive overload peaks.
Pool sizes
Increase the stateless bean pool size to about Number of CPU cores / 8 * 20
on machines with more than 8 logical cores.
Logging
Reduce the log level
The available log levels are FATAL, ERROR, WARN, INFO, DEBUG and TRACE.
Change the value from INFO to WARN for the console log handler.
Add the log level tag to the server.log handler.
Disable console logging
Turn off console logging by removing the line <handler name="CONSOLE"/>
from the root-logger handlers section to reduce unnecessary I/O operations.
Deployment scanner
Since the deployment scanner is only needed on startup the scan-interval
can be set to an integer value smaller 1.
JDBC driver
MS SQL Unicode performance
MS SQL Server offers different data types to store string values: char
, varchar
, and text
. If you want to store unicode
data the following types should be used instead: nchar
, nvarchar
and ntext
. By default, the MS SQL JDBC driver will send
all string data in the unicode format. This behavior will lead to performance issues if the underlying data type of
the MS SQL server is not using an unicode data type as the MS SQL Server needs to convert the corresponding values. If you are
not using unicode data types within the RapidMiner Server DB, you should deactivate the unicode format in the JDBC driver
by adding the following prefix to the JDBC URL: sendStringParametersAsUnicode=false
The following SQL Query can be used to identify unicode data columns: