Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Bruno Dillenseger, France Telecom R&D, Distributed Systems Architecture [email protected]
Emmanuel Cecchet, [email protected]
CLIF is a Load Injection Framework
a new initiative of ObjectWeb consortium'sJava Middleware Open Benchmarking project
OOPSLA 2003 workshop on middleware benchmarking 2
Outline
➨JMOB project overview➨Lessons learned with RUBiS➨Requirements for a load injection and
performance measurement framework➨CLIF: design and current status➨Conclusion
ObjectWeb and theJava Middleware Open
Benchmarking (JMOB) project
OOPSLA 2003 workshop on middleware benchmarking 4
ObjectWeb & JMOB
➨ObjectWebconsortium fostering the development of opensource middlewarea « European Apache » with a W3C organization
➨JMOBmiddleware benchmarksopen source implementationsonline experimental resultsplace to exchange benchmarking experiences andsoftware
OOPSLA 2003 workshop on middleware benchmarking 5
JMOB current projects
➨Stock-Onlinestock market simulationJ2EE benchmarkreports from CSIRO (Australia)
➨RUBiSeCommerce web site modeled after eBay.comPHP, Servlets, 7 EJB implementations availableongoing JDO and .Net implementationsOopsla’02 paper
➨RUBBoSsite modeled after slashdot.orgPHP and ServletsMiddleware’03 paper
OOPSLA 2003 workshop on middleware benchmarking 6
Outline
➨JMOB project overview➨Lessons learned with RUBiS➨Requirements for a load injection and
performance measurement framework➨CLIF: design and current status➨Conclusion
OOPSLA 2003 workshop on middleware benchmarking 7
RUBiS
➨Auction site modeled after eBay➨26 interactions➨Browsing mix: read-only mix➨Bidding mix: 15% read-write interactions➨Database: 1.4 GB
1 million users, ~500000 comments>500000 items, 330000 active bids
OOPSLA 2003 workshop on middleware benchmarking 8
RUBiS main results
➨Academic side (Oopsla’02)Design pattern determines performanceReflection limits scalabilityCommunication is the main CPU consumer
➨Technical sidebenchmarking is a nightmare6 months of cpu time to obtain the resultsWhat is going wrong is the hardest questionload injection is as complex as the benchmark app.
OOPSLA 2003 workshop on middleware benchmarking 9
RUBiS main results
➨Load injectionmonitoring necessary not only on SUT (System UnderTest)one client emulator with a bottleneck resource at anypoint in time will give unstable resultsonline monitoring is (too?) expensive
➨Resources needed for injectionup to 5 clients machines to saturate one serverhow many for a cluster of servers ?how to scale ?
OOPSLA 2003 workshop on middleware benchmarking 10
RUBiS main results
➨RUBiS load injection designad-hoc client emulator using a transition state matrixdistributed Java applicationmonitoring using Linux specific tools (sar)
dump into temporary directorypost-mortem analysis of monitoring information
awk+bash scripts for HTML reports generation
OOPSLA 2003 workshop on middleware benchmarking 11
Outline
➨JMOB project overview➨Lessons learned with RUBiS➨Requirements for a load injection and
performance measurement framework➨CLIF: design and current status➨Conclusion
OOPSLA 2003 workshop on middleware benchmarking 12
Existing solutions andprojects
A couple of very good commercial solutions exist:high level loads, user-friendly, multiple target protocols
but:license costs are high, protocol-specific and depend on the requiredload levelOS-bound (e.g. running on Windows only)how about testing custom protocols? (free extendibility issue)
Other solutions:more than 400 platforms/projects found on the Web ! (not all alive)reduced load levels, target protocols, user-friendliness, supportedOS
OOPSLA 2003 workshop on middleware benchmarking 13
Typical technicallimitations (1)
OS-specific...development for optimized injection performanceGraphical User Interfaceaccess to system information about resources usagedistribution and deployment support
Poor injection performance and scalabilityvirtual machine execution overheadinterpretation of scripting languageslack or bad tuning of distributed injection support
OOPSLA 2003 workshop on middleware benchmarking 14
Typical technicallimitations (2)
Fixed, single or reduced...load scenario definition tools/modes
scripting, GUI, XML-based or ad hoc configuration file,probabilistic state transition matrix, coarse-grain load profiles(ramps, peaks...)
target protocols
Untransparent distribution managementdeployment of injectors and test scenarioscollection of test results
OOPSLA 2003 workshop on middleware benchmarking 15
The platform we aredreaming about is...
➨OS-independent➨versatile:
target protocol independent and extendibleenables any kind of load profile to be generated
➨scalable to generate high load levels➨user-friendly
for a variety of usersplain users, advanced users, developers...
handling cumbersome taskstest deployment, results synthesis...
➨cheap
OOPSLA 2003 workshop on middleware benchmarking 16
Outline
➨JMOB project overview➨Lessons learned with RUBiS➨Requirements for a load injection and
performance measurement framework➨CLIF: design and current status➨Conclusion
OOPSLA 2003 workshop on middleware benchmarking 17
CLIF: yet anotherbenchmarking tool?
CLIF aims at providing the platform we aredreaming about:
based on Java for hardware and OS independencedistributed to enable high loads, with transparencysupport (deployment, control, data collection...)based on ObjectWeb's Fractal component model tohave a neat, open architecture for straightforwardadaptability (test scenarios, protocols)
open source!
OOPSLA 2003 workshop on middleware benchmarking 18
The big picture
supervisionconsole
(interactive orbatch mode)
CLIF server(load injector
and/orresource probe) tested system
test deploymentand control
target systeminvocation
resource probe(s)
statistic data(polling)
all data
data analysistool
datastorage
data:• resources usage (CPU, memory, network...)• test lifecycle events (deploy, init, start, end...),• test reports (response time, error, result...)
OOPSLA 2003 workshop on middleware benchmarking 19
client interface (required service)
Fractal Component ModelComponentIdentity BindingController LifeCycleControllerContentController
component’s controller
component’s content
shared component component interface
server interface (offered service)
OOPSLA 2003 workshop on middleware benchmarking 20
Focus on scenariocomponent
ScenarioControl:init
startstop
suspendresume
join
(re-)deployed atruntime
Scenario
DataCollector:gives test data(response time, error,result, scenarioevents...)
ScenarioResponse:gives information aboutscenario status (ready,running, suspended,finished...)
Clif server
CollectorEngine
OOPSLA 2003 workshop on middleware benchmarking 21
Current status
CLIF is a distributed load injection frameworkin Java, based on Fractal component model
multi-OS, open to any target protocol/system, open toany test scenario definition
Next development stepsasynchronous collection, storage and analysis of datageneric scenario tools (scripts, GUI, load profiles...)library of utilities for a variety of target protocolsresource probe only implemented for Linuxdistributed log and user-defined alarm managementstate-of-art HTTP test tool (with integration of Rubis)
OOPSLA 2003 workshop on middleware benchmarking 22
Future work
Further design workcomplete archival and exploitation support for full testcampaignsscalability for very high loads (e.g. hierarchicalorganization of servers for test monitoring and control)
OOPSLA 2003 workshop on middleware benchmarking 23
Conclusion
➨load injection is a complex distributedapplication
➨CLIF is a framework for load injection➨contributions and feedback welcome
Join us: [email protected]
OOPSLA 2003 workshop on middleware benchmarking 24
• Itanium-2 processors• 104 nodes (Dual 64 bits 900 MHz processors, 3 GB memory, 72 GB
local disk) connected through a Myrinet network• 208 processors, 312 GB memory, 7.5 TB disk• Connected to the GRID network• Linux OS (RedHat Advanced Server)• First Linpack experiments at INRIA
(Aug. 2003) have reached a 560GFlop/s performance
• Applications : Grid computing experiments,classical scientific computing, highperformance Internet servers, …
iCluster 2