TestEngineering/Services/TokenServerAndSyncLoadTesting
< TestEngineering | Services
Jump to navigation
Jump to search
Load Test Tool Client/Host
- It is always best to configure an AWS instance as the load test tool client/host.
- The actual Load Test broker and agents run in the Load Test environment set up by rfkelly. See the following wiki:
Creating a RHEL AWS instance
- Pick a Region then Create Instance > Launch Instance
- Follow the prompts to create a basic, RHEL-flavored instance
- Use of the QA/Dev key pairs that have been set up for this:
- US East Key Pair: QA-Dev-Share (created by jbonacci) for general use
- US West Key Pair: QA-dev-share (created by RaFromBRC) for general use
- Once the instance is running, log in as "ec2-user"
- The following apps, tools, and libs will need to be installed for use with various Services applications:
- gcc, gcc-c++
- hg
- git
- python-devel
- automake, autoconf, and libtool (required for libzmq, for easy_install)
- pip
- virtualenv
- node/npm
- zeromq 3.X
- gmp, gmp-devel
- Also, general rhel updates:
$ sudo yum -y update and/or $ sudo yum -y upgrade
- Now, the instance should be ready for installing and using the Loads tool.
Creating an Ubuntu AWS instance
- Pick a Region then Create Instance > Launch Instance
- Follow the prompts to create a basic, Ubuntu-flavored instance
- Use of the QA/Dev key pairs that have been set up for this:
- US East Key Pair: QA-Dev-Share (created by jbonacci) for general use
- US West Key Pair: QA-dev-share (created by RaFromBRC) for general use
- Once the instance is running, log in as "ubuntu"
- The following apps, tools, and libs will need to be installed for use with various Services applications:
- gcc, g++
- mercurial
- git
- python-setuptools, python-virtualenv, and python-dev
- automake, autoconf, libtool
- m4
- node/npm
- libzmq and zeromq 3.X
- gmp-5.1.3 or newer
- Also, general rhel updates:
$ sudo apt-get update and/or $ sudo apt-get upgrade
- Now, the instance should be ready for installing and using the Loads tool.
Installing the Loads tool on the AWS instance for TokenServer
Installation: $ TBD
- Note: This will install a local copy of the Loads tool for use with TokenServer.
Running the Loads tool against TokenServer in Stage
- TBD
- NOTE: only one load test can be run at a time against FxA Stage since we are making use of the Loads environment broker and agents. Allow a load test to finish before starting a new load test. See below for more information...
- NOTE: Also, we can configure the load test (make bench) to run in detached mode with an appropriate observer. See below for more information...
Installing the Loads tool on the AWS instance for Sync 1.5
Installation: $ TBD
- Note: This will install a local copy of the Loads tool for use with TokenServer.
Running the Loads tool against Sync 1.5 in Stage
- Loads against specific Sync nodes in Stage- TBD
- NOTE: only one load test can be run at a time against FxA Stage since we are making use of the Loads environment broker and agents. Allow a load test to finish before starting a new load test. See below for more information...
- NOTE: Also, we can configure the load test (make bench) to run in detached mode with an appropriate observer. See below for more information...
Running the Loads tool against TokenServer and Sync 1.5 in Stage
- A combined loads test against TokenServer and Sync 1.5 in Stage - TBD
- NOTE: only one load test can be run at a time against FxA Stage since we are making use of the Loads environment broker and agents. Allow a load test to finish before starting a new load test. See below for more information...
- NOTE: Also, we can configure the load test (make bench) to run in detached mode with an appropriate observer. See below for more information...
Using the Loads Test environment
- For the broker and agents - will probably have Dev create a temporary addition to the Make file and tools to allow for a "make megabench" that will run a "make bench" but use the Loads Test environment broker and agent set up.
- Note: normally, we can only run one load test at a time with this environment, since it was not designed to share the broker and all the agents. If you attempt to run two loads tests with this environment, you will probably get a failure that looks something like this:
ExecutionError: Not enough agents running on that broker
- We can, with the proper permissions, SSH into the environment and restart the broker and agent processes.
Using the Loads Services cluster
- To get around the issues with using the loads tool on a local host
- And as an alternative to Detached Mode and Observers
- TBD
Test Coverage and Stats
- TBD
Monitoring FxA Stage
- OPs has set up two dashboards for monitoring Stage:
- NOTE: There is currently a bug that makes it difficult to access these pages in Fx without adding a certificate exception. The use of the Mozilla cert "should" get around this, but the bug remains...
- NOTE: Also, TokenServer Stage and Sync 1.5 Stage are not currently hooked up into the hekad --> elasticsearch --> kibana pipeline. See https://github.com/mozilla-services/puppet-config/issues/120
Details on the Load Test tool
- The documentation can be found here:
- https://loads.readthedocs.org/en/latest
- The most useful information here is running in detached mode and using an observer
- The repositories are here:
- The Services cluster is here:
Known Issues
- FxA
- https://github.com/mozilla/fxa-auth-server/issues/471
- https://github.com/mozilla/fxa-auth-server/issues/508
- https://github.com/mozilla/fxa-auth-server/issues/540
- https://github.com/mozilla/fxa-auth-server/issues/545
- various others that impact load testing (open and closed issues)
- We are still diagnosing issues in the Stage environment. The most current, short run on 2/6/2014 showed the following:
Success: 6125 Errors: 0 Failures: 524099 with a high number of 500s and 502s
- See also https://bugzilla.mozilla.org/show_bug.cgi?id=968455
- And https://bugzilla.mozilla.org/show_bug.cgi?id=968396
- Kibana
- https://github.com/mozilla/fxa-deployment/issues/32
- Note: We can, with proper privileges, SSH into the log aggregator and restart the elasticsearch and hekad processes.
- Infrastructure
- https://github.com/mozilla-services/puppet-config/issues/64
- https://github.com/mozilla-services/puppet-config/issues/68
- https://github.com/mozilla-services/puppet-config/issues/73
- https://github.com/mozilla-services/puppet-config/issues/84
- https://github.com/mozilla-services/puppet-config/issues/85
- https://github.com/mozilla-services/puppet-config/issues/86
- https://github.com/mozilla-services/puppet-config/issues/98
- https://github.com/mozilla-services/puppet-config/issues/103
- https://github.com/mozilla-services/puppet-config/issues/116
- https://github.com/mozilla-services/puppet-config/issues/117
- https://github.com/mozilla-services/puppet-config/pull/119
- Loads Tool and clusters
- Because of the issues listed above, the Loads tool team is working on some fixes for better use of the tool in detached mode with a given observer that will allow us to send the test output to a specific email or a given IRC channel.
- The team is also looking at performing all FxA loads testing through the Services cluster.
References
- Repository: https://github.com/mozilla/fxa-auth-server
- The QA Test Environments: https://wiki.mozilla.org/QA/Services/FxATestEnvironments
- Deploying the FxA Load Test environment for broker/agents usage:
- OPs pages for stats collection, logging, monitoring
- TBD