Weave Load Test Plan

From MozillaWiki
Jump to: navigation, search

Weave 1.3 Load Test Plan

Objective

The objective of Weave 1.3 load test is to ensure that the production configuration of the weave data services can support various levels of sustained simulated and real user weave client activity over a period of time. During the load generation tests, monitoring of key performance metrics on the both client and server will be recorded to ensure generated load levels are accurate and the system response to servicing the requests under high load conditions are within acceptable ranges.

Scope

What is being tested
  • The Weave 1.3 load testing plan will ensure the following services are performing adequately and without noticeable performance issues under high but sustainable server load conditions.
    • the weave data synchronization service
    • Weave client behavior and characteristics
What is not being tested
  • Due to logistics and tool limitations, The synthetic load generation clients will not use secure socket layer (SSL) communication protocol to communicate to the server. The risk exposure is contained to a degree as SSL communication is handled by the Zeus web front end server.
  • Load generation will only be generated by synthetic clients. Live users will perform basic weave operations under heavy load conditions to determine if these operations are adversely affected in any measurable way.

Load Test Approach

For Weave 1.3 there are limited means available for generating realistic loads of user and client requests. Michael Hanson has written the weave load test tool based on the http protocol library libcurl. The weave load test tool will be the primary means of generating user account creation and weave sync traffic.

In addition, during periods of peak synthetic load generation we will use live weave users performing various weave synchronization test scenarios. The live testers will be reporting weave performance assessments during the load test. The performance report will be based on weave client logs and subjective performance assessment.

Load Tests to perform
Load Test Description
Weave synthetic load generation Use the weave load tool to perform a mix of weave synchronization scenarios with goal of generating load to maximum server load levels.
Weave synthetic load generation and live user interaction Use the weave load tool to perform a mix of weave synchronization scenarios with goal of generating load to maximum server load levels. After server reaches maximum load levels, use geographic dispersed live user to perform weave synchronization tests and report transaction response times. The live user load test plan is define in Weave Live User Loadtest Plan

Requirements

  1. Hardware
    1. Production System
      1. All production hardware must be installed and configured.
    2. Load Generation
      1. Sufficient machines to run the load generation tools to reach maximum sustainable load conditions on the production system.
      2. Client load tool must be proven to create enough sustainable load to exhaust memory cache
  1. Software
    1. Load Generation
      1. Weave load test tool
        1. load tool must be proven to create enough sustainable load to exhaust production system resources.
    2. Performance Metric measurement
      1. Need to determine what metrics are to be recorded for both client and server
      2. client sync response time
        1. Measure the full sync response time using the selection: Tools->Weave->Perference->Reset Sync->Replace all data on this computer with your Weave data. The response time for this trans action will be log data via the Weave Activity Log.

Schedule

May 6-7 Baseline measurements and loadtest dryrun
May 11-13 load test conducted during sustained maximum load conditions

Load Test Deliverables

  1. Load test deliverables
    1. client response time graph
    2. server response time graphs of key metrics
    3. live weave user test reports
    4. bugs reported during test

Reference Documents

Reference Bugs
    • bug 562100 - need enhanced activity logging to measure sync performance from client

Release Checklist

Client Requirements
Id Item Status Notes

C1

All release features and blocker bug fixes are checked in and available in the current build.

[NEW]

C2

Weave client available and installable.

[NEW]

C3

Millisecond response time measurements can be derived from the Activity log.

[NEW]

Server Requirements
Id Item Status Notes

S1

All release features and blocker bug fixes are checked in and available in the current build.

[NEW]

C2

Current server build is installed on staging and production hardware.

[NEW]

Test Requirements
Id Item Status Notes

S1

All unit tests written checked in and all test results are green(passed)

[NEW]

S2

Client test plan is complete and reviewed.

[NEW]

S3

Load test plan is complete and reviewed.

[NEW]

S4

High availability strategy and major component failure testing conducted and passed.

[NEW]

S5

Data integrity has been verified after execution of the data migration scripts.

[NEW]

S5

Server side monitoring is sufficient to allow for determining all key resource current consumption levels and rates of consumption over time and load.

[NEW]

S6

The number of current active virtual users is easily determined by a simple query.

[NEW]

S7

The Weave server system is easily initialized to start a load test session.

[NEW]

S8

The load generation tool can be initialized with the number of active users it can simulate.

[NEW]

Issues and Questions