This section describes recommended performance tuning configurations to optimize WSO2 BAM. It assumes that you have set up WSO2 BAM on Unix/Linux, which is recommended for a production deployment.
The below parameter values are just examples. They might not be the optimal values for the specific hardware configurations in your environment. Therefore, carry out load tests on your environment to tune WSO2 BAM accordingly.
Hadoop and Cassandra settings
If you manage a high volume of data with high concurrency, use a distributed WSO2 BAM setup. Performance tuning depends on the data volume handled by the server and server hardware configuration etc. Following are some key recommendations.
Tuning receiver nodes
Change the following configurations to tune the receiver nodes.
Configuration file | Configuration value |
---|---|
<BAM_HOME>/ bin/wso2server.sh file | -Xms1024m -Xmx1024m -XX:MaxPermSize=512m |
/etc/security/limits.conf file |
|
Tuning analyzer nodes
Change the following configurations to tune the analyzer nodes.
Configuration file | Configuration value |
---|---|
<BAM_HOME>/ bin/wso2server.sh file | -Xms1024m -Xmx1024m -XX:MaxPermSize=512m |
Tuning dashboard nodes
Change the following configurations to tune the dashboard nodes.
Configuration file | Configuration value |
---|---|
<BAM_HOME>/ bin/wso2server.sh file | -Xms1024m -Xmx1024m -XX:MaxPermSize=512m |
Tuning Hadoop nodes
Following are the performance tuning recommendations for tuning Hadoop nodes.
- operating system: Linux
- storage capacity of each node: minimum 10 GB
- network bandwidth: minimum100 Mbps
set hadoop.root.logger=ERROR
Other optimization depends on their data volume and Hardware configuration. More information for performance tuning in Hadoop cluster can be found here [2]
Cassandra nodes:
Make sure your commit log and data dirs (sstables) are on different disks.
Set the Heap memory as below.
System Memory --------- Heap Size
Less than 2GB --------- 1/2 of system memory
2GB to 4GB --------- 1GB
Greater than 4GB --------- 1/4 system memory, but not more than 8GB
Set following configuration in cassandra.yaml according to your hardware resources.
-concurrent_reads
-4 * no of cores.
-concurrent_writes
-8 * no of CPU cores
More advance tuning you can refer cassandra documentations [3]