performance testing of a road tolling...

66
Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl Montag, 15. April 13

Upload: others

Post on 19-Apr-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Performance Testing of a Road Tolling System

Oliver BaendlSiegfried Goeschl

Montag, 15. April 13

Page 2: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Gauteng Open Road TollingSouth Africa

Montag, 15. April 13

Page 3: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

42 Tolling PointsMontag, 15. April 13

Page 4: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

1.500.000 registered road-userMontag, 15. April 13

Page 5: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

11 Satellite CentersMontag, 15. April 13

Page 6: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

41 E-Toll Shops

Montag, 15. April 13

Page 7: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

20 Mobile Payment UnitsMontag, 15. April 13

Page 8: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Central Operation CenterMontag, 15. April 13

Page 9: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

750 Concurrent CRM Client Users

Montag, 15. April 13

Page 10: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

162 vehicle passges per secondMontag, 15. April 13

Page 11: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

400 concurrent web usersMontag, 15. April 13

Page 12: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Two Data Centers

Montag, 15. April 13

Page 13: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Master Control Program

Montag, 15. April 13

Page 14: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Project Overview

• Vehicles are passing through a tolling point

• The vehicle is identified either using the license plate number (via OCR) or a tag

• Vehicle passage are transmitted to Open Road Tolling Back Office (ORTBO)

• 90% video passages with three images

• 10% tag passages

Montag, 15. April 13

Page 15: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Project Overview

• Vehicle passages are collected and assigned to road-user accounts in the Transaction Clearing House (TCH)

• TCH responsible for billing the customer

• Passages of unregistered or black-listed cars are processed by the Violation Processing Center (VPC)

Montag, 15. April 13

Page 16: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Project Overview

• Overall system contains multiple Oracle RACs and MSSQL clusters

• Interfaces between the subsystems mostly web services

• Backup data center replicates the “Central Operation Center” over dark fiber

Montag, 15. April 13

Page 17: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Schedule Phase One

• Performance testing of CRM Server simulating 750 concurrent & active CRM client sessions

• Performance testing of public-facing web portal simulating 400 concurrent & active web user sessions

• On success the CRM subsystem goes live and has real user accounts

Montag, 15. April 13

Page 18: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Schedule Phase Two

• Simulating up to 162 vehicle passage per second

• Validating the end-to-end processing under load (passage processing, customer billing and violation processing)

• On success the overall system goes live

Montag, 15. April 13

Page 19: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Performance Test Scope

• End to end performance acceptance test

• Mandatory and client-witnessed test

• Strict acceptance criteria regarding

‣ throughput

‣ number and severity of errors

‣ validation of test runs

Montag, 15. April 13

Page 20: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Performance Test Types

Baseline Test One hour average load

Stress Test One hour peak load

Endurance Test 24 hours maximum load

Montag, 15. April 13

Page 21: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Performance Test Hardware

• Six dedicated load injectors

‣ Windows 2008 Server

‣ 3 physical and 3 virtual boxes

‣ Dual quad-cores with 8 GB RAM

• No direct access outside the data center

‣ Citrix over RDP over RDP

Montag, 15. April 13

Page 22: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Performance Test Tools• All performance test tools have issues

‣ Make sure that they work for you

• We prefer JVM-based test tools

‣ Easy to migrate between different OS

‣ We are Java developers

• We prefer command-line invocation

‣ RDP over slow network is really slow

Montag, 15. April 13

Page 23: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Performance Test Tools

• We use a non-distributed installation

‣ Complex network and routing

‣ Firewall not under our control

• Check the license and price tags

‣ Virtual users can be expensive

‣ Connectivity to license server?

Montag, 15. April 13

Page 24: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

The Test Tools We Used

Subsystem Interface Planned Delivered

CRM Server WebService

Public Web Portal HTML

Vehicle PassageProcessing WebService

Montag, 15. April 13

Page 25: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Apache JMeter

• Open Source and free

• Implemented a new reporting backend to scope with huge result files

• Rock solid - only minor issues

• Extensible using scripting and Java libraries

• Rough GUI compared to commercial tools

• Unsuitable for complex ASP.NET web sites

Montag, 15. April 13

Page 26: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

WAPT Pro

• Excellent value for money

• Good support

• ASP.NET module saved my day

• Extensible through Javascript

• One major issue with generation of test values under high load (requires restart)

Montag, 15. April 13

Page 27: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

soapUI Pro

• Excellent for prototyping and functional testing of web services

• WebService mocking saved my day

• Extensible using Groovy and Java libraries

• Various issues during load testing

• soapUI was replaced with JMeter for performance tests

Montag, 15. April 13

Page 28: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

• No software installation

• Take two (or more)

• Automation is your friend

• Performance test for everyone

• Performance tests are a valuable asset

Some More Thoughts

Montag, 15. April 13

Page 29: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

No Software Installation

Montag, 15. April 13

Page 30: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

No Software Installation

• Portable Apps on USB Stick

‣ Run tests directly from USB Stick

‣ Clone USB Stick to hard disk

• Have all your tools on the USB stick

‣ Java, JMeter, Editor, Git, ...

Montag, 15. April 13

Page 31: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Take Two (or more)

• A minimum of two share-nothing load injectors are required to prove that the production servers is causing the performance bottleneck (and not your test tool)

• We used a maximum of five share-nothing load injectors simultaneously

Montag, 15. April 13

Page 32: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

• Performance test were run mostly at night and over the weekend

• Test execution managed by Hudson

• Test failures triggers email notification

• Test protocols are copied to FTP server

Automation Is Your Friend

Montag, 15. April 13

Page 33: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Performance Tests for Everyone

• All test scenarios are configured as Hudson jobs

‣ Baseline, stress & endurance test

‣ Some other internal tests

• Everyone can start and monitor a performance test scenario over the web browser

• Even developers can run performance tests

Montag, 15. April 13

Page 34: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Montag, 15. April 13

Page 35: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

• Performance tests can be used in creative and un-planned ways

‣ Smoke test for new deployment

‣ Testing database failover

‣ Testing data center replication & failover

‣ Testing different database setups

Performance Tests as Asset

Montag, 15. April 13

Page 36: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

The few things you should take home

Montag, 15. April 13

Page 37: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Lessons Learned

Montag, 15. April 13

Page 38: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Lessons Learned

• Tests tools are buggy

Montag, 15. April 13

Page 39: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Lessons Learned

• Tests tools are buggy

• Performance tests are a valuable asset

Montag, 15. April 13

Page 40: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Lessons Learned

• Tests tools are buggy

• Performance tests are a valuable asset

• Creation and maintenance of complex performance test suite is a project on its own

Montag, 15. April 13

Page 41: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Questions & Answers

Montag, 15. April 13

Page 43: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

The Software Stack

JMeter

Cacti

JSPWiki

Hudson

WAPT Pro soapUI Pro

Git

Portable Apps

Scripting

Montag, 15. April 13

Page 44: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

The Challenge Ahead

Montag, 15. April 13

Page 45: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

The Challenge Ahead• A 100+ million EUR project

Montag, 15. April 13

Page 46: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

The Challenge Ahead• A 100+ million EUR project

‣ High complexity

Montag, 15. April 13

Page 47: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

The Challenge Ahead• A 100+ million EUR project

‣ High complexity

‣ Prohibitive contractual penalties

Montag, 15. April 13

Page 48: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

The Challenge Ahead• A 100+ million EUR project

‣ High complexity

‣ Prohibitive contractual penalties

• Multi-site Development

Montag, 15. April 13

Page 49: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

The Challenge Ahead• A 100+ million EUR project

‣ High complexity

‣ Prohibitive contractual penalties

• Multi-site Development

‣ Teams located in Austria, Sweden, Argentina and South Africa

Montag, 15. April 13

Page 50: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

The Challenge Ahead• A 100+ million EUR project

‣ High complexity

‣ Prohibitive contractual penalties

• Multi-site Development

‣ Teams located in Austria, Sweden, Argentina and South Africa

• Development & QA overloaded

Montag, 15. April 13

Page 51: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

The Challenge Ahead• A 100+ million EUR project

‣ High complexity

‣ Prohibitive contractual penalties

• Multi-site Development

‣ Teams located in Austria, Sweden, Argentina and South Africa

• Development & QA overloaded

Montag, 15. April 13

Page 52: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

The Challenge Ahead

Montag, 15. April 13

Page 53: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

The Challenge Ahead

• Performance testing on critical path

Montag, 15. April 13

Page 54: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

The Challenge Ahead

• Performance testing on critical path

• Lots of politics and finger-pointing

Montag, 15. April 13

Page 55: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

The Challenge Ahead

• Performance testing on critical path

• Lots of politics and finger-pointing

‣ “Your performance tests are broken”

Montag, 15. April 13

Page 56: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

The Challenge Ahead

• Performance testing on critical path

• Lots of politics and finger-pointing

‣ “Your performance tests are broken”

• Complex test scenarios

Montag, 15. April 13

Page 57: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

The Challenge Ahead

• Performance testing on critical path

• Lots of politics and finger-pointing

‣ “Your performance tests are broken”

• Complex test scenarios

‣ Often broken by new deployment

Montag, 15. April 13

Page 58: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

“Plans are invitation to disappointment.”

Montag, 15. April 13

Page 59: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

“Two Data Centers, altogether 300 servers, MSSQL clusters,

Oracle RACs, large SAN storage, 1.5 million registered road-users, 750 CRM users, backup data

center over dark fiber”

Montag, 15. April 13

Page 60: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Things We Did To JMeter

Montag, 15. April 13

Page 61: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Things We Did To JMeter• Three million WS requests over HTTPS

requests where the server closes the socket after each request

Montag, 15. April 13

Page 62: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Things We Did To JMeter• Three million WS requests over HTTPS

requests where the server closes the socket after each request

• Sending up to 400 SOAP requests / sec

Montag, 15. April 13

Page 63: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Things We Did To JMeter• Three million WS requests over HTTPS

requests where the server closes the socket after each request

• Sending up to 400 SOAP requests / sec

• Sending 400 KB SOAP requests

Montag, 15. April 13

Page 64: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Things We Did To JMeter• Three million WS requests over HTTPS

requests where the server closes the socket after each request

• Sending up to 400 SOAP requests / sec

• Sending 400 KB SOAP requests

‣ 70 MByte/sec over the wire

Montag, 15. April 13

Page 65: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Things We Did To JMeter• Three million WS requests over HTTPS

requests where the server closes the socket after each request

• Sending up to 400 SOAP requests / sec

• Sending 400 KB SOAP requests

‣ 70 MByte/sec over the wire

• Using up to 750 worker threads per JVM

Montag, 15. April 13

Page 66: Performance Testing of a Road Tolling Systempeople.apache.org/~sgoeschl/presentations/eurostar-2012/...Performance Testing of a Road Tolling System Oliver Baendl Siegfried Goeschl

Things We Did To JMeter• Three million WS requests over HTTPS

requests where the server closes the socket after each request

• Sending up to 400 SOAP requests / sec

• Sending 400 KB SOAP requests

‣ 70 MByte/sec over the wire

• Using up to 750 worker threads per JVM

‣ 64-bit JVM with -Xmx=2048M

Montag, 15. April 13