Skip to end of metadata
Go to start of metadata

Introduction

This page documents the results of our testing different configurations of jboss, mysql and apache using Amazon's EC2 service. The configurations tested were single server; separate database; and multiple jboss nodes load balanced by Apache's mod_jk module. Issues of interest might be scalability, high availability, fault tolerance, server resource usage, or user response times. The tests here mainly look at scalability and user response times.

Test Setup

Single server

Dual Xeon E5345, 2.33 GHz
1.7 GB RAM

LAMS, MySQL and mod_jk setup on a single machine.

Separate database

Dual Dual-Core Opteron 270, 2 GHz
7.5 GB RAM

As for single server, but MySQL running separately on the hardware above.

Multiple JBoss nodes

Dual Xeon E5345, 2.33 GHz
1.7 GB RAM

As for separate database, but 2nd and 3rd jboss nodes running on the hardware above. LAMS was setup as described in Clustering.

Test harness

Dual-Core AMD Opteron 2218 HE, 2.6 GHz
1.7 GB RAM

The test harness is a multi-threaded application that simulates the activity of multiple learners. Users were created before the tests were run - each test created a new lesson with the tested number of learners. It returns the average response time of each request made by each of the users as a single figure, as well as the sum total of each response time.

The sequence used was a simple sequence of 2 noticeboards. Anything more complicated caused functional errors which distorted the results. These issues would need to be addressed for a live environment of several hundred simultaneous users.

Results

Discussion

The setup above used default settings for the most part, so wasn't tweaked for performance by any stretch of the imagination. For a relative comparison of the different setups it was good enough though. The modified settings included MaxClients/ServerLimit for Apache, maxThreads in JBoss, and max_connections for MySQL.

Using the single server as a point of comparison, you can see that separating the database doesn't provide better response time until 400 learners. Using 2 jboss nodes is better than either a single server or separated database on its own, but the difference is negligible at less than 200 learners. After there are 300 learners, the third jboss node starts to show benefits.

  • No labels