39
Slide 1 An Active Approach to Characterizing Dynamic Dependencies for Problem Determination Aaron Brown Computer Science Division University of California at Berkeley Gautam Kar, Alexander Keller IBM T.J. Watson Research Center IM 2001, 16 May 2001

PPT

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: PPT

Slide 1

An Active Approach to Characterizing Dynamic

Dependencies for Problem Determination

Aaron BrownComputer Science Division

University of California at Berkeley

Gautam Kar, Alexander KellerIBM T.J. Watson Research Center

IM 2001, 16 May 2001

Page 2: PPT

Slide 2

Motivation: problem diagnosis• Troubleshooting problems is one of the

most challenging, time-consuming management tasks– symptoms are typically at end-user or SLA level– root causes are typically much deeper in system

» and often confounded by system complexity

– must map symptoms to root causes to locate problems!

• Dependency models provide an invaluable aid to root-cause analysis– capture connections between high- and low-level

system components

today’s approaches are ad-hoc. explicitly define root-cause analysis!today’s approaches are ad-hoc. explicitly define root-cause analysis!

Page 3: PPT

Slide 3

Dependency models in a nutshell

• Use a graph (DAG) structure to capture dependencies between system components– if failure of A affects B, then B depends on A– edge weights represent dependency strengths

Web Application Service

Web Service

Name Service IP Service

DB Service

OS

Customer e-commerce application

w1

w2 w3

w4 w5 w6

w8w7

This is a very coarse-grained model!This is a very coarse-grained model!

Page 4: PPT

Slide 4

Constructing dependency models

• For effective diagnosis, model must capture:– static dependencies– dynamic runtime dependencies

» e.g., dependencies induced by runtime queries

– distributed dependencies– dependency strengths– all at the detailed level of individual system

resources

• Most existing techniques don’t meet these challenges...

Page 5: PPT

Slide 5

Outline• Motivation & background

• ADD: Active Dependency Discovery

• Experimental validation of ADD

• Conclusions and future directions

Page 6: PPT

Slide 6

Discovering dependencies• Desired properties of approach

– identifies dynamic, runtime dependencies – works on distributed systems– works with only black-box view of system

components– provides direct evidence of causality– detects dependencies only visible in failure

situations

• These properties inspire an indirect, active approach– indirect: no explicit modeling of system– active: perturb system to elucidate dependencies

Page 7: PPT

Slide 7

Active Dependency Discovery (ADD)

2) Systematically perturb components

4) Construct dependency model from measurement data

3) Measure change in system response

1) Instrument the system and apply workload

Web1

DBMS1

DBMS2

App1

App2

App3

Workload

Page 8: PPT

Slide 8

Benefits of ADD• Coverage

– no need to rely on problems occurring naturally, as in passive approaches

– can guarantee coverage by explicitly controlling perturbation

• Causality– causality easy to establish: perturbation is the cause

• Simplicity– no application modeling or modification necessary– existing endpoint instrumentation may be sufficient– no complex data mining required– applied before real problems occur

Page 9: PPT

Slide 9

Drawbacks of ADD• Invasiveness

– can be tricky to do perturbation on production system

– possible solutions:» leverage redundancy if available (e.g., cluster

system)» run perturbation during non-production periods

(initial system setup or during scheduled downtime)» develop low-grade perturbation techniques

• Workload-specific– extracted models only valid for applied workload– but, can model components of workload and

recombine later

Page 10: PPT

Slide 10

Outline• Motivation & background

• ADD: Active Dependency Discovery

• Experimental validation of ADD– approach– TPC-W testbed environment– results

• Conclusions and future directions

Page 11: PPT

Slide 11

Validation: e-commerce case study

• Goal: use ADD to discover dependencies in a multi-tier e-commerce environment– using off-the-shelf black-box software– in a realistic environment with realistic workload

• Task: discover dependencies of user web requests on database tables– for each type of user request:

» extract dependencies on individual database tables» characterize strengths of those dependencies» hand-verify model against application source code

• Platform: TPC-W benchmark app & workload– realistic mockup of online bookseller e-commerce site

explain why useful (eg tables map to disks, detect perf bottlenecks/ reorgs/indices

explain why useful (eg tables map to disks, detect perf bottlenecks/ reorgs/indices

USING NO KNOWLEDGE ABOUT REQ/TABLE MAPPINGUSING NO KNOWLEDGE ABOUT REQ/TABLE MAPPING

Page 12: PPT

Slide 12

TPC-W experimental testbed

Web ClientUWisc TPC-W RBE

Web ServerMicrosoft IIS 5.0

App. ServerApache Jakarta/Tomcat 3.1

w/UWisc TPC-W servlets

DatabaseIBM DB2 7.1 Enterprise DB

content

staticcontent

AJP

JDBC

HTTP

System View

mach

ine1

mach

ine2

mach

ine3

Dependency View

User Requeststype1 type2 type14. . .

Database Tables

tbl1 tbl2 tbl10. . .

w1

w2w3

Page 13: PPT

Slide 13

Perturbation and measurement

• Perturbation applied to individual DB tables– use DB2’s lock manager to exclusive-lock a table– configurable “duty cycle” of lock out

» queries locked out for first x% of every 4 sec. interval

– only affects one table; no impact on overall load– can simultaneously perturb multiple tables

• Per-request response time measured by TPC-W front-end user emulator– 14 different types/classes of requests– response time is end-to-end, including network delay

Page 14: PPT

Slide 14

Raw perturbation results• Ex: Search request, ITEM table perturbed

Resp

on

se t

ime (

ms)

Perturbation level, time0% 25% 50% 75% 99%

Page 15: PPT

Slide 15

Raw perturbation results (2)• Ex: Search request, CC_XACTS table perturbed

Resp

on

se t

ime (

ms)

Perturbation level, time0% 25% 50% 75% 99%

data overload from these graphs. Treat statistically by taking the log to normalize the data, then take the mean to get one data point per perturbation level. Then can analyze in regression framework to extract dependency strengths

data overload from these graphs. Treat statistically by taking the log to normalize the data, then take the mean to get one data point per perturbation level. Then can analyze in regression framework to extract dependency strengths

Page 16: PPT

Slide 16

Applying a linear model• Linear regression on mean of log of data

– statistically positive slope gives dependency strength

BuyRequest transaction

R2 = 0.983

Page 17: PPT

Slide 17

Summary of results• Modeling correctly identified 41 of 42

true dependencies at 95% confidence level – compare to 140 potential dependencies (!)– one false negative most likely due to insufficient

data– caveat: some glitches due to unmodeled

interactions» manifested as small negative dependency

strengths» solution: improve model or simply discard negative

strengthsNow let’s take a look at the entire set of dependencies for our TPC-W case study. In this next slide, I’ve presented the dependencies in a tabular format [explain; is equiv to graph]. Looking at the dependencies this way suggests how such a representation could be useful for our original goal of problem determination

Now let’s take a look at the entire set of dependencies for our TPC-W case study. In this next slide, I’ve presented the dependencies in a tabular format [explain; is equiv to graph]. Looking at the dependencies this way suggests how such a representation could be useful for our original goal of problem determination

Page 18: PPT

Slide 18

Summary of results (2)• Tabular representation of full dependency set:

adm

cnf

adm

req

bestsell

buyconf

buyreq

custreg

home

newprod

ordrd

isp

orderinq

proddet

srchreq

srchres

shopcart

ADDRESS X X X

AUTHOR X X X X X X

CC_XACTS X X

COUNTRY X X X

CUSTOMER X X X X

I TEM X X X X X X X X X X X X

ORDER_LI NE - X X X

ORDERS X X X X

SHOP_CART X

SHOP_CART_L X X X

Strengths: X = (0,1] X = (1,2] X = (2,3] X = (3,4]

Table

Request

SCL = BUYCNF-ORDRDISPSCL = BUYCNF-ORDRDISP Now, getting back to our original goal of problem diagnosis...Now, getting back to our original goal of problem diagnosis...

Page 19: PPT

Slide 19

Using dependencies for diagnosis

• When a problem occurs:1) identify faulty request

» from problem report, SLA violation, test requests, ...

2) select the appropriate column in dependency table

3) select the rows representing dependencies» this is the set of potential root causes

4) investigate potential root causes, starting with

those of highest weight

Page 20: PPT

Slide 20

Using dependencies for diagnosis (2)

• Can extend approach to multiple system levels– compute one dependency matrix per level– iterate levels from user symptoms to culprit resource

• This process may not uniquely identify problem– but can narrow down the culprits via combinations

» isolating the effects of individual tables» e.g., SHOP_CART_L “=” orderdisp - buyconf

– not all tables can be uniquely isolated» but could do so by adding synthetic test requests?» ideal is to build a basis for the whole-system dependency

matrix

Page 21: PPT

Slide 21

Outline• Motivation & background

• ADD: Active Dependency Discovery

• Experimental validation of ADD

• Conclusions and future directions

Page 22: PPT

Slide 22

Conclusions and future directions

• Dependency models help problem determination

• ADD effectively discovers dependency models– approach is uniquely positioned in the design space

» active, indirect approach finds dynamic, distributed dependencies; works on black-box systems

– initial experimental results are promising» very good success on TPC-W experiments

• Future directions– techniques to integrate ADD into production systems– investigation of end-to-end vs. layer-by-layer tradeoffs– using dependency models for other management tasks

» impact analysis, performance optimization, ...

Page 23: PPT

Slide 23

An Active Approach to Characterizing Dynamic

Dependencies for Problem Determination

For more information:

[email protected]{gkar,alexk}@us.ibm.com

http://www.research.ibm.com/sysman

Page 24: PPT

Slide 24

End

Page 25: PPT

Slide 25

Backup slides

Page 26: PPT

Slide 26

Dependencies & root-cause analysis

• There are good algorithms for root-cause analysis using dependency data– event correlation [Yemini96, Choi99,

Gruschke98, ...]– systematic probing via graph-traversal [Kätker95]

• But...they assume dependencies are identified manually!– impractical in modern systems at any interesting

level of detail– need automatic discovery of fine-grained

dependency models to solve practical problems

Page 27: PPT

Slide 27

A motivating example...• E-commerce system with cluster database

This level of detail is called a “structural” model

IBM WebSphere 3.02

Apache 1.3.4

DNS

IPv4

AIX

IBM DB2 EEEIBM DB2 EEE

IBM DB2 EEE

AIXAIX

AIXAIX

AIX

IBM DB2 EEEIBM DB2 EEE

My Web Application

Page 28: PPT

Slide 28

What’s really needed?• Dynamic, operational dependency graphs

– based on runtime behavior, not static analysis– computed for each type of user transaction/action

» each transaction’s graph is a subgraph of the overall system dependency graph

– dependencies weighted by “strength” and parameterized by workload

IBM WebSphere +myWebStorefront

IBM DB2 EEE cluster

ORDERS

SHOP_CART

CUSTOMER

...node1

node2

nodeN

...

1.9

2.43.3

2.7

Order InquiryTransaction

3.7

1.4

...

Page 29: PPT

Slide 29

How is this useful?• Helps restrict search space for root cause

of a problem– presence/absence of operational dependencies tells

you where you must look– dependency strengths may optimize search– in most cases, cannot completely identify root cause

• Aids in system optimization– dependency strengths reflect balance of system

• Supports “impact analysis”– strength of dependency is a direct measure of

failure impact of a particular component

Page 30: PPT

Slide 30

Dependency discovery: approaches

• Direct– relies on human to analytically compute

dependencies» from app-specific knowledge, configuration files, ...

– impractical for realistic systems

• Indirect– based on instrumentation and monitoring– correlates observed failures/degradations across

components– typically passive

» no perturbation to system beyond instrumentation

– examples: data mining, event correlation, neural-net dependency discovery, MPP bottleneck detection

Page 31: PPT

Slide 31

Challenges of an indirect approach

1) Causality– most indirect approaches identify only correlation

2) Coverage– passive approaches only find dependencies that

are activated while the system is monitored – can miss important dependencies that only appear

in rare failure modes» but these are often the most important

dependencies!

• Solution: an active indirect approach– directly perturb the system, establishing causality

and increasing coverage

Page 32: PPT

Slide 32

Testbed web application• TPC-W web commerce application

– standardized TPC benchmark– simulates activities of a “business-oriented

transactional web server”– implements storefront of an Internet book seller– includes user sessions, shopping carts, browsing,

search, online ordering, “best sellers”, ...– includes workload specification and generator

» fully parameterized» standard mixes to simulate users that are mostly-

browsing, mostly-ordering, or shopping (mix)

– implementation in Java from University of Wisconsin

Page 33: PPT

Slide 33

Dependency view: TPC-W testbed

TPC-W RBE

Apache Jakarta/Tomcat 3.1

IBM JVM 1.1.8

Client

Microsoft IIS 5.0

m2Win2000

m1AIX 4.3.3

m3AIX 4.3.3

DB2 7.1

TPC-W-UWjava

Page 34: PPT

Slide 34

Experiment details• Workload

– 90 simulated users– TPC-W standard “shopping” mix– an average of 11.8 unperturbed transactions/sec– servers not saturated by this workload

• Perturbation– only one table perturbed at a time– 0%, 25%, 50%, 75%, 99% levels for each table– 30 minutes of perturbation at each level

Page 35: PPT

Slide 35

Limitations of the test case• Constant workload

– can’t parameterize dependencies by workload

• Independent table perturbation– can’t include interaction terms in model

• End-to-end performance metric– OK here since we’re only looking at one level of

system– assumes perturbations don’t have additional

effects beyond the database– if the dependency is not manifested in

performance, it won’t be detected

• None of these limitations are inherent

Page 36: PPT

Slide 36

Modeling details• Simple first-order linear model:

– assumes constant effects, independence, and linearity of perturbation (under transform of m)

– let mi be some metric for transaction type i

– let i be the mean non-perturbed value of mi

– let Pj be the level of perturbation of system element j– then:

ri = i + j (j Pj) +

– the j‘s are fit to the data, and represent the effects of perturbation of the components j

» j characterizes the strength of mi’s dependency on j

comment that may need more complex models w/interaction terms, nonlinearities but surprisinglythe simple linear model is enough to capture many major effects, as will be seen

comment that may need more complex models w/interaction terms, nonlinearities but surprisinglythe simple linear model is enough to capture many major effects, as will be seen

Page 37: PPT

Slide 37

Model details• Fit a first-order linear model:

ri = i + j (j Pj) +

• Estimated effects (j) for buy request txn:ITEM: 3.31 .26 SHOP_CART: 0.06 .26

ADDRESS: 2.49 .26 CC_XACTS: 0.06 .26

CUSTOMER: 2.41 .26 AUTHOR: 0.03 .26

SHOP_CART_LINE: 2.35 .26 ORDER_LINE: 0.003 .26

COUNTRY: 1.98 .26 ORDER: - 0.02 .26

• Despite simplicity, models fit well– R2 ranges from .906 to .996, with mean .973– there are clearly higher-order effects present

» especially noticeable in significant negative effects» but first-order effects dominate

MAYBE CUT THIS SLIDE!MAYBE CUT THIS SLIDE!

Page 38: PPT

Slide 38

Existing approaches• Most popular approaches are passive

– event collection and data mining– neural-network-based dependency discovery– performance bottleneck detection in parallel programs– network fault detection– nuclear power plant problem diagnosis

• Passive approaches have two main weaknesses: – hard to differentiate correlation and causation– hard to get coverage of all problem/failure cases

• Active approaches limited to postmortems

Page 39: PPT

Slide 39Perturbation level

0.00 0.25 0.50 0.75 0.99

Me

an

lo

g r

es

po

ns

e t

ime

7

8

9

10

11

ORDERSHOPPING_CART_LINECC_XACTSAUTHOR

A less-linear result• Not nearly as linear, but linear model still sufficient• Example data: order confirmation transaction