The Impact of Web Service Integration on Grid Performance Franois - - PowerPoint PPT Presentation

the impact of web service integration on grid performance
SMART_READER_LITE
LIVE PREVIEW

The Impact of Web Service Integration on Grid Performance Franois - - PowerPoint PPT Presentation

The Impact of Web Service Integration on Grid Performance Franois Taani Matti Hiltunen & Rick Schlichting Lancaster University AT&T Labs - Research HPDC-14 , The 14th IEEE International Symposium on High Performance Distributed


slide-1
SLIDE 1

The Impact of Web Service Integration

  • n Grid Performance

Matti Hiltunen & Rick Schlichting AT&T Labs - Research François Taïani Lancaster University

HPDC-14, The 14th IEEE International Symposium on High Performance Distributed Computing, Research Triangle Park, NC, USA, July 24-27, 2005

slide-2
SLIDE 2

2/29

Context & Motivation

 New Globus version (3.9.x / 4.0.x): convergence

 Grid Computing: federating resources

(OGSA)

 Web Services:

integrating services (WSRF)

 Web Services and their associated technologies (SOAP,

XML, WSDL) are reputed inefficient

 What is the performance impact on Globus?

 Globus has grown into a large, complex, collaborative

middleware (IBM, Apache,...)

 How to extract meaningful profiling data?

 How to profile a complex piece of software?  What does it tell us about Globus?

slide-3
SLIDE 3

3/29

Chosen Approach

2 steps:

1.

Black box profiling: minimal interferences. Coarse results.

2.

Sample based profiling: less accurate but more detailed.

We focused on the connectivity of the WSRF implementation of GT4-Java:

 Low level “plumbing”. No high level service involved  Motivation: profile the founding bricks of the Globus platform

Experimental set-up:

 Standalone SMP server running 4 Intel Xeon @ 1.6GHz  No network cost involved!  Avoids context switching overhead!  Globus 3.9.4 used (last GT4 alpha release, released Dec.04)

slide-4
SLIDE 4

4/29

Outline

 Introduction: Motivation and Approach  Black Box Profiling: Set-Up and Results  Sample Based Profiling: Approach and Results  Conclusion

slide-5
SLIDE 5

5/29

Outline

 Introduction: Motivation and Approach  Black Box Profiling: Set-Up and Results  Sample Based Profiling: Approach and Results  Conclusion

slide-6
SLIDE 6

6/29

client

clock instrumentation

Black-Box Profiling: Approach

 Black Box Approach: Measure externally visible latencies

 Many different situations to be considered!

container

create add 3 notify 3 destroy

×5

influence of resource init

×5

influence of client init

×5

influence of container init

×50 averaging

(10 000 invocations) subscribe

slide-7
SLIDE 7

7/29

Resource Set-Up

×5 ×5

subscribe create

client cont.

slide-8
SLIDE 8

8/29

Resource Set-Up

Container init

  • verhead

(~8.2s!) Client init

  • verhead

(~24.8s!)

slide-9
SLIDE 9

9/29

Resource Set-Up

Container init

  • verhead

(~8.2s!) Client init

  • verhead

(~24.8s!)

High lazy initialization costs! (> 30s!) Stabilized latency remains high (380ms)

slide-10
SLIDE 10

10/29

First Notification

×5 ×5 client cont.

1st notify

slide-11
SLIDE 11

11/29

First Notification

Container init

  • verhead

(~430ms) Client init

  • verhead

(~1.4s!) Stabilized latency (~1.1s!)

slide-12
SLIDE 12

12/29

Second Notification

×5 ×5 client cont.

2nd notify

Resource init

  • verhead

(~930ms!) Stabilized latency 1st notification (~1.1s)

slide-13
SLIDE 13

13/29

Second Notification

Lazy initialization everywhere

×5 ×5 client cont.

2nd notify

Resource init

  • verhead

(~930ms!) Stabilized latency 1st notification (~1.1s)

Stabilized request latency still high (170ms)

slide-14
SLIDE 14

14/29

Outline

 Introduction: Motivation and Approach  Black Box Profiling: Set-Up and Results  Sample Based Profiling: Approach and Results  Conclusion

slide-15
SLIDE 15

15/29

Sample Based Profiling: Introduction

 Goal: relate observed latencies to Globus internal structure  Profiling data obtained through sampling

(SUN hprof basic profiler)

 JVM periodically stopped. Stack of active thread is captured.  Result : A set of weighted stack traces. Weight = measures

how often the stack was observed.

 Visualization:

Set of weight stacks = multi-dimensional object

 Time (represented by weights)  Threads: each trace belongs to a thread  Control flow (represented by stacks, reflects use relationships)  Code Structure (package organization, class hierarchy, etc.)

slide-16
SLIDE 16

16/29

Program visualization

 Problem studied for quite a long time now.  Projection (aggregation / collapsing) required  Many possibility.

 Our goal: related profiling to software structure  Our choice: package aggregation + stack depth

lib1.Wale .breath lib1.Mammal.inhale lib2.Lung .inhale lib2.Muscle.contract lib2.Nerve .transmit lib3.Signal.travel

Growing Call Stack

lib 1 lib 2 lib 3

 Tracing calls reveals the software structure.

slide-17
SLIDE 17

17/29

Sample Based Profiling: Example

lib1.Wale .breath lib1.Mammal.inhale lib2.Lung .inhale lib2.Muscle.contract lib2.Nerve .transmit lib3.Signal.travel lib3.Blood .flow lib3.Pressure.foo lib2.Muscle.stop lib2.Nerve .transmit lib3.Signal.travel

Sampling yields a set of weighted stack traces (weight reflects time spent)

×3 ×1 ×2

1 2 3 4 5 6 1 2 3 4 5 6 Stack Depth Time Units lib3 lib2 lib1

 Aggregates invocations of the same library.  Chart w.r.t. position in call stack. EXCLUSIVE

1 2 3 4 5 6 1 2 3 4 5 6 Stack Depth Time Units lib3 lib2 lib1

INCLUSIVE

slide-18
SLIDE 18

18/29

Experimental Set-Up

container client

create subscribe add 3 notify 3 destroy

×5 ×5 Java VM hprof profiling data

slide-19
SLIDE 19

19/29

Container Profiling: Results

slide-20
SLIDE 20

20/29

Sharp drop at length 13

Container Profiling: Results

Some very deep traces. Look quite regular beyond depth 28 (recursion?)

  • rg.apache.axis predominant

Layered structured for upper stack depths

slide-21
SLIDE 21

21/29

Sharp drop at length 13

Container Profiling: Results

Some very deep traces. Look quite regular beyond depth 28 (recursion?)

  • rg.apache.axis predominant

Layered structured for upper stack depths

Busy waiting related to notification management. Outside request critical path.

slide-22
SLIDE 22

22/29

subscribe notify 3

+ extra granularity to observe package

  • rg.apache.axis

New Experimental Set-Up

container client

create add 3 destroy

×5 ×5 Java VM hprof profiling data

slide-23
SLIDE 23

23/29

This is a recursion in

  • rg.apache.wsdl.symbolTable

(web services). Symbol management issue? Traces of length 13 have

  • disappeared. They were

caused by the notification management.

  • rg.globus.wsrf
  • rg.globus.gsi (security)

sun.reflect (reflection)

New Results

slide-24
SLIDE 24

24/29

Profiling Breakdown

 Abstracts away low level packages (java.*, etc.)  Sample breakdown among “higher level” packages:

Package Name Samples %

 org.apache.axis.wsdl

231 21%

 org.apache.axis.encoding

66 6%

 org.apache.axis (others)

113 10%

 org.globus.gsi

249 23%

 org.globus.wsrf

49 4%

 cryptix.provider.rsa

82 7%

 org.apache.xerces

78 7%

 others

237 21%

slide-25
SLIDE 25

25/29

Profiling Breakdown

 Abstracts away low level packages (java.*, etc.)  Sample breakdown among “higher level” packages:

Package Name Samples %

 org.apache.axis.wsdl

231 21%

 org.apache.axis.encoding

66 6%

 org.apache.axis (others)

113 10%

 org.globus.gsi

249 23%

 org.globus.wsrf

49 4%

 cryptix.provider.rsa

82 7%

 org.apache.xerces

78 7%

 others

237 21%

Symbol management issue?

slide-26
SLIDE 26

26/29

Profiling Breakdown

 Abstracts away low level packages (java.*, etc.)  Sample breakdown among “higher level” packages:

Package Name Samples %

 org.apache.axis.wsdl

231 21%

 org.apache.axis.encoding

66 6%

 org.apache.axis (others)

113 10%

 org.globus.gsi

249 23%

 org.globus.wsrf

49 4%

 cryptix.provider.rsa

82 7%

 org.apache.xerces

78 7%

 others

237 21%

SOAP + XML: 44%

slide-27
SLIDE 27

27/29

Profiling Breakdown

 Abstracts away low level packages (java.*, etc.)  Sample breakdown among “higher level” packages:

Package Name Samples %

 org.apache.axis.wsdl

231 21%

 org.apache.axis.encoding

66 6%

 org.apache.axis (others)

113 10%

 org.globus.gsi

249 23%

 org.globus.wsrf

49 4%

 cryptix.provider.rsa

82 7%

 org.apache.xerces

78 7%

 others

237 21%

Security / Cryptography: 30%

slide-28
SLIDE 28

28/29

(Temporary) Conclusion on Globus

 Globus:

 Lazy optimisation: very high latency on first invocation of

  • perations (up to 30s to set up a resource on a new container!)

 Stabilized latencies still high: ~ 160ms for a round trip

request (with authentication turned on)

 No clear culprit. A mix of factors: WSDL, SOAP, security  Is lazy optimisation a problem? Yes and No.

 Brand new version. 3.9.4 numbers already better than 3.9.2!  Containers not supposed to be started frequently  Globus services are there to manage very long running

  • jobs. A few seconds does not really matter.

 But points at some applications for which Globus (in its

present form) would be clearly ill chosen

slide-29
SLIDE 29

29/29

Conclusion & Outlook On Approach

 Use of simple and well known profiling techniques  Visualisation was adapted to scale up to the complexity

  • f a software like Globus

 The diagrams we used don’t contain all the answers:

 They can be best seen as maps to guide further steps  Different kinds of projection actually useful

 Interesting complexity related problems:

 Which is the best “semantically relevant” level to project

profiling traces? Too low: no meaning. Too high: no details.

 Can we leverage the “middleware” nature of Globus to

  • btain finer profiling data with the same lightweight tools?
slide-30
SLIDE 30

30/29

The End

(Thank you)