SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
Developing benchmarks and workloads using
                Faban 1.0




                     Amanda Waite – Sun Microsystems, UK
What is Faban anyway?
●   Framework and toolkit to aid test/benchmark
    development and automate test run execution
●   Developed by Sun - Open Source
    ●   http://faban.sunsource.net
●   Harness – benchmark process automation,
    collect statistics, display results
●   Driver Framework – benchmark development
    framework and component model
●   Analysis Tool – graph, tabulate and compare
    results
Detailed result graphs
System Stats
Faban Architecture
                Control

   Master




                   Agent




                                         Agent




                                                                 Agent
 Web Server                Driver                Driver                  Driver


 Run Queue
                                                 Load
 Log Server                  Agent




                                                        Agent
                                      SUT                        SUT
                                     System                     System
Benchmark




                 Control
Stuff You Give to Faban
●   Systems
    ●   System(s) Under Test (host:port)
    ●   DB Server(s)
    ●   File Server(s)
    ●   Reverse Proxies (host:port)
    ●   Memcache instance(s) (host:port)
●   Benchmark Driver
●   Configuration
Stuff Faban Gives You
●   A harness that:
    ●   runs your driver code
    ●   manages all of your systems
        –   Including running stat tools
    ●   gathers data (run analysis and system stats/config)
    ●   manages your runs
●   A driver API and all of the plumbing
●   Configuration screens (web based)
    ●   Auto-generated from configuration file
Configuration
More Configuration
Pluggable Services/Tools
     Infrastructure

                                                    My Service
                                                     My Service
                                                      Tools

                                                    ToolSets




                                      ApacheHttpd
                                     ApacheHttpd
                          WebLogic
     SPECjEnt




                          WebLogic
    SPECjEnt

                 Olio


                          Service
                Olio




                        Faban
                         Faban
Service/Tool Control
                                             Start
   Configure

                                     Start
Steady State                                                          ●   Life-cycle control
                                                                          for services/tools
               Benchmark Run


                                                                      ●   Collects/post-




                                                            Service
                                                                          processes logs



                                                     Tool
                                                                          and stats
                                                                      ●   Archives
                                                                          service/tool data
                                     Stop                                 with run
Ramp Down
                               Post-Process/Get                       ●   Implementation
Post-Process
                                                                          knows to invoke
                                        Stop/Get                          external service or
                                                                          external tool
Faban Driver
●   Java Class (or classes) that defines a workload
●   Used by Faban to Drive load
●   Uses annotations to define Operations
●   Operations are complete interactions, i.e.:
    ●   GET html page
    ●   Load static resources and images called out in page
    ●   Optionally redirect based on HTTP return code
    ●   Validate success of operation
●   Operation Mix defines how and when
    operations are executed
Driver Framework
@BenchmarkDefinition(name = "OlioRails",
     version = "0.2",
     scaleName = "Concurrent Users")
@BenchmarkDriver(name = "UIDriver",
     threadPerScale = 1)
// 90/10 Read/Write ratio
@MatrixMix(
operations = {"HomePage", "Login", "TagSearch", "EventDetail", "PersonDetail",
"AddPerson", "AddEvent"},
mix = {@Row({0, 11, 52, 36, 0, 1, 0}), // Home Page
    @Row({0, 0, 60, 20, 0, 0, 20}), // Login
    @Row({21, 6, 41, 31, 0, 1, 0}), // Tag Search
    @Row({72, 21, 0, 0, 6, 1, 0}), // Event Detail
    @Row({52, 6, 0, 31, 11, 0, 0}), // Person Detail
    @Row({0, 0, 0, 0, 100, 0, 0}), // Add Person
    @Row({0, 0, 0, 100, 0, 0, 0}) // Add Event
})
@NegativeExponential(cycleType = CycleType.CYCLETIME,
     cycleMean = 5000,
     cycleDeviation = 2)
public class UIDriver {
Driver Framework
@BenchmarkOperation(name = "HomePage",
       max90th = 1,
       timing = Timing.AUTO)
public void doHomePage() throws IOException {

  http.fetchURL(homepageURL);


@BenchmarkOperation(name = "AddEvent",
        max90th = 4,
        timing = Timing.MANUAL)
public void doAddEvent() throws Exception {
  if (!isLoggedOn) {
      throw new IOException("User not logged when trying to add an event");
  }

  ctx.recordTime();
  loadStatics(addEventStatics);

  GetMethod eventForm = new GetMethod(addEventURL);
Get it, try it, contribute




 http://faban.sunsource.net

Contenu connexe

En vedette

Francesc Oliveras
Francesc OliverasFrancesc Oliveras
Francesc OliverasJSe
 
Jbd7068 sjkt ladang sungai muar
Jbd7068 sjkt ladang sungai muarJbd7068 sjkt ladang sungai muar
Jbd7068 sjkt ladang sungai muarm3psegamat
 
Le commerce bilatéral france algérie au 1er semestre 2015
Le commerce bilatéral france algérie au 1er semestre 2015Le commerce bilatéral france algérie au 1er semestre 2015
Le commerce bilatéral france algérie au 1er semestre 2015OUADA Yazid
 
School Management System - Upgrade
School Management System - UpgradeSchool Management System - Upgrade
School Management System - UpgradeKumaran Kanniappan
 
I'm an NP Because I Want to Help My Community
I'm an NP Because I Want to Help My CommunityI'm an NP Because I Want to Help My Community
I'm an NP Because I Want to Help My CommunitySara Seng
 
Detecting Frequently Recurring Structures in BPMN 2.0 Process Models (SummerS...
Detecting Frequently Recurring Structures in BPMN 2.0 Process Models (SummerS...Detecting Frequently Recurring Structures in BPMN 2.0 Process Models (SummerS...
Detecting Frequently Recurring Structures in BPMN 2.0 Process Models (SummerS...Marigianna Skouradaki
 
Sondagem diagnóstica Operações e problemas
Sondagem diagnóstica Operações  e problemasSondagem diagnóstica Operações  e problemas
Sondagem diagnóstica Operações e problemasRoseli Aparecida Tavares
 
Genetic engineering & transgenic breeding
Genetic engineering & transgenic breedingGenetic engineering & transgenic breeding
Genetic engineering & transgenic breedingPawan Nagar
 
El proceso de selección de personal- Afministrativos
El proceso de selección de personal- AfministrativosEl proceso de selección de personal- Afministrativos
El proceso de selección de personal- AfministrativosPurificación Argáiz Ruiz
 
마케팅이 필요하다면
마케팅이 필요하다면 마케팅이 필요하다면
마케팅이 필요하다면 jimin yi
 

En vedette (15)

Francesc Oliveras
Francesc OliverasFrancesc Oliveras
Francesc Oliveras
 
Jbd7068 sjkt ladang sungai muar
Jbd7068 sjkt ladang sungai muarJbd7068 sjkt ladang sungai muar
Jbd7068 sjkt ladang sungai muar
 
Jp new project
Jp new projectJp new project
Jp new project
 
Le commerce bilatéral france algérie au 1er semestre 2015
Le commerce bilatéral france algérie au 1er semestre 2015Le commerce bilatéral france algérie au 1er semestre 2015
Le commerce bilatéral france algérie au 1er semestre 2015
 
Resume 2015
Resume 2015Resume 2015
Resume 2015
 
Letter of Recommendation 2
Letter of Recommendation 2Letter of Recommendation 2
Letter of Recommendation 2
 
School Management System - Upgrade
School Management System - UpgradeSchool Management System - Upgrade
School Management System - Upgrade
 
I'm an NP Because I Want to Help My Community
I'm an NP Because I Want to Help My CommunityI'm an NP Because I Want to Help My Community
I'm an NP Because I Want to Help My Community
 
Detecting Frequently Recurring Structures in BPMN 2.0 Process Models (SummerS...
Detecting Frequently Recurring Structures in BPMN 2.0 Process Models (SummerS...Detecting Frequently Recurring Structures in BPMN 2.0 Process Models (SummerS...
Detecting Frequently Recurring Structures in BPMN 2.0 Process Models (SummerS...
 
Sondagem diagnóstica Operações e problemas
Sondagem diagnóstica Operações  e problemasSondagem diagnóstica Operações  e problemas
Sondagem diagnóstica Operações e problemas
 
Genetic engineering & transgenic breeding
Genetic engineering & transgenic breedingGenetic engineering & transgenic breeding
Genetic engineering & transgenic breeding
 
Comité de Convivencia Laboral
Comité de Convivencia LaboralComité de Convivencia Laboral
Comité de Convivencia Laboral
 
El proceso de selección de personal- Afministrativos
El proceso de selección de personal- AfministrativosEl proceso de selección de personal- Afministrativos
El proceso de selección de personal- Afministrativos
 
마케팅이 필요하다면
마케팅이 필요하다면 마케팅이 필요하다면
마케팅이 필요하다면
 
트렌드강의3. 절정경험 트렌드를 활용한 경험 브랜딩 전략
트렌드강의3. 절정경험 트렌드를 활용한 경험 브랜딩 전략트렌드강의3. 절정경험 트렌드를 활용한 경험 브랜딩 전략
트렌드강의3. 절정경험 트렌드를 활용한 경험 브랜딩 전략
 

Similaire à Fosdem2010 Faban

Know More About Rational Performance - Snehamoy K
Know More About Rational Performance - Snehamoy KKnow More About Rational Performance - Snehamoy K
Know More About Rational Performance - Snehamoy KRoopa Nadkarni
 
3 know more_about_rational_performance_tester_8-1-snehamoy_k
3 know more_about_rational_performance_tester_8-1-snehamoy_k3 know more_about_rational_performance_tester_8-1-snehamoy_k
3 know more_about_rational_performance_tester_8-1-snehamoy_kIBM
 
OTM Performance Review and Benchmarking
OTM Performance Review and BenchmarkingOTM Performance Review and Benchmarking
OTM Performance Review and BenchmarkingMavenWire
 
Agile Open Source Performance Testing Workshop for Business Managers
Agile Open Source Performance Testing Workshop for Business ManagersAgile Open Source Performance Testing Workshop for Business Managers
Agile Open Source Performance Testing Workshop for Business ManagersClever Moe
 
Hadoop Summit San Diego Feb2013
Hadoop Summit San Diego Feb2013Hadoop Summit San Diego Feb2013
Hadoop Summit San Diego Feb2013Narayan Bharadwaj
 
Planning & building scalable test infrastructure
Planning  & building scalable test infrastructurePlanning  & building scalable test infrastructure
Planning & building scalable test infrastructureVijayan Reddy
 
How to Improve Performance Testing Using InfluxDB and Apache JMeter
How to Improve Performance Testing Using InfluxDB and Apache JMeterHow to Improve Performance Testing Using InfluxDB and Apache JMeter
How to Improve Performance Testing Using InfluxDB and Apache JMeterInfluxData
 
Dreamforce_2012_Hadoop_Use_Cases
Dreamforce_2012_Hadoop_Use_CasesDreamforce_2012_Hadoop_Use_Cases
Dreamforce_2012_Hadoop_Use_CasesNarayan Bharadwaj
 
Keyword-driven Test Automation Framework
Keyword-driven Test Automation FrameworkKeyword-driven Test Automation Framework
Keyword-driven Test Automation FrameworkMikhail Subach
 
Introduction to data flow management using apache nifi
Introduction to data flow management using apache nifiIntroduction to data flow management using apache nifi
Introduction to data flow management using apache nifiAnshuman Ghosh
 
Qtp Training Deepti 1 Of 4187
Qtp Training Deepti 1 Of 4187Qtp Training Deepti 1 Of 4187
Qtp Training Deepti 1 Of 4187Azhar Satti
 
Data ingestion and distribution with apache NiFi
Data ingestion and distribution with apache NiFiData ingestion and distribution with apache NiFi
Data ingestion and distribution with apache NiFiLev Brailovskiy
 
Talkbits service architecture and deployment
Talkbits service architecture and deploymentTalkbits service architecture and deployment
Talkbits service architecture and deploymentOpen-IT
 
SVG in Data Acquisition and Control Systems
SVG in Data Acquisition and Control SystemsSVG in Data Acquisition and Control Systems
SVG in Data Acquisition and Control SystemsTao Jiang
 

Similaire à Fosdem2010 Faban (20)

Hadoop + Forcedotcom = Like
Hadoop + Forcedotcom = LikeHadoop + Forcedotcom = Like
Hadoop + Forcedotcom = Like
 
Know More About Rational Performance - Snehamoy K
Know More About Rational Performance - Snehamoy KKnow More About Rational Performance - Snehamoy K
Know More About Rational Performance - Snehamoy K
 
3 know more_about_rational_performance_tester_8-1-snehamoy_k
3 know more_about_rational_performance_tester_8-1-snehamoy_k3 know more_about_rational_performance_tester_8-1-snehamoy_k
3 know more_about_rational_performance_tester_8-1-snehamoy_k
 
Load Runner
Load RunnerLoad Runner
Load Runner
 
OTM Performance Review and Benchmarking
OTM Performance Review and BenchmarkingOTM Performance Review and Benchmarking
OTM Performance Review and Benchmarking
 
Agile Open Source Performance Testing Workshop for Business Managers
Agile Open Source Performance Testing Workshop for Business ManagersAgile Open Source Performance Testing Workshop for Business Managers
Agile Open Source Performance Testing Workshop for Business Managers
 
Hadoop Summit San Diego Feb2013
Hadoop Summit San Diego Feb2013Hadoop Summit San Diego Feb2013
Hadoop Summit San Diego Feb2013
 
Planning & building scalable test infrastructure
Planning  & building scalable test infrastructurePlanning  & building scalable test infrastructure
Planning & building scalable test infrastructure
 
How to Improve Performance Testing Using InfluxDB and Apache JMeter
How to Improve Performance Testing Using InfluxDB and Apache JMeterHow to Improve Performance Testing Using InfluxDB and Apache JMeter
How to Improve Performance Testing Using InfluxDB and Apache JMeter
 
Airavata_Architecture_xsede16
Airavata_Architecture_xsede16Airavata_Architecture_xsede16
Airavata_Architecture_xsede16
 
Dreamforce_2012_Hadoop_Use_Cases
Dreamforce_2012_Hadoop_Use_CasesDreamforce_2012_Hadoop_Use_Cases
Dreamforce_2012_Hadoop_Use_Cases
 
Keyword-driven Test Automation Framework
Keyword-driven Test Automation FrameworkKeyword-driven Test Automation Framework
Keyword-driven Test Automation Framework
 
Introduction to data flow management using apache nifi
Introduction to data flow management using apache nifiIntroduction to data flow management using apache nifi
Introduction to data flow management using apache nifi
 
About QTP 9.2
About QTP 9.2About QTP 9.2
About QTP 9.2
 
About Qtp_1 92
About Qtp_1 92About Qtp_1 92
About Qtp_1 92
 
About Qtp 92
About Qtp 92About Qtp 92
About Qtp 92
 
Qtp Training Deepti 1 Of 4187
Qtp Training Deepti 1 Of 4187Qtp Training Deepti 1 Of 4187
Qtp Training Deepti 1 Of 4187
 
Data ingestion and distribution with apache NiFi
Data ingestion and distribution with apache NiFiData ingestion and distribution with apache NiFi
Data ingestion and distribution with apache NiFi
 
Talkbits service architecture and deployment
Talkbits service architecture and deploymentTalkbits service architecture and deployment
Talkbits service architecture and deployment
 
SVG in Data Acquisition and Control Systems
SVG in Data Acquisition and Control SystemsSVG in Data Acquisition and Control Systems
SVG in Data Acquisition and Control Systems
 

Fosdem2010 Faban

  • 1. Developing benchmarks and workloads using Faban 1.0 Amanda Waite – Sun Microsystems, UK
  • 2. What is Faban anyway? ● Framework and toolkit to aid test/benchmark development and automate test run execution ● Developed by Sun - Open Source ● http://faban.sunsource.net ● Harness – benchmark process automation, collect statistics, display results ● Driver Framework – benchmark development framework and component model ● Analysis Tool – graph, tabulate and compare results
  • 3.
  • 6. Faban Architecture Control Master Agent Agent Agent Web Server Driver Driver Driver Run Queue Load Log Server Agent Agent SUT SUT System System Benchmark Control
  • 7. Stuff You Give to Faban ● Systems ● System(s) Under Test (host:port) ● DB Server(s) ● File Server(s) ● Reverse Proxies (host:port) ● Memcache instance(s) (host:port) ● Benchmark Driver ● Configuration
  • 8. Stuff Faban Gives You ● A harness that: ● runs your driver code ● manages all of your systems – Including running stat tools ● gathers data (run analysis and system stats/config) ● manages your runs ● A driver API and all of the plumbing ● Configuration screens (web based) ● Auto-generated from configuration file
  • 11. Pluggable Services/Tools Infrastructure My Service My Service Tools ToolSets ApacheHttpd ApacheHttpd WebLogic SPECjEnt WebLogic SPECjEnt Olio Service Olio Faban Faban
  • 12. Service/Tool Control Start Configure Start Steady State ● Life-cycle control for services/tools Benchmark Run ● Collects/post- Service processes logs Tool and stats ● Archives service/tool data Stop with run Ramp Down Post-Process/Get ● Implementation Post-Process knows to invoke Stop/Get external service or external tool
  • 13. Faban Driver ● Java Class (or classes) that defines a workload ● Used by Faban to Drive load ● Uses annotations to define Operations ● Operations are complete interactions, i.e.: ● GET html page ● Load static resources and images called out in page ● Optionally redirect based on HTTP return code ● Validate success of operation ● Operation Mix defines how and when operations are executed
  • 14. Driver Framework @BenchmarkDefinition(name = "OlioRails", version = "0.2", scaleName = "Concurrent Users") @BenchmarkDriver(name = "UIDriver", threadPerScale = 1) // 90/10 Read/Write ratio @MatrixMix( operations = {"HomePage", "Login", "TagSearch", "EventDetail", "PersonDetail", "AddPerson", "AddEvent"}, mix = {@Row({0, 11, 52, 36, 0, 1, 0}), // Home Page @Row({0, 0, 60, 20, 0, 0, 20}), // Login @Row({21, 6, 41, 31, 0, 1, 0}), // Tag Search @Row({72, 21, 0, 0, 6, 1, 0}), // Event Detail @Row({52, 6, 0, 31, 11, 0, 0}), // Person Detail @Row({0, 0, 0, 0, 100, 0, 0}), // Add Person @Row({0, 0, 0, 100, 0, 0, 0}) // Add Event }) @NegativeExponential(cycleType = CycleType.CYCLETIME, cycleMean = 5000, cycleDeviation = 2) public class UIDriver {
  • 15. Driver Framework @BenchmarkOperation(name = "HomePage", max90th = 1, timing = Timing.AUTO) public void doHomePage() throws IOException { http.fetchURL(homepageURL); @BenchmarkOperation(name = "AddEvent", max90th = 4, timing = Timing.MANUAL) public void doAddEvent() throws Exception { if (!isLoggedOn) { throw new IOException("User not logged when trying to add an event"); } ctx.recordTime(); loadStatics(addEventStatics); GetMethod eventForm = new GetMethod(addEventURL);
  • 16. Get it, try it, contribute http://faban.sunsource.net