andrea camesi, jarle hulaas firstname.lastname@epfl.ch software engineering laboratory swiss federal...

Post on 20-Dec-2015

217 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Andrea Camesi, Jarle Hulaas Firstname.Lastname@epfl.chSoftware Engineering LaboratorySwiss Federal Institute of Technology in Lausanne (EPFL)Switzerland

Joint work with Walter Binder

Advances in Portable Resource Management

0

7/0

7/2

005

2© Andrea Camesi and Jarle Hulaas

Plan

CPU Load Prediction

Approach of CPU Load

Measurements

Future research directions

Graphical Monitoring tool

Layer structure

Monitoring CPU consumption

Portable Resource Management

Resource Awareness

Heterogeneous Distributed System

Programming models

Our General Approach with J-RAF2

0

7/0

7/2

005

3© Andrea Camesi and Jarle Hulaas

Portable Resource Management

Physical resources

CPU, Memory, Network bandwidth, Battery power

What is Resource Management ?

Logical / conceptual resources

Threads, Sockets, etc.

Resource Management ViewsFrom outside (e.g. by the middleware)

Accounting (non-intrusive monitoring) of consumption

Controlling (possibly limiting) the consumption

From inside

Adaptive Resource-Aware applications

Units of Measurement

Bytecode instructions(CPU), Byte(Memory, Network bandwidth,..)

0

7/0

7/2

005

4© Andrea Camesi and Jarle Hulaas

Portable Resource Management

What is it good for ?Software development

Monitoring and profiling of Distributed Applications

Benefits of Resource Management

Quality of Service

Billing for resource consumption

Provisioning, load balancing

Security with respect to Mobile Code

Detecting/terminating Denial-of-Service attacks

0

7/0

7/2

005

5© Andrea Camesi and Jarle Hulaas

Portable Resource Management

What is it good for ?

Benefits of Resource Management

Reliability and Flexibility

Adapt behavior (algorithm) in front of resource saturation

especially in Embedded Devices, Resource-Awareness

Reliability

Accountability (liability) for resource consumption

interrupt a component and reclaim all its resources

0

7/0

7/2

005

6© Andrea Camesi and Jarle Hulaas

Plan

CPU Load Prediction

Approach of CPU Load

Measurements

Future research directions

Graphical Monitoring tool

Layer structure

Monitoring CPU consumption

Resource Awareness

Heterogeneous Distributed System

Programming models

Our General Approach with J-RAF2

Portable Resource Management

Resource AwarenessHeterogeneous Distributed System

0

7/0

7/2

005

7© Andrea Camesi and Jarle Hulaas

Resource Awareness

Heterogeneous Distributed System

No programming model for Resource-Awareness

No available platform (java or other) to support Resource-AwarenessNeed portability

Why portable ?

Devise methods that are portable even across platforms/languages

.Net, Resilient (?)

Explore potential of portable Resource-Awareness strategies, portable units of measurement

0

7/0

7/2

005

8© Andrea Camesi and Jarle Hulaas

Plan

CPU Load Prediction

Approach of CPU Load

Measurements

Future research directions

Graphical Monitoring tool

Layer structure

Monitoring CPU consumption

Resource Awareness

Heterogeneous Distributed System

Programming models

Our General Approach with J-RAF2

Portable Resource Management

Resource AwarenessHeterogeneous Distributed System

Programming models

0

7/0

7/2

005

9© Andrea Camesi and Jarle Hulaas

Resource Awareness

Programming modelsTraditional Java thread-based

Event-based (lower level)

Programmer must provide fine grained applications

Reactive model

0

7/0

7/2

005

10© Andrea Camesi and Jarle Hulaas

Per-thread andper-component

accounting objectsNet Mem CPUCPUCPU CPU

Resource-reified Multi-threaded Component

(‘has a’ relation) invokes

invokes

Resource Awareness

callbacks

Mem CPU

Per-domainextensible

management objects

Net domain Memory domain CPU domain

Programming models

0

7/0

7/2

005

11© Andrea Camesi and Jarle Hulaas

Plan

CPU Load Prediction

Approach of CPU Load

Measurements

Future research directions

Graphical Monitoring tool

Layer structure

Monitoring CPU consumption

Resource Awareness

Heterogeneous Distributed System

Programming models

Our General Approach with J-RAF2

Portable Resource Management

Resource AwarenessHeterogeneous Distributed System

Programming models

Our General Approach with J-RAF2

0

7/0

7/2

005

12© Andrea Camesi and Jarle Hulaas

J-RAF2

Our solution: portable resource management through bytecode rewriting schemes

Our General Approach with J-RAF2

The Java Resource Accounting Framework, 2nd edition

www. .org+ =

As easy to deploy as any Java application

across all kinds of devices

If the overhead is reasonable,

why not favor a portable approach ?

0

7/0

7/2

005

13© Andrea Camesi and Jarle Hulaas

J-RAF2

Execute

OriginalJava Application

(compiled)

Rewritebytecode

Transformed, Resource-reified

Version of Application

Per-thread or per-component

accounting objects

Net CPUMem

Meta-level

Execution hooks

Our General Approach with J-RAF2

0

7/0

7/2

005

14© Andrea Camesi and Jarle Hulaas

Graphical Monitoring tool

Layer structure

Monitoring CPU consumption

Plan

CPU Load Prediction

Approach of CPU Load

Measurements

Future research directions

Resource Awareness

Heterogeneous Distributed System

Programming models

Our General Approach with J-RAF2

Portable Resource Management

Resource AwarenessHeterogeneous Distributed System

Programming models

Our General Approach with J-RAF2

Graphical Monitoring tool

Layer structure

Monitoring CPU consumption

0

7/0

7/2

005

15© Andrea Camesi and Jarle Hulaas

Graphical Monitoring tool

What is Graphical Monitoring ?

Benefits of Graphical Monitoring

Visualize the behavior of a server application

Internet applications

Quality of Service, Security, Reliability

Enforce limits, reduce threads priority

High-level layer code

User-defined: Accounting, Control and Profiling applications

0

7/0

7/2

005

16© Andrea Camesi and Jarle Hulaas

Graphical Monitoring tool

VM Native Code (unmanaged)

(partly unmanaged native code)

Bytecode rewriting engine

CPU-manageable runtime

Adaptable CPU management libraries

Sample CPU-monitoring policy

Layer structure

0

7/0

7/2

005

17© Andrea Camesi and Jarle Hulaas

Graphical Monitoring tool

Monitoring the

Java 2D Demo

application:

- Standalone

- Applet Viewer

- Netscape browser

- Tomcat Servlet

0

7/0

7/2

005

18© Andrea Camesi and Jarle Hulaas

Graphical Monitoring tool

Layer structure

Monitoring CPU consumption

Plan

CPU Load Prediction

Approach of CPU Load

Measurements

Future research directions

Resource Awareness

Heterogeneous Distributed System

Programming models

Our General Approach with J-RAF2

Portable Resource Management

Resource AwarenessHeterogeneous Distributed System

Programming models

Our General Approach with J-RAF2

Graphical Monitoring tool

Layer structure

Monitoring CPU consumption

CPU Load Prediction

Approach of CPU Load

Measurements

0

7/0

7/2

005

19© Andrea Camesi and Jarle Hulaas

CPU Load Prediction

What is CPU Load Prediction?Bytecode instruction counting (BIC) and CPU time

They are distinct metrics for different purposes

Profile based on BIC are precise, platform-independent, directly comparable across different environment, independent of CPU

BIC could be useful to fix absolute limit of execution time

BIC could be useful to evaluate algorithm complexity

Estimate CPU time

Number of executed bytecode instructions / elapsed CPU time

Relationship between BIC and CPU time

Intuitive relation: proportional, but not so simple

No previous workGoal: find the exact relationship

Use profiles based on BIC to accurately estimate CPU time

Difficulties:

JIT, GC, Bytecode weight

0

7/0

7/2

005

20© Andrea Camesi and Jarle Hulaas

CPU Load Prediction

Benefits of CPU time Prediction

J-RAF2

Increase the value of our tools

Resource Aware

Cross development: embedded device, e.g. PDA

Heterogeneous Environment with mobile code: evaluate execution time of an application in a portable way

User defined deterministic scheduler based on BIC as application specific

ProsBetter understanding of java applications and java environment

Continuous metric give more information

0

7/0

7/2

005

21© Andrea Camesi and Jarle Hulaas

CPU Load Prediction

Samples taken during a run of 201_compress on Linux machine

Measurements

0

7/0

7/2

005

22© Andrea Camesi and Jarle Hulaas

CPU Load Prediction

Number of bytecodes executed per millisecond of CPU time(with Sun JDK 1.5.0 in interpreted mode, on a Sun Sparc 500 MHz machine under Solaris 9)

Number of bytecodes executed per millisecond of CPU time(with Sun JDK 1.5.0 in interpreted mode, on an Intel Pentium 2.6 GHz machine under Linux)

0

7/0

7/2

005

23© Andrea Camesi and Jarle Hulaas

Graphical Monitoring tool

Layer structure

Monitoring CPU consumption

Plan

CPU Load Prediction

Approach of CPU Load

Measurements

Future research directions

Resource Awareness

Heterogeneous Distributed System

Programming models

Our General Approach with J-RAF2

Portable Resource Management

Resource AwarenessHeterogeneous Distributed System

Programming models

Our General Approach with J-RAF2

Graphical Monitoring tool

Layer structure

Monitoring CPU consumption

CPU Load Prediction

Approach of CPU Load

Measurements

Future research directions

0

7/0

7/2

005

24© Andrea Camesi and Jarle Hulaas

Future research directions

Associate different weights to sequences of bytecode instructionsIncrease the level of precision of measurements

Use profiles based on BIC to accurately estimate CPU time

Explore aspect-oriented programming as a way of defining Resource-Awareness strategies

Explore different programming models for Resource-Aware systems

Memory accounting

Short-term

Mid-term

Long-term

0

7/0

7/2

005

25© Andrea Camesi and Jarle Hulaas

Thank you for your attention !

top related