Home  >  Blog  >   JBoss

JBoss Testing Mod Cluster

Rating: 4
  1. Share:

Having completed and verified the installation of mod cluster, we can now test it with a minimal web application. The sample application packaged as balancer.war contains simply an index.jsp page, which dumps a message on the console.

Now, open your browser and point to the https proxy address we have configured at:

Learn how to use JBoss, from beginner basics to advanced techniques, with online video tutorials taught by industry experts. Enroll for Free JBoss Training Demo!

As you can see, mod cluster follows the sticky session policy; that is, once a session is started on one server, subsequent requests are sent to the same node:

Cluster sessions

Load-balancing between nodes

We will run one more test in order to verify how mod_cluster distributes the load between several different clients. For the purpose of our test, we will need a software that can launch a minimal amount of requests. We will use JMeter, which is a Java desktop application designed to load and test functional behavior and measure performance. JMeter can be downloaded from:


MindMajix Youtube Channel

In short, a JMeter test plan consists of one or more Thread groups, logic controllers, listeners, timers, assertions, and configuration elements. For the purpose of our example, we will just create the following elements:

  • A Thread Group, which is configured to run 100 subsequent requests
  • An HTTP Request element, which contains the information about the web application endpoint.

HTTP Request element

Additionally, you should add a Listener element, which collects the test plan results in a table/graph in order to analyze it.

Frequently asked Jboss Interview Questions

Now, from the top menu launch Run | Start and the JMeter test will be executed. Running the test demonstrates that the requests are roughly split between the two servers. As a matter of fact, an HTTP Request element, by default, treats every request as a single session that ends at the request.

JMeter test run dialog

Using load metrics

The built-in configuration of mod_cluster distributes requests using a fixed load factor. That is, it corresponds to the default configuration, which is:

The most important factors when computing load balancing are the weight and capacity properties. The weight (default is 1) indicates the impact of a metric with respect to the other metrics. In the previous example, the CPU metric will have twice the impact on the sessions that have a load factor metric of 1.

The capacity, on the other hand, can be used for a fine-grained control on the load metrics. By setting a different capacity to each metric, you can actually favor one node instead of another while preserving the metric weights.
The list of supported load metrics is resumed in the following table:

Load metrics


The above metrics can also be set using the CLI. For example, suppose that you want to add a metric that is based on the amount of heap used by the proxy. Here’s what you need to issue:

[standalone@ /] /subsystem=modcluster:addmetric(
{“outcome” => “success”}
[standalone@ /] /subsystem=modcluster:readresource(
“outcome” => “success”,
“result” => {
“advertise-socket” => “modcluster”,
“dynamic-load-provider” => {
“history” => 9,
“decay” => 2,
“load-metric” => [{
“address” => “[(”subsystem” => ”modcluster”)]”,
“operation” => “add-metric”,
“type” => “heap”
At any time, the metric can be removed using the remove-metric command:
[standalone@ /] /subsystem=modcluster:removemetric(
{“outcome” => “success”}
Explore Jboss Sample Resumes! Download & Edit, Get Noticed by Top Employers!Download Now!
Join our newsletter

Stay updated with our newsletter, packed with Tutorials, Interview Questions, How-to's, Tips & Tricks, Latest Trends & Updates, and more ➤ Straight to your inbox!

Course Schedule
JBoss TrainingMay 25 to Jun 09View Details
JBoss TrainingMay 28 to Jun 12View Details
JBoss TrainingJun 01 to Jun 16View Details
JBoss TrainingJun 04 to Jun 19View Details
Last updated: 03 Apr 2023
About Author

Ravindra Savaram is a Technical Lead at Mindmajix.com. His passion lies in writing articles on the most popular IT platforms including Machine learning, DevOps, Data Science, Artificial Intelligence, RPA, Deep Learning, and so on. You can stay up to date on all these technologies by following him on LinkedIn and Twitter.

read more