1

I am working on a Tomcat cluster experimentally because of it may be need for us production environments. It must be scaleable, high available and support as much as multi concurrent users. Because of that i made a test environment like that:

           HaProxy
           /     \
          /       \
Tomcat 1 (7.0)  Tomcat 2(7.0)
  Redis 1         Redis 2

Tomcats' are load balanced on HaProxy and they replicated their sessions via Redis. Every Redis connected each others via sentinel. Finally every Tomcat and Redis bundles are a machine. For example, Tomcat 1 and Redis 1 are on same server.

At the end of this experiment lab i have some questions,

  1. How can i push the limits of this lab? I tried to basic applications on tomcat but i need to know limits of this cluster to discover potential failover points.
  2. What are potential weaknesses of this lab? What is the best practices on same issues?
  3. What is advantages or disadvanteges of using Web Logic or Wildfly instead of Tomcat or using Tomcat's default DeltaManager or BackupManager?
  4. I want to try replicate node memories to each other. Is it possible? If possible, i want to know your recommendations :)

Thanks in advance.

1 Answers1

1

You need to focus on your application testing, not the Tomcat (or whatever application server) testing.

The process of discovering the breaking point of the system under test is known as Stress Testing, the idea is the following:

  1. Using a load testing tool create a workload which will represent normal application usage scenario(s)
  2. Set up monitoring of baseline health metrics of the JVM where Tomcat is running and underlying operating system.
  3. Start with 1 virtual user and gradually increase the load at the same time keeping an eye on system resources consumption.
  4. When any of system resource consumption metrics (CPU, RAM, Network/Disk IO) will exceed, i.e. 90% of maximum available capacity or system will start swapping or JVM will perform garbage collections to often or application response time will start exceeding acceptable threshold levels or errors will start occurring - this is so called "bottleneck" and this is how many concurrent users (or requests per second) your application is able to serve.
Dmitri T
  • 531
  • 2
  • 2