24
Continuous Validation of Load Test Suites Mark D. Syer, Zhen Ming Jiang, Meiyappan Nagappan, Ahmed E. Hassan, Mohamed Nasser and Parminder Flora [email protected] 1

Continuous validation of load test suites

  • Upload
    sailqu

  • View
    10

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Continuous validation of load test suites

Continuous Validation of Load Test Suites

Mark D. Syer, Zhen Ming Jiang, Meiyappan Nagappan, Ahmed E. Hassan, Mohamed Nasser and Parminder Flora

[email protected]

1

Page 2: Continuous validation of load test suites

2

Page 3: Continuous validation of load test suites

Failures in ULS systems are typically due to performance issues

3

Page 4: Continuous validation of load test suites

Load testing may detect 

failures before they occur in the field

4

Page 5: Continuous validation of load test suites

0

200

400

600

800

1000

1200

2005 2006 2007 2008 2009 2010 2011 2012

User Growth Over the Years (in millions)

Facebook Twitter LinkedIn WordPress Tumblr Google+ Pinterest

Field workloads change continuously

13.5M Mobile Users56M Mobile Users

New HTML5 App

Page 6: Continuous validation of load test suites

Performance analysts can compare field and load test 

workloads using execution logs

6

Page 7: Continuous validation of load test suites

Comparing workloadsis difficult

7

Huge amount of data

Rapidly evolving systems

Page 8: Continuous validation of load test suites

Workloads are made of hundreds or thousands of individual workers

Page 9: Continuous validation of load test suites

GenerateSignatures

DetectOutliers

InspectOutliers

Our approach identifies events that differ between load testing 

and field workloads

9

Test logs

Field logs

Page 10: Continuous validation of load test suites

10

We generate a signature for each unique worker ID

Page 11: Continuous validation of load test suites

Identify unique user IDs 

00:01, Alice starts a conversation with Bob00:01, Alice says `hi' to Bob00:02, Alice says `are you busy?' to Bob00:11, Bob says `yes' to Alice00:12, Alice says `ok' to Bob00:18, Alice ends a conversation with Bob

11

Page 12: Continuous validation of load test suites

Identify the logs attributable to each unique user ID 

00:01, Alice starts a conversation with Bob00:01, Alice says `hi' to Bob00:02, Alice says `are you busy?' to Bob00:11, Bob says `yes' to Alice00:12, Alice says `ok' to Bob00:18, Alice ends a conversation with Bob

12

Page 13: Continuous validation of load test suites

Abstract log lines to events

00:01, Alice starts a conversation with Bob00:01, Alice says `hi' to Bob00:02, Alice says `are you busy?' to Bob00:12, Alice says `ok' to Bob00:18, Alice ends a conversation with Bob00:11, Bob says `yes' to Alice

13

Page 14: Continuous validation of load test suites

Count the events for each use ID

Alice BobUSER starts a conversation with USER  1 0USER says MSG to USER  3 1USER ends a conversation with USER 1 0

14

Page 15: Continuous validation of load test suites

DetectOutliers

InspectOutliers

We identify and inspect outlying signatures

15

Page 16: Continuous validation of load test suites

16

Page 17: Continuous validation of load test suites

Can we detect...

17

Issue difference?

Intensity and      feature differences?

Intensity difference?

Page 18: Continuous validation of load test suites

Our Approach

18

State‐of‐the‐Practice

Page 19: Continuous validation of load test suites

19

State‐of‐the‐practice is to compare event occurrence frequencies

Test logs

Field logsEvent Test FieldA 10/s 11/sB 5/s 7/sC 1/s 100/s

Page 20: Continuous validation of load test suites

20

A datanodefails in the field

Hadoop distributes a workload across the nodes of a computing cluster

Page 21: Continuous validation of load test suites

INFO org.apache.hadoop.hdfs.DFSClient: Abandoning block blk_id

INFO org.apache.hadoop.hdfs.DFSClient: Exception in createBlockOutputStreamjava.io.IOException: Bad connect ackwith firstBadLink ip_address

WARN org.apache.hadoop.hdfs.DFSClient: Error Recovery for block blk_id bad datanode_id ip_address

INFO org.apache.hadoop.mapred.TaskTracker: attempt_id progress

INFO org.apache.hadoop.hdfs.DFSClient: Abandoning block blk_id

INFO org.apache.hadoop.hdfs.DFSClient: Exception in createBlockOutputStreamjava.io.IOException: Bad connect ackwith firstBadLink ip_address

WARN org.apache.hadoop.hdfs.DFSClient: Error Recovery for block blk_id bad datanode_id ip_address

INFO org.apache.hadoop.mapred.TaskTracker: attempt_id progress

21

INFO org.apache.hadoop.hdfs.DFSClient: Abandoning block blk_id

INFO org.apache.hadoop.hdfs.DFSClient: Exception in createBlockOutputStreamjava.io.IOException: Bad connect ackwith firstBadLink ip_address

WARN org.apache.hadoop.hdfs.DFSClient: Error Recovery for block blk_id bad datanode_id ip_address

INFO org.apache.hadoop.mapred.TaskTracker: attempt_id progress

Page 22: Continuous validation of load test suites

Our approach flags eventswith high precision

0

20

40

60

80

100

Issue Feature and Intensity Intensity

Precision

Our Approach State‐of‐the‐Practice22

Page 23: Continuous validation of load test suites

Our Approach

23

State‐of‐the‐Practice

88% 44%

Page 24: Continuous validation of load test suites

24