BAM Receiver Performance
This section includes the description and results of performance testing made on WSO2 BAM Receiver. These tests was conducted on Amazon EC2 instances with 3- Node cassandra cluster setup. The testing was done with simple events and HTTPD log events . Testing was made on following three different setups and the detailed description about the testing and final results are provided below.
Setup -1 (Simple Event receiving with 1GB Cassandra Heap Memory)
In this setup, KPI events was sent to WSO2 BAM receiver with many client threads concurrently. In this setup the BAM receiver was operating with 3 Node cassandra cluster. The below are the configuration of each BAM and cassandra instances used in this testing.
Configuration | Value |
---|---|
Deployment | 3 - Node Cassandra cluster 1 - Node BAM Receiver 1 - Node Client |
Instance Type | Cassandra - High I/O Quadruple Extra Large Instance Receiver, Client Nodes – Extra Large Instances |
Cassandra node heap memory | 1 GB (default) |
Receiver node heap memory | 1 GB (default) |
Events/(client * thread) | 1000 events (1k) |
The below is the stream definition of the events used in this setup.
{ name: testStream ,
version: 1.0.0 ,
nickName: org.wso2.simple.stream,
description: This is a simple performance testing stream,
metaData:[
{name:clientType,type:STRING}
],
payloadData:[
{name:message,type:STRING}
]
}
Results -1 (Concurrency Vs Throughput)
Result - 2 (No of clients Vs Throughput)
Results - 3 (No of Events Vs Throughput)
Setup - 2 (Simple Event receiving with 8GB Cassandra Heap Memory)
In this setup, the cassandra heap memory size was increased for 8GB and ran the test same as the setup-1. The stream definition of the events sent to this setup is same as the setup-1. The configurations for the instances running in this testing setup is provided below.
Configuration | Value |
---|---|
Deployment | 1 - Node Cassandra 1 - Node BAM Receiver 1 - Node Client |
Instance Type | Cassandra - High I/O Quadruple Extra Large Instance Receiver, Client Nodes – High I/O Quadruple Extra Large Instance |
Cassandra node heap memory | 8 GB |
Receiver node heap memory | 4 GB |
Events/(client * thread) | 1000 events (1k) |
Results (No of clients vs Avg.Throughput)
Setup - 3 (HTTPD Log event receiving with 8GB Cassandra Heap Memory )
In this setup, the number of clients and the receivers gradually increased and sustained the load average of BAM receiver less than 30 and measured the receiver performance. Here not only throughput of super tenant as setup1 and 2 is measured but also the tenant related BAM receiver throughput is also measured. The configuration of instances used in this setup is provided below.
Configuration | Value |
---|---|
Deployment | 3 - Node Cassandra M - Node BAM Receiver N - Node Client |
Instance Type | Cassandra - High I/O Quadruple Extra Large Instance Receiver, Client Nodes – High I/O Quadruple Extra Large Instance |
Cassandra node heap memory | 8 GB |
Receiver node heap memory | 4 GB |
Events/(client * thread) | 18000k events |
Sample HTTPD log event published in this testing is provided below,
{ name: streamName ,
version: version ,
nickName: HTTPD Logs,
description: HTTPD logs,
metaData:[
{name:clientType,type:STRING}
],
payloadData:[
{name:log,type:STRING}
]
}
The below is the stream definition used to publish the HTTPD logs sample,
webster.mae.apple.com - - [07/Jul/1995:13:22:11 -0400] "GET /shuttle/missions/missions.html HTTP/1.0" 200 8677
Results (No of clients Vs Throughput)