TestEngineering/Services/LoadsToolsAndTesting1
From MozillaWiki
< TestEngineering | Services(Redirected from QA/Services/LoadsToolsAndTesting1)
- NOTE 1: Source: https://etherpad.mozilla.org/Loads-Current-Status-Aug2014
- NOTE 2: This is specifically for Loads V1
- NOTE 3: For Loads V2 information, please see https://wiki.mozilla.org/QA/Services/LoadsToolsAndTesting2
Contents
- 1 Loads V1 and Vaurien
- 1.1 Loads Cluster Usage Rules
- 1.2 Loads V1 Cluster Environment/Stack
- 1.3 Loads V1 Cluster Monitoring
- 1.4 Loads V1 Cluster Maintenance
- 1.5 Repos
- 1.6 Bugs
- 1.7 Documentation
- 1.8 Loads Cluster Dashboard
- 1.9 Deployment and AWS Instances
- 1.10 Monitoring the cluster via Stackdriver
- 1.11 Monitoring the Loads Cluster via the Dashboard
- 1.12 Monitoring the Stage environment during Load Tests
- 1.13 Load Test Results
- 1.14 Reporting (or lack of it)
- 1.15 QA Wikis
- 1.16 Current projects using Loads
- 1.17 New/Planned projects using Loads
- 1.18 Other projects doing load testing
- 1.19 Vaurien
Loads V1 and Vaurien
Two tools Loads (V1) and Vaurien
- Most Stage deployment verification is partially handled through the use of the Loads tool for stress/load (and someday performance) testing.
- Vaurien is a TCP proxy which will let you simulate chaos between your application and a backend server.
- One active(?) POC for Vaurien is with GeoLocation (ichnaea).
Loads Cluster Usage Rules
- Note: There are a number of open bugs and issues (see below) that require Loads use to be focused and specific per project:
- Do not over do the loads test - start with the default values in the config files.
- Do not run more than two tests in parallel.
- Do not use more than 5 agents per load test unless you need to use more.
- Do not run a load test of more than 8 - 10 hours
- There are more limitations/rules...
Loads V1 Cluster Environment/Stack
- URLs
- Versions
Loads Cluster/Broker/Agents: $ cd /home/ubuntu/loads/bin $ ./loads-runner --version
- AWS in US West
- loads-master (broker and agent processes)
- loads-slave-1 (agent processes)
- loads-slave-2 (agent processes)
- NOTE: there is no stack or ELB for this cluster
- Files
- /home/ubuntu
- loads
- loads-aws
- loads-web
- /home/ubuntu
- Processes
- Search for processes owned by ubuntu, loads, nginx, circus
- Logs
- /var/log/redis
- /var/log/nginx
- QA access
- You need special access to be able to SSH into these devices
- You need to make some changes to your .ssh/config file
- Links
Loads V1 Cluster Monitoring
- Loads Dashboard
- Cluster status
- Check directly from the Loads Cluster dashboard: http://loads.services.mozilla.com
Agents statuses Launch a health check on all agents
Loads V1 Cluster Maintenance
- If things should go wrong...
- Checking the cluster dashboard
- TBD
- Checking the stack
- TBD
- Restarting the Master/Broker
- TBD
- Restarting the Slaves/Agents
- TBD
Repos
- https://github.com/mozilla-services/loads
- https://github.com/mozilla-services/loads-aws
- https://github.com/mozilla-services/loads-web
- https://github.com/mozilla-services/loads.js
- https://github.com/mozilla-services/vaurien
- https://github.com/mozilla-services/konfig
Bugs
- META: https://github.com/mozilla-services/loads/issues/279
- https://github.com/mozilla-services/loads/issues
- https://github.com/mozilla-services/vaurien/issues
Documentation
Loads Cluster Dashboard
- http://loads.services.mozilla.com/
- or http://ec2-54-212-44-143.us-west-2.compute.amazonaws.com/
- Note: This is a login/password protected site. For now, please get an account via Tarek.
- Note: You need to make some changes to your .ssh/config file
Deployment and AWS Instances
- Master, two slaves in US West
- loads-master (broker and agent processes)
- loads-slave-1 (agent processes)
- loads-slave-2 (agent processes)
- Note: there is no CF stack or ELB for this cluster
- Note: the load cluster state/health can be check directly from the dashboard (see above)
Monitoring the cluster via Stackdriver
Monitoring the Loads Cluster via the Dashboard
- Dashboard: http://loads.services.mozilla.com/
- Check the loads cluster state/health directly from the dashboard:
- Agents statuses
- Launch a health check on all agents
Monitoring the Stage environment during Load Tests
- We have various dashboards created by OPs that capture and display all sorts of data via the Heka/ES/Kibana pipeline
- Heka dashboard
- Kibana dashboard
- Stackdriver
Load Test Results
- Load test results are always listed in the dashboard.
- A clean up of the dashboard is a high priority for V2 - we want a much better/accurate representation of the test(s) run with the kind of human-readable results that provide additional meaning/context to the metrics provided by the various OPs dashboards
Reporting (or lack of it)
- There were plans to create some reporting in the style of what we had with the Funkload tool.
- There are bugs open about getting some reporting out of Loads.
- No action taken at this time, but a very good candidate for V2.
QA Wikis
- https://wiki.mozilla.org/QA/Services/FxATestEnvironments
- https://wiki.mozilla.org/QA/Services/FxALoadTesting
- https://wiki.mozilla.org/QA/Services/TSVerifierSyncTestEnvironments
- https://wiki.mozilla.org/QA/Services/TokenServerAndSyncLoadTesting
- https://wiki.mozilla.org/QA/Services/LoopTestEnvironments
- https://wiki.mozilla.org/QA/Services/LoopServerLoadTesting
Current projects using Loads
- FxA-Auth-Server
- FxA-Scrypt-Helper (defunct)
- Tokenserver/Verifier (now combined)
- Sync 1.5
- Loop-Server
- MSISDN-Gateway
- GeoLocation: https://github.com/mozilla/ichnaea/tree/master/loadtest
New/Planned projects using Loads
- SimplePush (probably)
- Tiles (maybe)
Other projects doing load testing
- Tiles: https://github.com/mozilla-services/tiles-loadtest (which I think uses Siege)
- SimplePush:
- https://github.com/bbangert/push-tester (which is all Haskell-y)
- https://github.com/oremj/simplepush-testpod (straight-up JS)
- https://github.com/edmoz/load-test (the Python equivalent me thinks)
Vaurien
- Get Vaurien (or similar) working on FxA, TS, Verifier, Sync (as appropriate)
- See https://github.com/crankycoder/ichnaea for a working example
- Open Issues for this:
- Ichnaea: https://github.com/mozilla/ichnaea/issues/148
- Ichnaea: https://github.com/mozilla/ichnaea/issues/169
- FxA: https://github.com/mozilla/fxa-auth-server/issues/558
- Tokenserver: https://github.com/mozilla-services/tokenserver/issues/44
- Verifier: https://github.com/mozilla/browserid-verifier/issues/50
- Sync: https://github.com/mozilla-services/server-syncstorage/issues/19