TestEngineering/Services/LoopServerLoadTesting: Difference between revisions
< TestEngineering | Services
Jump to navigation
Jump to search
| Line 203: | Line 203: | ||
* This environment also contains its own mock server: TBD | * This environment also contains its own mock server: TBD | ||
* REFs: | * REFs | ||
** https://wiki.mozilla.org/QA/Services/LoopTestEnvironments#MSISDN_Gateway_Server_Stage_Details | |||
** https://wiki.mozilla.org/QA/Services/LoopTestEnvironments#MSISDN_Mock_Server_Stage_Details | |||
** https://wiki.mozilla.org/QA/Services/LoopTestEnvironments#Loads_Services_Cluster_Environment | ** https://wiki.mozilla.org/QA/Services/LoopTestEnvironments#Loads_Services_Cluster_Environment | ||
** https://github.com/mozilla/browserid-verifier/tree/master/loadtest | ** https://github.com/mozilla/browserid-verifier/tree/master/loadtest | ||
Revision as of 00:20, 18 June 2014
Summary for Loop Server, Loop Client, Mock Server, MSISDN Gateway
- Latest Results
- Link to loads cluster: https://loads.services.mozilla.com/
- Note: this now requires login privileges and a password
- Snapshots from StackDriver - TBD
- Snapshots from Kibana - TBD
- Snapshots from Sentry - TBD
- Link to loads cluster: https://loads.services.mozilla.com/
- Latest Deployments
- TBD
- In Progress
- Build out of Stage environments
- Ongoing testing of Loop releases
- Bug review and issue debug - there are a lot of issues to work on (see the long list near the bottom of the wiki)
- Bugs To Verify:
- https://bugzilla.mozilla.org/show_bug.cgi?id=984325
- https://bugzilla.mozilla.org/show_bug.cgi?id=984325
- https://bugzilla.mozilla.org/show_bug.cgi?id=987086
- https://bugzilla.mozilla.org/show_bug.cgi?id=999457
- https://bugzilla.mozilla.org/show_bug.cgi?id=1019929
- https://bugzilla.mozilla.org/show_bug.cgi?id=1007451
- https://bugzilla.mozilla.org/show_bug.cgi?id=1014962
- https://bugzilla.mozilla.org/show_bug.cgi?id=1019416
- https://bugzilla.mozilla.org/show_bug.cgi?id=1019504
- https://bugzilla.mozilla.org/show_bug.cgi?id=1019878
- https://bugzilla.mozilla.org/show_bug.cgi?id=1021955
- https://bugzilla.mozilla.org/show_bug.cgi?id=1019733
- https://bugzilla.mozilla.org/show_bug.cgi?id=1021884
- https://bugzilla.mozilla.org/show_bug.cgi?id=1019053
- https://bugzilla.mozilla.org/show_bug.cgi?id=1019733
- https://bugzilla.mozilla.org/show_bug.cgi?id=1021884
- https://bugzilla.mozilla.org/show_bug.cgi?id=1021119
- https://bugzilla.mozilla.org/show_bug.cgi?id=1022688
- https://bugzilla.mozilla.org/show_bug.cgi?id=1021855
- https://bugzilla.mozilla.org/show_bug.cgi?id=1023281
- https://bugzilla.mozilla.org/show_bug.cgi?id=1019487
- https://bugzilla.mozilla.org/show_bug.cgi?id=1023296
- https://bugzilla.mozilla.org/show_bug.cgi?id=1020572
- https://bugzilla.mozilla.org/show_bug.cgi?id=1016886
- https://bugzilla.mozilla.org/show_bug.cgi?id=1024383
- https://bugzilla.mozilla.org/show_bug.cgi?id=1021726
- https://bugzilla.mozilla.org/show_bug.cgi?id=1025869
- or check here: http://mzl.la/1lzHC88
- Planned
- Load Testing
- Scaling for production traffic after release of Loop on Fx SOME VERSION
- Focused testing on Loop Client for desktop
- Focused testing on Loop Client for FxOS
- Blockers
- none at this time
- Completed
- None
- Performance
- TBD
Quick Verification Of Stage Deployments
- This is a quick sanity test of the environment before getting started on load tests.
- Loop Server
- TBD
- Loop Client
- TBD
- MSISDN Gateway
- TBD
- Mock Server
- N/A
Load Test Tool Client/Host
- It is always best to configure an AWS instance as the host for all load testing.
- All load tests can now run on the localhost (the AWS instance) or against the new Loads Cluster. See the following link for more information: https://wiki.mozilla.org/QA/Services/LoopTestEnvironments#Loads_Services_Cluster_Environment
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 Loop-Server and the Loads tool on the AWS instance
- Installation:
TBD
- Note: This will install a local copy of the Loads tool for use with the Loop-Server.
Running the load test against the Loop-Server in Stage
- Stage environment:
$ make test or $ make test SERVER_URL=BLAH $ make bench or $ make bench SERVER_URL=BLAH
- By default, the Loop-Server in Stage is configured to talk to our mock server:
- To hit the partner test servers, the following configuration file will need to be updated by OPs:
- /data/loop-server/config/settings.json
- Talk to OPs to toggle that configuration file and restart the Loop-Server in Stage.
- REFs:
- https://wiki.mozilla.org/QA/Services/LoopTestEnvironments#Loop_Server_Stage_Environment
- https://wiki.mozilla.org/QA/Services/LoopTestEnvironments#Loop_Server_Stage_Details
- https://wiki.mozilla.org/QA/Services/LoopTestEnvironments#Loop_Server_Configuration
- https://wiki.mozilla.org/QA/Services/LoopTestEnvironments#Loop_Mock_Server_Stage_Details
Using the Loads Services Cluster for the Loop-Server in Stage
- By using the Loads Services Cluster, we can offload the broker/agents processes and save client-side CPU and memory.
- Changes were made to Makefile and the load test to use the cluster and some associated config files (for test, bench, megabench).
- Stage environment:
$ make megabench SERVER_URL=BLAH
- By default, the Loop-Server in Stage is configured to talk to our mock server:
- To hit the partner test servers, the following configuration file will need to be updated by OPs:
- /data/loop-server/config/settings.json
- Talk to OPs to toggle that configuration file and restart the Loop-Server in Stage.
- REFs:
- https://wiki.mozilla.org/QA/Services/LoopTestEnvironments#Loop_Server_Stage_Environment
- https://wiki.mozilla.org/QA/Services/LoopTestEnvironments#Loop_Server_Stage_Details
- https://wiki.mozilla.org/QA/Services/LoopTestEnvironments#Loop_Server_Configuration
- https://wiki.mozilla.org/QA/Services/LoopTestEnvironments#Loop_Mock_Server_Stage_Details
- https://wiki.mozilla.org/QA/Services/LoopTestEnvironments#Loads_Services_Cluster_Environment
- https://github.com/mozilla/browserid-verifier/tree/master/loadtest
Installing MSISDN-Gateway and the Loads tool on the AWS instance
- Installation:
TBD
- Note: This will install a local copy of the Loads tool for use with MSISDN-Gateway.
Running the load test against MSISDN-Gateway in Stage
- Stage environment:
$ make test SERVER_URL=BLAH $ make bench SERVER_URL=BLAH
- This environment also contains its own mock server: TBD
- REFs
Using the Loads Services Cluster for the MSISDN-Gateway
- By using the Loads Services Cluster, we can offload the broker/agents processes and save client-side CPU and memory.
- Changes were made to Makefile and the load test to use the cluster and some associated config files (for test, bench, megabench).
- Stage environment:
$ make megabench SERVER_URL=BLAH
- This environment also contains its own mock server: TBD
- REFs
- https://wiki.mozilla.org/QA/Services/LoopTestEnvironments#MSISDN_Gateway_Server_Stage_Details
- https://wiki.mozilla.org/QA/Services/LoopTestEnvironments#MSISDN_Mock_Server_Stage_Details
- https://wiki.mozilla.org/QA/Services/LoopTestEnvironments#Loads_Services_Cluster_Environment
- https://github.com/mozilla/browserid-verifier/tree/master/loadtest
Configuring The Load Tests
- Loop-Server
- MSISDN-Gateway
Test Coverage and Stats
- Basic tweakable values for all load tests
- users = number of concurrent users/agent
- agents = number of agents out of the cluster, otherwise errors out
- duration = in seconds
- hits = 1 or X number of rounds/hits/iterations
- Loop-Server
- TBD
- MSISDN-Gateway
- TBD
Analyzing the Results
- There are several methods and tools for analyzing the load test results.
- 1. Using the Loads Services Cluster dashboard
- All loads tests using this cluster generate a live report and a run report available on this site:
- You can quickly review the following here: Status, Configuration, Results, Custom Metrics, and Errors.
- If you want more details on the dashboard, please file an issue here: https://github.com/mozilla-services/loads
Debugging the Issues
- There are several methods and tools for debugging the load test errors and other issues.
- 1. Important logs for Loop-Server (per server)
- TBD
- 2. Important logs for MSISDN-Gateway (per server)
- TBD
- Acceptable Loop-Server errors:
TBD
- Acceptable MSISDN-Gateway errors:
TBD
Monitoring Loop Stage
- Loads dashboard:
- Cluster status
- Check from any loadtest folder or loads install:
./bin/loads-runner --ping-broker --ssh=ubuntu@loads.services.mozilla.com ./bin/loads-runner --check-cluster --ssh=ubuntu@loads.services.mozilla.com
- and also on StackDriver: https://app.stackdriver.com/groups/6664/stage-loads-cluster
- Monitoring TS/Verifier/Sync Stage:
- Stackdriver
- Kibana
/Token%20App%20Logs%20POC
Performance Testing Information
- TBD
Details on the Load Test tool
- The documentation can be found here:
- The repositories are here:
- The Services cluster is here:
Known Bugs, Issues, and Tasks
- Loop Server:
- https://bugzilla.mozilla.org/show_bug.cgi?id=985388
- https://bugzilla.mozilla.org/show_bug.cgi?id=998332
- https://bugzilla.mozilla.org/show_bug.cgi?id=985387
- https://bugzilla.mozilla.org/show_bug.cgi?id=999715
- https://bugzilla.mozilla.org/show_bug.cgi?id=1021855
- https://bugzilla.mozilla.org/show_bug.cgi?id=1022680
- https://bugzilla.mozilla.org/show_bug.cgi?id=1022688
- https://bugzilla.mozilla.org/show_bug.cgi?id=1022947
- https://bugzilla.mozilla.org/show_bug.cgi?id=1023436
- https://bugzilla.mozilla.org/show_bug.cgi?id=1023768
- https://bugzilla.mozilla.org/show_bug.cgi?id=1023518
- https://bugzilla.mozilla.org/show_bug.cgi?id=1024408
- https://bugzilla.mozilla.org/show_bug.cgi?id=1024409
- https://bugzilla.mozilla.org/show_bug.cgi?id=1024490
- https://bugzilla.mozilla.org/show_bug.cgi?id=1024548
- https://bugzilla.mozilla.org/show_bug.cgi?id=1024920
- https://bugzilla.mozilla.org/show_bug.cgi?id=1024927
- https://bugzilla.mozilla.org/show_bug.cgi?id=1025779
- https://bugzilla.mozilla.org/show_bug.cgi?id=1025872
- https://bugzilla.mozilla.org/show_bug.cgi?id=1025876
- https://bugzilla.mozilla.org/show_bug.cgi?id=1025881
- https://bugzilla.mozilla.org/show_bug.cgi?id=1025883
- https://bugzilla.mozilla.org/show_bug.cgi?id=1025894
- https://bugzilla.mozilla.org/show_bug.cgi?id=1019564
- https://bugzilla.mozilla.org/show_bug.cgi?id=1020596
- https://bugzilla.mozilla.org/show_bug.cgi?id=1019878
- https://bugzilla.mozilla.org/show_bug.cgi?id=1019564
- https://bugzilla.mozilla.org/show_bug.cgi?id=1019504
- https://bugzilla.mozilla.org/show_bug.cgi?id=1021855
- https://bugzilla.mozilla.org/show_bug.cgi?id=1021726
- https://bugzilla.mozilla.org/show_bug.cgi?id=1023217
- https://bugzilla.mozilla.org/show_bug.cgi?id=1023792
- https://bugzilla.mozilla.org/show_bug.cgi?id=1015087
- https://bugzilla.mozilla.org/show_bug.cgi?id=1013382
- https://bugzilla.mozilla.org/show_bug.cgi?id=1015085
- https://bugzilla.mozilla.org/show_bug.cgi?id=1003170
- https://bugzilla.mozilla.org/show_bug.cgi?id=1003174
- https://bugzilla.mozilla.org/show_bug.cgi?id=1022678
- https://bugzilla.mozilla.org/show_bug.cgi?id=1025895
- https://bugzilla.mozilla.org/show_bug.cgi?id=1024462
- https://bugzilla.mozilla.org/show_bug.cgi?id=1025792
- https://bugzilla.mozilla.org/show_bug.cgi?id=1019504
- Loop Client: none at this time
- MSISDN Gateway:
- Mock Server: none at this time
- Or check here: http://mzl.la/1lzHC88
- OPs and Infrastructure
- Loads Tool and Cluster
- https://github.com/mozilla-services/loads/issues/222
- https://github.com/mozilla-services/loads/issues/234
- https://github.com/mozilla-services/loads/issues/235
- https://github.com/mozilla-services/loads/issues/251
- https://github.com/mozilla-services/loads/issues/257
- https://github.com/mozilla-services/loads/issues/259
- https://github.com/mozilla-services/loads/issues/265
- https://github.com/mozilla-services/loads/issues/266
- https://github.com/mozilla-services/loads-web/issues/24
References
- Repositories
- Documentation
- https://wiki.mozilla.org/CloudServices/Loop
- https://wiki.mozilla.org/CloudServices/Loop/Server
- https://wiki.mozilla.org/Services/Loop
- https://wiki.mozilla.org/Loop
- https://wiki.mozilla.org/Loop/Architecture
- https://wiki.mozilla.org/Loop/Architecture/ID
- https://wiki.mozilla.org/Loop/Telemetry
- https://docs.google.com/a/mozilla.com/spreadsheet/ccc?key=0AlJmiyFngeSwdGJEVnItQ2NVbGx6NXdjbVBUYmIxSGc#gid=0
- https://people.mozilla.org/~dhenein/labs/loop-docs/
- https://people.mozilla.org/~dhenein/labs/loop-mvp-spec/
- https://wiki.mozilla.org/Loop/Architecture/MVP
- The QA Test Environments:
- OPs pages for stats collection, logging, monitoring
- TBD