1
Włodzimierz Funika 1 , Marian Bubak 1,2 , Marcin Smętek 1 and Roland Wismüller 3 1 Institute of Computer Science, AGH, Kraków, Poland 2 Academic Computer Center – CYFRONET AGH, Kraków, Poland 3 Fachgruppe BVS – Universitaet Siegen, Segen, Germany 1 .Introduction Performance evaluation of RMI calls involves the analysis of RMI structure and communication. RMI’s key points from the viewpoint of performance analysis are: • RMI call start/end on the client side, • RMI call start/end on the server side, • information stored in RMI registry. 2. Goals We aim at building a comprehensive tool support for distributed Java application by providing uniformed, extensible monitoring facilities to understand an application’s behaviour. This concept had been incorporated into the J-OCM monitoring system, complying to the OMIS (On-line Monitoring Interface Specification). RMI-based distributed application J-OCM Server Registry Invoke Method Register Object Lookup Object Client Client Tool 3. General Architecture Concept Node Distributio n Unit Client.c lass Agent Local Monitor sun.rmi.* Node JVM Server.c lass Agent Local Monitor sun.rmi.* Node JVM transport 7. Implementation 4. Approach to the Monitoring of RMI calls The approach we used for monitoring RMI calls in the J-OCM relies on modification of two classes from sun.rmi package: 1. sun.rmi.UnicastServerRef 2. sun.rmi.UnicastRef Communication between instrumented package and J-OCM is enabled with JNI (Java Native Interface) and native Agent (library loaded to JVM). A call of a function with JNI causes notification of the event to the J-OCM. 5. RMI calls identification The problem of associating the events raised by the client and those raised by the server can be solved by sending additional information (rmi_id, token of thread-initiator) from the client to the server . The tool visualizes interaction between clients and servers in two example RMI calls with space-time diagram Captured RMI-bound events are mapped into relevant time intervals which enable to observe time spent in RMI execution phases 8. Start-up procedure In order to start the monitoring of an Java RMI application we must perform following commands: java –Xbootclasspath/p:$INSTRUMENTED_CLASS_DIR -Xdebug -XrunAgent Server java –Xbootclasspath/p:$INSTRUMENTED_CLASS_DIR –Xdebug -XrunAgent Client Afterwards, monitoring Agents will register the launched JVM in its Local Monitor to make them visible for tools. Since that moment any tool can get monitoring information about RMI calls. 9. References 1. R. Wismüller, J. Trinitis and T. Ludwig: A Universal Infrastructure for the Run-time Monitoring of Parallel and Distributed Applications. In: Proc. Euro-Par'98, Southampton, UK, LNCS 1470, pp. 173-180, Springer, 1998 2. M. Bubak, W. Funika, M.Smetek, Z. Kilianski, and R. Wismüller: Architecture of Monitoring System for Distributed Java Applications. In: Dongarra, J., Laforenza, D., Orlando, S. (Eds.), Proc. Euro PVM/MPI 2003, Venice, Italy, Sept. 29 - Oct. 2 2003, LNCS 2840, pp. 447-454, Springer, 2003 6. Role of tokens An every monitored object (node, jvm) is identified by token – object’s name as well as a platform independent way of addressing, e.g. the thread token t_1_j_1_n_1 allows to find out where it is running (thread 1 on JVM 2 , on node 1). rmi_invoke_ start rmi_result_se nd rmi_dispatch_ start rmi_execution _end rmi_execution _start rmi_request_re ceive rmi_result_r eceive rmi_invoke_end

Włodzimierz Funika 1 , Marian Bubak 1,2 , Marcin Smętek 1 and Roland Wism ü ller 3

  • Upload
    halen

  • View
    27

  • Download
    2

Embed Size (px)

DESCRIPTION

Tool. J-OCM. Server. Client. Register Object. Invoke Method. Registry. Client. Lookup Object. RMI-based distributed application. Node Distribution Unit. Local Monitor. Local Monitor. Agent. Agent. sun.rmi.*. sun.rmi.*. Server .class. Client.class. - PowerPoint PPT Presentation

Citation preview

Page 1: Włodzimierz Funika 1 , Marian Bubak 1,2 , Marcin Smętek 1  and Roland Wism ü ller 3

Włodzimierz Funika1, Marian Bubak1,2, Marcin Smętek1 and Roland Wismüller3 1 Institute of Computer Science, AGH, Kraków, Poland

2 Academic Computer Center – CYFRONET AGH, Kraków, Poland3 Fachgruppe BVS – Universitaet Siegen, Segen, Germany

1 .Introduction

Performance evaluation of RMI calls involves the analysis of RMI structure and communication. RMI’s key points from the viewpoint of performance analysis are:• RMI call start/end on the client side,• RMI call start/end on the server side, • information stored in RMI registry.

2. Goals

We aim at building a comprehensive tool support for distributed Java application by providing uniformed, extensible monitoring facilities to understand an application’s behaviour. This concept had been incorporated into the J-OCM monitoring system, complying to the OMIS (On-line Monitoring Interface Specification).

RMI-based distributed application

J-OCM

Server

Registry

Invoke MethodRegisterObject

Lookup Object

Client

Client

Tool

3. General Architecture Concept

NodeDistribution

Unit

Client.class

Agent

LocalMonitor

sun.rmi.*

Node

JVMServer.class

Agent

LocalMonitor

sun.rmi.*

Node

JVM

transport

7. Implementation

4. Approach to the Monitoring of RMI calls

The approach we used for monitoring RMI calls in the J-OCM relies on modification of two classes from sun.rmi package:1. sun.rmi.UnicastServerRef2. sun.rmi.UnicastRef

Communication between instrumented package and J-OCM is enabled with JNI (Java Native Interface) and native Agent (library loaded to JVM). A call of a function with JNI causes notification of the event to the J-OCM.5. RMI calls identification

The problem of associating the events raised by the client and those raised by the server can be solved by sending additional information (rmi_id, token of thread-initiator) from the client to the server .

• The tool visualizes interaction between clients and servers in two example RMI calls with space-time diagram• Captured RMI-bound events are mapped into relevant time intervals which enable to observe time spent in RMI execution phases

• The tool visualizes interaction between clients and servers in two example RMI calls with space-time diagram• Captured RMI-bound events are mapped into relevant time intervals which enable to observe time spent in RMI execution phases

8. Start-up procedure

In order to start the monitoring of an Java RMI application we must perform following commands:

java –Xbootclasspath/p:$INSTRUMENTED_CLASS_DIR -Xdebug -XrunAgent Server

java –Xbootclasspath/p:$INSTRUMENTED_CLASS_DIR –Xdebug -XrunAgent Client

Afterwards, monitoring Agents will register the launched JVM in its Local Monitor to make them visible for tools. Since that moment any tool can get monitoring information about RMI calls.

9. References

1. R. Wismüller, J. Trinitis and T. Ludwig: A Universal Infrastructure for the Run-time Monitoring of Parallel and Distributed Applications. In: Proc. Euro-Par'98, Southampton, UK, LNCS 1470, pp. 173-180, Springer, 1998

2. M. Bubak, W. Funika, M.Smetek, Z. Kilianski, and R. Wismüller: Architecture of Monitoring System for Distributed Java Applications. In: Dongarra, J., Laforenza, D., Orlando, S. (Eds.), Proc. Euro PVM/MPI 2003, Venice, Italy, Sept. 29 - Oct. 2 2003, LNCS 2840, pp. 447-454, Springer, 2003

6. Role of tokens

An every monitored object (node, jvm) is identified by token – object’s name as well as a platform independent way of addressing, e.g. the thread token t_1_j_1_n_1 allows to find out where it is running (thread 1 on JVM 2 , on node 1).

rmi_invoke_start

rmi_result_send

rmi_dispatch_start

rmi_execution_end

rmi_execution_start

rmi_request_receive

rmi_result_receive

rmi_invoke_end