Title: Performance Evaluation of JXTA Communication Layers
1Performance Evaluation of JXTA- Communication
Layers
- Mathieu Jan
- PARIS Research Group
Paris, November 2004
2Outline
- Overview of JXTA communications layers
- Experimental setup and benchmarks used
- Evaluation of JXTA-J2SE
- Fast-Ethernet
- Myrinet
- Evaluation of JXTA-C
- Fast-Ethernet
- Myrinet
3Motivations performance of JXTA?
- Papers from Emir Halepovic
- Pipe service only
- No in-depth explanations about the results
- No precise details about the experimental setup
- Mainly JXTA 1.x
- Complex topologies (relays, etc)
- Not clear what is benchmarked
- Results from the P3 project
- XtremWeb over JXTA
4(No Transcript)
5(No Transcript)
6Project JuxTest
- A set of benchmarks for JXTA-J2SE 2.x
- Focuses of JXTA-J2SE Communications layers
- Uses JXTA Distributed Framework project (JDF)
- Co-written with David A. Noblet
- Undergraduate at the University of New Hampshire
- Source code soon available! (22/11)
- http//jdf.jxta.org/
- Results already on-line
7JXTA-J2SE communications layers
8JXTA-J2SE communication layers
- JXTA Socket
- Java Socket interface
- Data-stream interface
- Reliability
- Pipe service
- Pipe ID
- Unreliable
- Endpoint service
- Peer ID
- Unreliable
9Experimental setup
- Nodes
- 2.4GHz Intel P4, 1GB of RAM, linux 2.4.22
- Networks
- Fast-Ethernet (MTU of 1500)
- Myrinet (GM 2.0.11, MTU of 9000)
- JVMs
- Sun 1.4.2_01-b06 (-server -Xms256M -Xmx256M)
- IBM 1.4.1 (-Xms256M -Xmx256M)
- JXTA-J2SE peers via JDF
- 1 rdv peer and 2 edge peers
- Benchmarks used
- RTT and protocol efficiency
10Performance Evaluation of JXTA-J2SE on
Fast-Ethernet
11Raw bandwidth results of JXTA Socket
Java socket 11.22 MB/s JXTA 2.3 9.72
MB/s JXTA 2.2.1 9.48 MB/s
12Raw latency results of JXTA Socket
Java socket lt 0.1 ms JXTA 2.3 3 ms JXTA
2.2.1 4 ms
13Protocol efficiency of JXTA Socket
- 4 message elements in a JXTA message
- ACK_NUMBER
- Message payload reliability
- EndpointRouterMsg (XML doc)
- Used by the endpoint router service
- 565 bytes! Not even needed!
- EndpointSourceAddress
- TCP address
- EndpointDestinationAddress
- TCP address EndpointService (Net group)
Endpoint Router - 1 byte 909 bytes sent on the wires!
14Tunning the output buffer size of JXTA Socket
output buffer size size of a pipe message
Java socket 11.22 MB/s JXTA 2.2.1 (512KB)
11.12 MB/s
15Raw bandwidth results of unicast pipe
Java socket 11.22 MB/s JXTA 2.3 9.59
MB/s JXTA 2.2.1 10.74 MB/s
16Raw latency result of unicast pipe
Java socket lt 0.1 ms JXTA 2.3 2 ms JXTA
2.2.1 35 ms
17Protocol efficiency of unicast pipe
- 4 message elements in a JXTA message
- PAYLOAD
- EndpointRouterMsg (XML doc)
- EndpointSourceAddress
- EndpointDestinationAddress
- 1 byte 877 bytes sent on the wires!
18JXTA Socket vs unicast pipe (bandwidth)
JXTA Socket 9.72 MB/s JXTA unicast pipe 9.59
MB/s
19JXTA Socket vs unicast pipe (latency)
JXTA Socket 3 ms JXTA unicast pipe 2 ms
20Removing limit on message size (unicast pipe)
Java socket 11.22 MB/s JXTA 2.2.1 11.14 MB/s
21IBM JVM vs Sun JVM on unicast pipe
JXTA 2.3 IBM 1.2 ms JXTA 2.3 SUN 1.8 ms
22Raw bandwidth results of endpoint service
Java socket 11.22 MB/s JXTA 2.3 10.47
MB/s JXTA 2.2.1 11.01 MB/s
23Raw latency results of endpoint service
Java socket lt 100 us JXTA 2.3 IBM 480
us JXTA 2.3 SUN 730 us
Issue 1228 2 TCP messages for 1 JXTA message!
24Protocol efficiency of endpoint service
- 3 message elements in a JXTA message
- PAYLOAD
- EndpointSourceAddress
- EndpointDestinationAddress
- 1 byte only 300 bytes sent on the wires!
- If we can say only
- No EndpointRouterMsg message element
- Removed 565 bytes!
- Removed XML parsing
25Cost of each layer (bandwidth)
26Cost of each layer (latency)
27Performance Evaluation of JXTA-J2SE on Myrinet
Or how to desperately reach the Gb/s!
28Experimental setup
-  Ethernet emulation feature of GM
- No OS-bypass mode -(
- Same benchmarks
- A different IP address when configuring JXTA
- Focus on bandwidth
- Removed limit on message size
29JXTA Socket bandwidth results
Results are not very good!
Java socket 159.20 MB/s JXTA 2.3 14.70
MB/s JXTA 2.2.1 12.10 MB/s
30Tuning the output buffer size of JXTA Socket
Above 80 MB/s
31Unicast pipe bandwidth results
Above 1 Gb/s! -)
Java socket 159.20 MB/s JXTA 2.3 106.54
MB/s JXTA 2.2.1 136.78 MB/s
32Endpoint service bandwidth results
Java socket 159.20 MB/s JXTA 2.3 112.32
MB/s JXTA 2.2.1 144.97 MB/s
33Performance Evaluation of JXTA-C on Fast-Ethernet
34Short overview of JXTA-C
- Needs Apache Portable Runtime (APR)
- Threads, Network, etc
- Newly added support for TCP communications
- PeerCom, Seoul (South Korea)
- Does not support rdv peers
- Need to use a J2SE rdv peer
- No JXTA Socket layer
- Only pipe service and endpoint service
- Several bug fixes
- Mostly EndpointRouterMsg
- TCP_NODELAY on
- Several TCP messages
35Raw bandwidth results of unicast pipe
JXTA-J2SE 2.3 11.1 MB/s JXTA-J2SE 2.2.1 11.1
MB/s JXTA-C 11.1 MB/s
Similar results compared to JXTA-J2SE
36Raw latency results of unicast pipe
JXTA-J2SE 2.3 1.8 ms JXTA-J2SE 2.2.1 35
ms JXTA-C 2 ms
37Protocol efficiency of unicast pipe
- 4 message elements in a JXTA message
- PAYLOAD
- EndpointRouterMsg (XML doc)
- EndpointSourceAddress
- EndpointDestinationAddress
- 1 byte 834 bytes sent on the wires!
- JXTA-J2SE 877 bytes
- GatewayForward tag in EndpointRouter
- Waiting for Bernard Traversat answear
- - charset tag for each message element
38Raw bandwidth results of endpoint service
JXTA-J2SE 2.3 11.15 MB/s JXTA-J2SE 2.2.1
11.19 MB/s JXTA-C 11.16 MB/s
39Raw latency results of endpoint service
JXTA-J2SE 2.3 0.8 ms JXTA-J2SE 2.2.1 1
ms JXTA-C 0.8 ms
40Protocol efficiency of endpoint service
- 3 message elements in a JXTA message
- PAYLOAD
- EndpointSourceAddress
- EndpointDestinationAddress
- 1 byte only 239 bytes sent on the wires!
- If we can say only
- JXTA-J2SE 300 bytes
- No EndpointRouterMsg
- Removing 595 bytes!
- Removed XML parsing
41Unicast pipe vs endpoint service
42Performance Evaluation of JXTA-C on Myrinet
Still using  Ethernet emulation feature of GM
43Unicast pipe bandwidth results
JXTA-J2SE 2.3 106 MB/s JXTA-J2SE 2.2.1 136
MB/s JXTA-C 107 MB/s
44Endpoint service bandwidth results
JXTA-J2SE 2.3 112.32 MB/s JXTA-J2SE 2.2.1
144.97 MB/s JXTA-C 109 MB/s
45JXTA-C on top of PadicoTM -)
- JXTA-C is working on top of PadicoTM! (17/11)
-  sed modifications in apr
- Using marcel threads instead of pthread
- JXTA-C configured to use GDBM instead of SDBM
- Goal stop using  ethernet emulation of GM
- But JXTA-C is not yet zero-copy -(
- Performance evaluation in progress
46Conclusion
- Performance evaluation of the communication
layers of JXTA- (J2SE and C) - Fast-Ethernet
- Myrinet
- Much better results compared to other related
work and explained results - Known costs of JXTA
- JXTA-J2SE nearly saturate a Fast-Ethernet link
- JXTA-J2SE on Myrinet bandwidth greater than 1Gb/s
- JXTA-J2SE gt JXTA-C on Myrinet
- JXTA-C is not zero-copy
47Ongoing work
- Performance evaluation of JXTA-C on top of
PadicoTM - JuxMem client in C for DIET
- Better knowledge of JXTA-C tricks -)
- Write papers
- GP2PC (1/12) on JXTA raw performance
- Fast-ethernet
- ? on JXTA tuned performance for grid computing
- Myrinet
48Future work
- Benchmark secure and propagate pipes
- Update JuxTest results
- JXTA 2.3.1
- Unidirectional throughput test
- Plug-in for Ethereal
- An easier analysis of JXTA protocols