24
Bruno Dillenseger, France Telecom R&D, Distributed Systems Architecture lab [email protected] Emmanuel Cecchet, INRIA [email protected] CLIF is a Load Injection Framework a new initiative of ObjectWeb consortium's Java Middleware Open Benchmarking project

CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

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

Page 2: CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

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

Page 3: CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

ObjectWeb and theJava Middleware Open

Benchmarking (JMOB) project

Page 4: CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

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

Page 5: CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

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

Page 6: CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

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

Page 7: CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

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

Page 8: CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

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.

Page 9: CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

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 ?

Page 10: CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

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

Page 11: CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

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

Page 12: CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

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

Page 13: CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

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

Page 14: CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

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

Page 15: CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

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

Page 16: CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

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

Page 17: CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

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!

Page 18: CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

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...)

Page 19: CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

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)

Page 20: CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

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

Page 21: CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

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)

Page 22: CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

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)

Page 23: CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

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]

Page 24: CLIF is a Load Injection Framework · OOPSLA 2003 workshop on middleware benchmarking 12 Existing solutions and projects A couple of very good commercial solutions exist: ¾high level

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