Plan:
Set up a Fedora 4 load balanced cluster, perform tests including load-balance read requests across the cluster, nodes joining/leaving the cluster, and throughput/response time comparison of a single Fedora and a cluster.
Description:
Currently the Fedora 4 cluster performance testing was conducted in a single machine [1], and load balanced cluster setup was conducted using Fedora Beta 1 version [2]. After Fedora 4 Beta 2 was released, the version of Modeshape and Infinispan were changed and the existing cluster configuration document does not apply to the new Fedora 4 release. Our plan at VT is to set up a Fedora 4 load balanced cluster using n AWS EC2 instances, where n>=3, to do the following tasks:
- Verify the load balanced cluster setup using the updated Modeshape and Infinispan configuration.
- Demonstrate the nodes joining and node leaving in the cluster.
- Measure the cluster’s throughput and response time
- Write up installation document
- Write up performance report
Software:
Fedora 4: master branch version (09/18/14) https://github.com/fcrepo4/fcrepo4
JMeter: http://jmeter.apache.org/
Loadosophia: https://loadosophia.org/
Test Environment:
AWS: EC2 t2.small or medium instances.
OS: Ubuntu 14.04 LTS,
Test Procedure:
- Verify the load balanced cluster setup using the updated Modeshape and Infinispan configuration.
- Following updated configuration files and document to set up Fedora 4 cluster
- Configured the cluster in replication mode
- Load objects into one of the instances
- Configure Apache mod_jk load balancer to equally balance requests across these three instances.
- Use JMeter to send read/write requests.
- Demonstrate the nodes joining and node leaving in the cluster.
- Create new Fedora instances
- Add new instances into cluster
- Perform read requests as in Test 1
- Remove instances from cluster
- Perform read/write requests as in Test 1
- Measure the cluster’s throughput and response time
- Use JMeter to send read/write requests to a single Fedora instances
- Compare results with Test 1 and Test 2
Possible variations:
- Run EC2 instances in the same or different region/availability zone
- Different read/write ratio
- Different file size distributions (mostly small, mostly larger, or mixes)
- Expand the clustering mode from replicated to invalidation, distributed, and even remote mode. The distributed mode is of particular interest to us since it allows us to use many smaller EC2 instances instead of several large instances.
That being said, I'm not overly concerned about these variations at the moment and want to focus on the simplest cases. Just want to point out these variations are interesting and we may want to try them after the baseline tests are done.
Reference:
[2] https://wiki.duraspace.org/display/FF/2014-08-10+Acceptance+Test+- +Load+balanced+cluster+setup