CG Architecture - ACK Cyfronet AGH

Download Report

Transcript CG Architecture - ACK Cyfronet AGH

Włodzimierz Funika1, Marian Bubak1,2, Marcin Smętek1 and Roland Wismüller3
2
1 Institute of Computer Science, AGH, Kraków, Poland
Academic Computer Center – CYFRONET AGH, Kraków, Poland
3 Fachgruppe BVS – Universitaet Siegen, Segen, Germany
1 .Introduction
6. Role of tokens
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.
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).
2. Goals
7. Implementation
rmi_invoke_start
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_request_receive
rmi_dispatch_start
• 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
rmi_result_receive
3. General Architecture Concept
Tool
J-OCM
rmi_execution_end
Server
Client
Invoke Method
Client
Register
Object
rmi_execution_start
Node
Registry
Lookup Object
Local
Monitor
Node
Distribution
Unit
rmi_result_send
Node
rmi_invoke_end
Local
Monitor
Agent
Agent
sun.rmi.*
sun.rmi.*
transport
RMI-based distributed
application
JVM
4. Approach to the Monitoring of RMI calls
Client.class
JVM
Server.class
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
8. Start-up procedure
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.
java –Xbootclasspath/p:$INSTRUMENTED_CLASS_DIR
-Xdebug -XrunAgent Server
2. sun.rmi.UnicastRef
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 .
In order to start the monitoring of an Java RMI application we must
perform following commands:
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