• No results found

Model-based Feedback for Software Performance Improvement

N/A
N/A
Protected

Academic year: 2021

Share "Model-based Feedback for Software Performance Improvement"

Copied!
27
0
0

Loading.... (view fulltext now)

Full text

(1)

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

Model-based Feedback for

Software Performance Improvement

PhD student

Catia Trubiani

[email protected]

Advisor

Vittorio Cortellessa

[email protected]

Dipartimento di Informatica

Università degli studi di L’Aquila

Progetto PRIN PaCo (Performability-aware Computing)

Roadmap

»

Motivation

»

Software Performance Analysis Process

»

Our approaches

»

Related work

(2)

3

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

Motivation

»

What to change to improve the software design?

C

2

C

1

Architectural

Model

Requirements:

responseTime = 8sec

C

2

C

1

C

2

’’

responseTime = 7sec

C

2

C

1

responseTime = 10sec

performance

analysis

C

2

C

2

’’

Software Performance Analysis Process

(annotated)

Architectural Model

Model2Model

Transformation

Performance

Model

Model Solution

Results Interpretation and

Feedback Generation

Performance

Indices

1

2

3

4

5.a

5.b

Performance

Antipatterns

5.c

6

(3)

5

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

A corresponding “Process”

Patient

Transformation

Health

Patient

Sick

Sickness

Analysis

Making Diagnosis and

Prescribing Treatment

Symptoms

1

2

3

4

5.a

5.b

6

»

Physician correspondances

-

Patient -> Model

-

Sick -> Performance

-

Indices -> Symptoms

Progetto PRIN PaCo (Performability-aware Computing)

(Performance) Antipatterns

»

W.J.Brown, R.C. Malveau, H.W. Mc Cornich III, and T.J.

Mowbray. “Antipatterns: Refactoring Software,

Architectures, and Project in Crisis”, 1998.

»

What to avoid and how to solve (performance) problems!

-

Look at negative features of a

software system:

>

The definition includes common

mistakes (i.e. “Bad practice”) in

software development as well as

their solutions

>

Conceptually similar to “Design

Patterns”: recurring solutions to

common design problems

(4)

7

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

Performance Antipatterns

Move extensive processing so that it doesn’t impede high traffic or more important work. Extensive processing in

general impedes overall response time.

Extensive

Processing

Unbalanced

Processing

To alleviate the congestion, use the Shared Resources Principle

to minimize conflicts. At a point in execution

where only one, or a few, processes may continue

to execute.

Break large filters into more stages and combine very small

ones to reduce overhead. The slowest filter in a

“pipe and filter” architecture causes the

system to have unacceptable throughput.

“Pipe and

Filter”

Architectures

Restructure software or change scheduling algorithms to enable

concurrent execution. Processing cannot make

use of available processors.

Concurrent

Processing

Systems

One-Lane Bridge

Solution

Problem

Antipattern

»

C. U. Smith and L. G.Williams. “More new software performance antipatterns: Even

more ways to shoot yourself in the foot”, 2003

Snapshot-based

Monitoring-based

Snapshot vs Monitoring

»

Snapshot: average values in a small interval of time

»

Monitoring: multiple intervals of time (i.e., a set of

several snapshots)

time

(5)

9

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

Snapshot-based example

»

Cuncurrent Processing Systems

Processing cannot make use of available processors.

Problem

Restructure software or change scheduling algorithms to enable

concurrent execution.

Solution

P

1

P

2

P

3

arrivals

Progetto PRIN PaCo (Performability-aware Computing)

Monitoring-based example

»

One-Lane Bridge

At a point in execution where only one, or a few, processes may

continue to execute.

Problem

To alleviate the congestion, use the Shared Resources Principle

to minimize conflicts.

(6)

11

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

Our Approach: Conceptual Framework

(1) Specifying

Antipatterns

(2) Detecting

Antipatterns

(3) Solving

Antipatterns

»

Main activities

V.Cortellessa, A.Di Marco, R.Eramo, A. Pierantonio, C.Trubiani

“Approaching the model-driven generation of feedback to

remove software performance flaws”, to appear in the

proceedings of Euromicro SEAA 2009.

Contributions

»

(1) Specifying Antipatterns

-

Structuring system elements

-

Formalizing antipatterns as logical predicates on these elements

-

Model-driven techniques: defining a metamodel for antipatterns

(7)

13

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

Structuring system elements

»

Problem: software developers’ world (vocabulary) is intrinsically

distant from performance analysts’ one.

»

What are the system elements needed for specifying performance

antipatterns?

Progetto PRIN PaCo (Performability-aware Computing)

Structuring system elements

»

Different system elements of antipatterns can

be organized into “Views”

C.M.Woodside. “A Three-View Model for Performance Engineering of concurrent software”, 1995.

Classes, components,

relationships among them,…

that contribute to model

static aspects

class

STATIC VIEW

component

client

supplier

operation

Interactions occurring between

classes, components,… that

contribute to model

dynamic aspects

DYNAMIC

VIEW

message

sender

receiver

Mapping classes, components, …

onto the hardware

resources to model

deployment aspects

DEPLOYMENT

VIEW

procesNode

queueLength

hwUtilization

Views overlapping!

(8)

15

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

Projection on system elements

class STATIC VIEW component client supplier operation DYNAMIC VIEW message sender receiver DEPLOYMENT VIEW procesNode queueLength hwUtilization

System

Service

Some proposals

»

Key Idea:

Neutral

structured data

»

Parametric

notations that can be instantiated

with any concrete modeling notation (e.g.

UML+Marte, SPA, Aemilia, ADLs).

»

Notation-independent

approach

-

A first proposal: XML- b

ased approach

-

A second proposal: Model- driven approach

(9)

17

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

A first proposal : XML-based

»

Neutral

structured data: an XML schema

STATIC VIEW DYNAMIC VIEW DEPLOYMENT VIEW System Service

Progetto PRIN PaCo (Performability-aware Computing)

A first proposal : XML-based

»

Static View details

(10)

19

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

Client/Supplier Paradigm

»

Flatten relations types

Parent

Child

Whole

Part

aggregation generalization

Class A

Class B

association

client

supplier

client

supplier

A first proposal : XML-based

»

Dynamic View details

(11)

21

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

A first proposal : XML-based

»

Deployment View details

Progetto PRIN PaCo (Performability-aware Computing)

Formalizing antipatterns

»

Basic Idea: a performance antipattern is a logical

predicate LP

antipatName

»

A logical predicate is built with views predicates:

StaticView predicate SP

antipatName

, DynamicView

predicate DyP

antipatName

, DeploymentView DeP

antipatName

»

Each (static, dynamic, deployment)View predicate is

built with a set of basic predicates BP

i

LP

antipatName

= SVP

antipatName

∧ DyVP

antipatName

∧ DeVP

antipatName

*VP

antipatName

= *BP

1

(∧,

) … (∧,

) *BP

n

(12)

23

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

Formalizing antipatterns

»

How to define a basic predicate BP

i

?

»

Supporting elements

-

Auxiliary Functions F

func

-

Thresholds Th

threshold

>

System monitoring

>

Heuristic evaluations

Formalizing “Blob”antipattern

»

An example: how to formalize the performance

antipattern “Blob”

Occurs when a single class or

component either 1) performs all

of the work of an application or

2) holds all of the applications

data. Either manifestation

results in excessive message

traffic that can degrade

performance.

Blob

Problem

Antipattern

(13)

25

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

Formalizing “Blob”antipattern

»

“Occurs when a single class or component (i.e. a software

entity) either 1) performs all of the work of an application

or 2) holds all of the applications data”

-

SBP

1

:∧E |

class STATIC VIEW component client supplier operation DYNAMIC VIEW message sender receiver DEPLOYMENT VIEW procesNode queueLength hwUtilization

Class A

Class B

Class X

Class Y

F

numConnects

(E) ≥ Th

connect

auxiliary function

threshold

SVP

blob

Ξ SBP

1

Progetto PRIN PaCo (Performability-aware Computing)

Formalizing “Blob”antipattern

»

Either manifestation results in excessive message traffic

that can degrade performance.

-

DyBP

1

:

class STATIC VIEW component client supplier operation DYNAMIC VIEW message sender receiver DEPLOYMENT VIEW procesNode queueLength hwUtilization

Class A

Class B

Class X

Class Y

F

numMsgs

(E) ≥ Th

msgs

auxiliary function

threshold

DyVP

blob

Ξ DyBP

1

(14)

27

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

Formalizing “Blob”antipattern

»

Either manifestation results in excessive message traffic

that can degrade performance.

-

DeBP

1

:

-

DeBP

2

:

class STATIC VIEW component client supplier operation DYNAMIC VIEW message sender receiver DEPLOYMENT VIEW procesNode netUtilization hwUtilization

F

maxHwUtil

(P

E

) ≥ Th

hwUtil

F

maxNetUtil

(P

E

) ≥ Th

netUtil

DeVP

blob

Ξ DeBP

1

DeBP

2

Class A

Class B Class X Class Y …

option

1

Class A

Class B Class X Class Y …

option

2

Formalizing “Blob” antipattern

»

Blob problem formalization

∧E |

F

(E) ≥ Th

∧ F

(E) ≥ Th

LP

blob

= SVP

blob

∧ DyVP

blob

∧ DeVP

blob

SVP

blob

Ξ SBP

1

DyVP

blob

Ξ DyBP

1

DeVP

blob

Ξ DeBP

1

DeBP

2

(15)

29

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

A second proposal : Model-driven

»

Defining a metamodel for antipatterns

-

APML -> AntiPattern Modeling Language

>

SML -> Software Modeling Language

>

SML+ -> An enrichment of SML

>

RML -> Refactoring Modeling Language

APML

SML

SML+

RML

<<refine>> <<use>>

Progetto PRIN PaCo (Performability-aware Computing)

Metamodel for antipatterns

»

An excerpt of APML

(16)

31

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

Metamodel for antipatterns

»

Software Modeling Language SML+

Static View

Dynamic View

Deployment View

Metamodel for antipatterns

»

Static View of SML+

(17)

33

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

Metamodel for antipatterns

»

Dynamic View of SML+

Progetto PRIN PaCo (Performability-aware Computing)

Metamodel for antipatterns

»

Deployment View of SML+

(18)

35

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

Modeling with APML

»

An example: how to model the performance

antipattern “Blob”

:AntipatternSpecification name= “Blob” :StaticView :DynamicView :DeploymentView :AntipatternSubview :AntipatternSubview :AntipatternSubview :AntipatternSubview swEX: SoftwareEntity swEy: SoftwareEntity Px: ProcesNode Py: ProcesNode Pz: ProcesNode :BooleanRestriction type= “or” :Message sender= swEx receiver= swEy

swResources= swEx, swEy

maxUtil = realTypeHwRes swResources= swEx swResources= swEy maxBWused = realTypeBWused numConnects= intTypeNumCons numMsgs= intTypeNumMsgs intTypeNumMsgs : intType operator= max_equal value= “$th_msgs”

Our metamodel in concrete notations

»

Weaving Models to drive correspondences

between our SML+ and a concrete modeling

notation (e.g. UML + Marte).

Weaving

Model

UML +

(19)

37

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

Antipatterns in concrete notations

»

High-order Transformations to drive

correspondences between the antipattern model

in our SML+ and a concrete modeling notation

(e.g. UML + Marte).

APML

SML+

AP

SML+

APML

UML + MARTE

AP

UML + MARTE

c2

c2

T[WM(SML+,

UML+MARTE)]

Progetto PRIN PaCo (Performability-aware Computing)

Contributions

»

(2) Detecting Antipatterns

-

Most promising antipatterns

-

Model- driven techniques: translating the occurrence of

antipatterns with OCL expressions

(20)

39

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

Most promising antipatterns

Software

System Model

(annotated) Software

System Model

Requirements

Antipatterns

predicates

Complete

Antipatterns

List

Violated

Requirements

Filtered

Antipatterns

List

Ranked

Antipatterns

List

New

Software

System Model

Random

Moves

Existing

Alternatives

Detection activities

Which ones and in what order?

PA

1

R

j

R

1

Violated

Requirements

Performance

Antipatterns

»

How much a Performance Antipattern PA

i

is

important for the Violated Requirement Rj?

(21)

41

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

A first proposal : XML-based

»

Java Engine for XML parsing

import org.w3c.dom.*;

...

Document doc = newDocumentBuilder().parse(new

File(“swSystem.xml”));

NodeList listOfProcesNodes =

doc.getElementsByTagName(“procesNode”);

System.out.println(“Total number of processors: ”

+ listOfProcesNodes.getLength());

...

Loading XML file

Creating a list of

processing nodes

Printing the number of

processing nodes

Progetto PRIN PaCo (Performability-aware Computing)

A second proposal : Model-driven

»

Translating the occurrence of

antipatterns with OCL expressions.

(22)

43

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

Contributions

»

(3) Solving Antipatterns

-

Deciding which antipatterns to solve and in what order

-

Planning a simultaneous combination of antipatterns solutions

-

Model-driven techniques: solving antipatterns with difference

models

Analysing some problems

»

Requirement problems

-

Functional requirement

>

Legacy components cannot be split or re-deployed

-

Non- Functional requirement

>

Budget limitations

»

Coherency problems

-

Incoherences among antipattern solutions

(23)

45

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

Discussion

»

Further issues

-

What happens if antipatterns cannot be solved due to

(functional/non- functional) requirements?

-

What happens if feedback cannot be applied due to

incoherences between antipattern solutions?

-

Which is the sequential order of antipatterns rules and

how to better drive the refactoring?

-

An antipattern solution is able to introduce an other

antipattern?

Progetto PRIN PaCo (Performability-aware Computing)

Simultaneous solutions

Software

System Model

Ranked

Antipatterns

List

Candidate

Moves List

New Candidate

Software

System Model

Acquired

Knowledge

New

Software

System Model

Observed values

on New Candidate

[1] proceed with the next move [2] learning

[3] choose the best candidate up to now

S

0

S

1

S

n

{PA

1

, …, PA

x

}

{PA

2

, …, PA

y

}

“Move”: application of a simultaneous

set of antipattern solutions

(24)

47

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

A first proposal : XML-based

»

Basic Idea: solving a performance antipattern by the

negation of the logical predicate ¬LP

antipatName

»

The negative logical predicate is built with the

negation of the views predicates

»

Each (static, dynamic, deployment)View predicate

has to be negated

¬

LP

antipatName

=

¬

SVP

antipatName

¬

DyVP

antipatName

¬

DeVP

antipatName

¬

*VP

antipatName

=

¬

(*BP

1

(∧,

) … (∧,

) *BP

n

)

A first proposal : XML-based

LP

blob

= SVP

blob

∧ DyVP

blob

∧ DeVP

blob

SVP

blob

Ξ SBP

1

DyVP

blob

Ξ DyBP

1

DeVP

blob

Ξ DeBP

1

DeBP

2

»

An example: “Blob” problem formalization

(25)

49

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

A first proposal : XML-based

»

An example: “Blob” solution formalization

E |

F

numConnects

(E) < Th

connect

F

numMsgs

(E) < Th

msgs

( F

maxHwUtil

(P

E

) < Th

hwUtil

∧ F

maxNetUtil

(P

E

) < Th

netUtil

)

¬LP

blob

=

¬

(SVP

blob

∧ DyVP

blob

∧ DeVP

blob

)

¬SVP

blob

Ξ ¬SBP

1

¬DyVP

blob

Ξ ¬DyBP

1

¬DeVP

blob

Ξ ¬DeBP

1

¬DeBP

2

Progetto PRIN PaCo (Performability-aware Computing)

A second proposal : Model-driven

»

Solving antipatterns with difference

models.

Architectural

Model

Solution

1

Solution

2

Solution

m

(26)

51

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

Related Work

»

V.Cortellessa, L.Frittella, “A framework for automated generation

of feedback from software performance analysis”, 2007.

-

Informal interpretation matrices from the analysis of Layered

Queueing Networks (LQNs)

»

T.Parsons, J.Murphy, “Detecting Performance Antipatterns in

component-based enterprise systems”, 2008.

-

Performance antipattern detection (PAD) tool for Enterprise Java

Bean (EJB) applications

»

J.Xu, “Rule-based automatic software performance diagnosis and

improvement”, 2008.

-

Analysis of LQNs performance model for bottlenecks and long paths

Ongoing work

»

Validate the scope of the whole approach across

languagues, to assess the indipendence of any

concrete notation.

APML

specification

detection

UML+Marte

Stochastic

Process

Algebras

(27)

53

Progetto PRIN PaCo (Performability-aware Computing)

Lucca, 25-26 giugno 2009

Future work

»

Real case studies to study the usability and the

References

Related documents

sequences of the human microbiome project using an established approach [19]. We applied a combination of unsupervised machine-learning and computational mod- eling techniques to

11,15,61 Most studies comparing behavioral therapies with standard medical care, placebo, or other treatment approaches have demonstrated improvement in single IBS symptoms but not

Habit No. There were 60 patients with the history of tobacco consumption in the form of cigarette, bidi and hukka. In 5patients no history of any addiction

Lord Jesus Christ, our God, accept our offerings as You have accepted the gifts of Your people throughout the ages.. We offer these gifts to Your glory, for the support of

___EFFECTIVE Faculty member usually has technical knowledge of most commonly used bibliographic/research instructional t ools, computer and other resources, teaching

Because relevant national data were not available, and given the resource intensiveness of a bottom-up approach 26 , the present study focused on applying a largely

Since the new market was unsaturated, the Boston Beer Company was able to earn an inexpensive reputation for its Samuel Adams brand name by being the first large scale mover into the

These are how to understand the relationships between the different elements of the food systems – their technological, economic, cultural, and political components – in order