SlideShare una empresa de Scribd logo
1 de 51
Descargar para leer sin conexión
Performance
Oriented Design
        QCon São Paulo 2011
  Rodrigo Albani de Campos - @xinu
        camposr@gmail.com
Agenda

• Performance & Design
• Why should I care ?
• What should I measure ?
• References
What is performance ?
the capabilities of a machine or
product, esp. when observed
under particular conditions : the
hardware is put through tests
which assess the performance of
the processor.
What is design ?

his design of reaching the top:
intention, aim, purpose, plan,
intent, objective, object, goal,
end, target; hope, desire, wish,
dream, aspiration, ambition.
McLaren MP4 12c GT3
Underlying Operating
            Systems
   Read IOPS
                       IO Wait     Page Faults
          Run Queue
                                        Disk Usage
# users              USER CPU
      SYSTEM CPU Resident Size Write IOPS
                    Network Traffic Memory Usage
   Page out
                              Interrupts
            Page in
Packet Loss         Network Collision
                                         # processes
            Buffers Kernel Tables
What about code ?
Apr 25, 2011 5:44:02 PM org.apache.fop.fo.FOTreeBuilder fatalError
SEVERE: javax.xml.transform.TransformerException:
java.lang.NullPointerException: Parameter alpha must not be null
Apr 25, 2011 5:44:02 PM org.apache.fop.cli.Main startFOP
SEVERE: Exception
javax.xml.transform.TransformerException:
java.lang.NullPointerException: Parameter alpha must not be null
         at
org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:217)
         at
org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:125)
         at org.apache.fop.cli.Main.startFOP(Main.java:166)
         at org.apache.fop.cli.Main.main(Main.java:197)
Caused by: javax.xml.transform.TransformerException:
java.lang.NullPointerException: Parameter alpha must not be null
         at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr
ansformerImpl.java:2416)
         at
org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul
t.java:1374)
         at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(
ElemApplyTemplates.java:393)
         at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla
tes.java:176)
We’ve been riding
 space shuttles
 blindfolded
 handcuffed
Why should I care ?
Why should I care ?

Capacity planning is not just about the future
anymore.
Today, there is a serious need to squeeze more
out of your current capital equipment.
                    The Guerrilla Manual Online
                     http://www.perfdynamics.com/Manifesto/gcaprules.html
Why should I care ?

“Our systems are very simple,
  there’s no need for such
   performance metrics”
It goes like this...
         The Internet




        Web Server
      Application Server
          Database
It goes like this...
                      The Internet




   Web Server
 Application Server




       Database
It goes like this...
                                The Internet




  Web Server
Application Server




                     Database
It goes like this...
                     The Internet




  Web Server
Application Server




                                    Slaves RO




    Master RW
It goes like this...
                     The Internet




  Web Server
Application Server




   Master RW
                                    Slaves RO
It goes like this...
                                 The Internet




   Web Server
 Application Server




  Caches




              Master RW                           Slaves RO




                      Evil Machines Corporation
It goes like this...
                                    The Internet




      CPUs will be idle
    Disks will be sleeping
      Network will be
      Web Server
    Application Server




         underused
... and your users will be
     Caches




        complaining...
                 Master RW                           Slaves RO




                         Evil Machines Corporation
Why should I care ?


 “But we are using the
       Cloud !”
Why should I care ?

•   So now you’re in an
    utility computing model
•   You’re charged per usage
Why should I care ?

“Updating performance
counters will make my
  code run slower”
Why should I care ?
•   Datacenter Average CPU
    utilization is around 15%
•   If updating performance
    counters is a problem then you
    really need them
• Those microseconds will save
    you hours of troubleshooting !
Why should I care ?


“These are non-functional
     requirements”
Why should I care ?
               Distinct     Query      Revenue/       Any Clicks   Satisfaction Time to Click
             Queries/User Refinement      User                                    (increase in
                                                                                     ms)

 50ms                  0           0              0            0             0             0
 200ms                 0           0              0 -0,30% -0,40%                      500
 500ms                 0 -0,60% -1,20% -1,00% -0,90%                                 1200
 1000ms -0,70% -0,90% -2,80% -1,90% -1,60%                                           1900
 2000ms -1,80% -2,10% -4,30% -4,40% -3,80%                                           3100

The User and Business Impact of Server Delays, Additional Bytes, and HTTP
Chunking in Web Search - Eric Schurman (Amazon), Jake Brutlag (Google)
http://velocityconf.com/velocity2009/public/schedule/detail/8523
Why should I care ?

“Fast isn’t a feature, fast is
a Requirement”
                 Jesse Robins - OPSCode
What should I
 measure ?
Queues
The not so typical performance metrics

• Invented the fields of traffic
  engineering and queuing theory
• 1909 - Published “The theory of
  Probabilities and Telephone
  Conversations”                            Agner Krarup Erlang




• 1917 - Published “Solution of some
  Problems in the Theory of Probabilities
  of Significance in Automatic Telephone
  Exchanges"
Queues
The not so typical performance metrics
• 1961 - CTSS was first
  demonstrated at MIT
• 1965 - Allan Scherr used
  machine repairman
  problem to model a
  time-shared system as
  part of Project MAC
• Another offspring of
  Project MAC is Multics
Queues
                The not so typical performance metrics

                  • IBM System/370 model 158-3 - 1.0 MIPS @
                           1.0 MHz -1972
                         • Average purchase price: $ 771,000*
                          • No disks or peripherals included
                         • $ 4,082,039 by 2011
                  • Intel Core i7 Extreme Edition 990x
                           released in 2011 peaks 159,000 MIPS @
                           3,46GHz
* Source: http://www-03.ibm.com/ibm/history/exhibits/mainframe/mainframe_PP3135.html
Queues
The not so typical performance metrics

          Computer System
                            Disks



                  CPU
Queues
The not so typical performance metrics

          (A)    λ                          X   (C)
                                        S
Open/Closed               W
 Network                        R
    A                Arrival Count
    λ              Arrival Rate (A/T)
    W            Time spent in Queue
    R            Residence Time (W+S)
    S                Service Time
    X           System Throughput (C/T)
    C           Completed tasks count
Arrival Rate (λ)
• Pretty straightforward
• Requests per second/hour/day
• Not the same as throughput (X)
 • Although in a steady state:
   • A = C as T →∞
   • λ=X
Service Time (S)

• Time spent in processing
 • Web server response time
 • Total query time
 • IO operation time length
What to look for ?

• Stretch factor
• Method Count
• Method Service Time
• Geolocation
• Inbound & Outbound Traffic
• Round Trip Delays
What should I
 measure?


   Average Hits/s = 65.142
   Average Svc time = 0.0159
What should I
        measure ?
• A simple tag collection data store
• For each data operation:
 • A 64 bit counter for the number of calls
 • An average counter for the service time
What should I
          measure ?
   Method          Call Count   Service Time (ms)

  dbConnect          1.876            11,2
  fetchDatum       19.987.182         12,4
  postDatum         1.285.765         98,4
 deleteDatum        312.873           31,1
   fetchKeys       27.334.983        278,3
fetchCollection    34.873.194        211,9
createCollection    118.853          219,4
What should I
                        measure ?
                                       Call Count x Service Time



                                                          fetchKeys
                    createCollection
Service Time (ms)




                                                                   fetchCollection




                     deleteDatum


                    postDatum
                    dbConnect                        fetchDatum
                                            Call Count
References
Guerrilla Capacity Planning:
A Tactical Approach to
Planning for Highly Scalable
Applications and Services
Neil J. Gunther
http://goo.gl/59wJg
References

Analyzing Computer
Systems Performance: With
Perl::PDQ
Neil J. Gunther
http://goo.gl/MZ85L
References

Performance by Design:
Computer Capacity
Planning By Example
Daniel A. Menasce et al.
http://goo.gl/NJhwT
References

The Art of Capacity
Planning: Scaling Web
Resources
John Allspaw
http://goo.gl/l8szV
References
Capacity Planning for Web
Performance: Metrics,
Models, and Methods
Daniel Menasce & Virgilio
Almeida
http://goo.gl/KsBM6
References
Measure IT:
     http://www.cmg.org/measureit/
CMG Conference Proceedings:
     http://www.cmg.org/proceedings/
CMG Brazilian Chapter:
     http://cmgbrasil.posterous.com/
Last but not least...

Measure what is
measurable, and make
measurable what is not so.
               Galileo Galilei
Performance Oriented Design

Más contenido relacionado

La actualidad más candente

Improving The Economics of Mainframe SOA Enablement: Exploiting zIIP/zAAP Spe...
Improving The Economics of Mainframe SOA Enablement: Exploiting zIIP/zAAP Spe...Improving The Economics of Mainframe SOA Enablement: Exploiting zIIP/zAAP Spe...
Improving The Economics of Mainframe SOA Enablement: Exploiting zIIP/zAAP Spe...
Mike Nelson
 
Coates bosc2010 clouds-fluff-and-no-substance
Coates bosc2010 clouds-fluff-and-no-substanceCoates bosc2010 clouds-fluff-and-no-substance
Coates bosc2010 clouds-fluff-and-no-substance
BOSC 2010
 

La actualidad más candente (9)

Improving The Economics of Mainframe SOA Enablement: Exploiting zIIP/zAAP Spe...
Improving The Economics of Mainframe SOA Enablement: Exploiting zIIP/zAAP Spe...Improving The Economics of Mainframe SOA Enablement: Exploiting zIIP/zAAP Spe...
Improving The Economics of Mainframe SOA Enablement: Exploiting zIIP/zAAP Spe...
 
Gluecon 2013 - Netflix Cloud Native Tutorial Details (part 2)
Gluecon 2013 - Netflix Cloud Native Tutorial Details (part 2)Gluecon 2013 - Netflix Cloud Native Tutorial Details (part 2)
Gluecon 2013 - Netflix Cloud Native Tutorial Details (part 2)
 
Virtualising Tier 1 Apps
Virtualising Tier 1 AppsVirtualising Tier 1 Apps
Virtualising Tier 1 Apps
 
Google Compute and MapR
Google Compute and MapRGoogle Compute and MapR
Google Compute and MapR
 
Coates bosc2010 clouds-fluff-and-no-substance
Coates bosc2010 clouds-fluff-and-no-substanceCoates bosc2010 clouds-fluff-and-no-substance
Coates bosc2010 clouds-fluff-and-no-substance
 
Alibaba cloud benchmarking report ecs rds limton xavier
Alibaba cloud benchmarking report ecs  rds limton xavierAlibaba cloud benchmarking report ecs  rds limton xavier
Alibaba cloud benchmarking report ecs rds limton xavier
 
DB 11g R2 Keynote: Consolidate On Low Cost Server And Storage Grids
DB 11g R2 Keynote: Consolidate On Low Cost Server And Storage GridsDB 11g R2 Keynote: Consolidate On Low Cost Server And Storage Grids
DB 11g R2 Keynote: Consolidate On Low Cost Server And Storage Grids
 
OTM in the Cloud - OTM SIG 2012
OTM in the Cloud - OTM SIG 2012OTM in the Cloud - OTM SIG 2012
OTM in the Cloud - OTM SIG 2012
 
Webinar on RISC-V
Webinar on RISC-VWebinar on RISC-V
Webinar on RISC-V
 

Destacado

Melhores práticas para obter Performance no Storage por Antonio Cesar Sartora...
Melhores práticas para obter Performance no Storage por Antonio Cesar Sartora...Melhores práticas para obter Performance no Storage por Antonio Cesar Sartora...
Melhores práticas para obter Performance no Storage por Antonio Cesar Sartora...
Joao Galdino Mello de Souza
 
Software Optimization and Tuning Techniques for z13 (As mentiras do ontem, um...
Software Optimization and Tuning Techniques for z13 (As mentiras do ontem, um...Software Optimization and Tuning Techniques for z13 (As mentiras do ontem, um...
Software Optimization and Tuning Techniques for z13 (As mentiras do ontem, um...
Joao Galdino Mello de Souza
 

Destacado (8)

Melhores práticas para obter Performance no Storage por Antonio Cesar Sartora...
Melhores práticas para obter Performance no Storage por Antonio Cesar Sartora...Melhores práticas para obter Performance no Storage por Antonio Cesar Sartora...
Melhores práticas para obter Performance no Storage por Antonio Cesar Sartora...
 
Análise de Segurança e Desempenho na Detecção de Intrusão em Redes de Automaç...
Análise de Segurança e Desempenho na Detecção de Intrusão em Redes de Automaç...Análise de Segurança e Desempenho na Detecção de Intrusão em Redes de Automaç...
Análise de Segurança e Desempenho na Detecção de Intrusão em Redes de Automaç...
 
Quantas Instruções por Ciclo?
Quantas Instruções por Ciclo?Quantas Instruções por Ciclo?
Quantas Instruções por Ciclo?
 
Falando de Testes de Desempenho - por Evandro Grezeli
Falando de Testes de Desempenho - por Evandro GrezeliFalando de Testes de Desempenho - por Evandro Grezeli
Falando de Testes de Desempenho - por Evandro Grezeli
 
Como configurar seu zSystem para workloads rebeldes
Como configurar seu zSystem para workloads rebeldesComo configurar seu zSystem para workloads rebeldes
Como configurar seu zSystem para workloads rebeldes
 
Estudo comparativo entre treinamento supervisionado e não supervisionado em a...
Estudo comparativo entre treinamento supervisionado e não supervisionado em a...Estudo comparativo entre treinamento supervisionado e não supervisionado em a...
Estudo comparativo entre treinamento supervisionado e não supervisionado em a...
 
Software Optimization and Tuning Techniques for z13 (As mentiras do ontem, um...
Software Optimization and Tuning Techniques for z13 (As mentiras do ontem, um...Software Optimization and Tuning Techniques for z13 (As mentiras do ontem, um...
Software Optimization and Tuning Techniques for z13 (As mentiras do ontem, um...
 
Quantas Instruções por Ciclo?
Quantas Instruções por Ciclo?Quantas Instruções por Ciclo?
Quantas Instruções por Ciclo?
 

Similar a Performance Oriented Design

Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
xlight
 
Azug - successfully breeding rabits
Azug - successfully breeding rabitsAzug - successfully breeding rabits
Azug - successfully breeding rabits
Yves Goeleven
 

Similar a Performance Oriented Design (20)

Capacity Planning for fun & profit
Capacity Planning for fun & profitCapacity Planning for fun & profit
Capacity Planning for fun & profit
 
John adams talk cloudy
John adams   talk cloudyJohn adams   talk cloudy
John adams talk cloudy
 
Fixing twitter
Fixing twitterFixing twitter
Fixing twitter
 
Fixing_Twitter
Fixing_TwitterFixing_Twitter
Fixing_Twitter
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
 
Scaling habits of ASP.NET
Scaling habits of ASP.NETScaling habits of ASP.NET
Scaling habits of ASP.NET
 
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
 
Azug - successfully breeding rabits
Azug - successfully breeding rabitsAzug - successfully breeding rabits
Azug - successfully breeding rabits
 
Become a Performance Diagnostics Hero
Become a Performance Diagnostics HeroBecome a Performance Diagnostics Hero
Become a Performance Diagnostics Hero
 
Your Linux AMI: Optimization and Performance (CPN302) | AWS re:Invent 2013
Your Linux AMI: Optimization and Performance (CPN302) | AWS re:Invent 2013Your Linux AMI: Optimization and Performance (CPN302) | AWS re:Invent 2013
Your Linux AMI: Optimization and Performance (CPN302) | AWS re:Invent 2013
 
Robotics technical Presentation
Robotics technical PresentationRobotics technical Presentation
Robotics technical Presentation
 
E g innovations overview
E g innovations overviewE g innovations overview
E g innovations overview
 
Anton Boyko "The future of serverless computing"
Anton Boyko "The future of serverless computing"Anton Boyko "The future of serverless computing"
Anton Boyko "The future of serverless computing"
 
Chirp 2010: Scaling Twitter
Chirp 2010: Scaling TwitterChirp 2010: Scaling Twitter
Chirp 2010: Scaling Twitter
 
Spark Summit EU talk by Nick Pentreath
Spark Summit EU talk by Nick PentreathSpark Summit EU talk by Nick Pentreath
Spark Summit EU talk by Nick Pentreath
 
Tools. Techniques. Trouble?
Tools. Techniques. Trouble?Tools. Techniques. Trouble?
Tools. Techniques. Trouble?
 
How to Build High Performance : WordPress
How to Build High Performance : WordPressHow to Build High Performance : WordPress
How to Build High Performance : WordPress
 
Top Java Performance Problems and Metrics To Check in Your Pipeline
Top Java Performance Problems and Metrics To Check in Your PipelineTop Java Performance Problems and Metrics To Check in Your Pipeline
Top Java Performance Problems and Metrics To Check in Your Pipeline
 
Deep Dive on Delivering Amazon EC2 Instance Performance
Deep Dive on Delivering Amazon EC2 Instance PerformanceDeep Dive on Delivering Amazon EC2 Instance Performance
Deep Dive on Delivering Amazon EC2 Instance Performance
 

Más de Rodrigo Campos

Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Desempenho e Escalabilidade de Banco de Dados em ambiente x86Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Rodrigo Campos
 
Cloud Computing Oportunidades e Desafios
Cloud Computing Oportunidades e DesafiosCloud Computing Oportunidades e Desafios
Cloud Computing Oportunidades e Desafios
Rodrigo Campos
 
CMG 2012 - Tuning where it matters - Gerry Tuddenham
CMG 2012 - Tuning where it matters - Gerry TuddenhamCMG 2012 - Tuning where it matters - Gerry Tuddenham
CMG 2012 - Tuning where it matters - Gerry Tuddenham
Rodrigo Campos
 
Racionalização e Otimização de Energia em Computação na Nuvem
Racionalização e Otimização de Energia em Computação na NuvemRacionalização e Otimização de Energia em Computação na Nuvem
Racionalização e Otimização de Energia em Computação na Nuvem
Rodrigo Campos
 

Más de Rodrigo Campos (20)

Velocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOpsVelocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOps
 
DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014
 
7Masters Webops in the Cloud
7Masters Webops in the Cloud7Masters Webops in the Cloud
7Masters Webops in the Cloud
 
14 guendert pres
14 guendert pres14 guendert pres
14 guendert pres
 
Large and Giant Pages
Large and Giant PagesLarge and Giant Pages
Large and Giant Pages
 
Otimização holistica de ambiente computacional
Otimização holistica de ambiente computacionalOtimização holistica de ambiente computacional
Otimização holistica de ambiente computacional
 
Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Desempenho e Escalabilidade de Banco de Dados em ambiente x86Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Desempenho e Escalabilidade de Banco de Dados em ambiente x86
 
13 coelho final-pres
13 coelho final-pres13 coelho final-pres
13 coelho final-pres
 
Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!
 
z/VM Performance Analysis
z/VM Performance Analysisz/VM Performance Analysis
z/VM Performance Analysis
 
Sistemas de proteção de perímetro
Sistemas de proteção de perímetroSistemas de proteção de perímetro
Sistemas de proteção de perímetro
 
Devops at Walmart GeC Brazil
Devops at Walmart GeC BrazilDevops at Walmart GeC Brazil
Devops at Walmart GeC Brazil
 
Disk IO Benchmarking in shared multi-tenant environments
Disk IO Benchmarking in shared multi-tenant environmentsDisk IO Benchmarking in shared multi-tenant environments
Disk IO Benchmarking in shared multi-tenant environments
 
Cloud Computing Oportunidades e Desafios
Cloud Computing Oportunidades e DesafiosCloud Computing Oportunidades e Desafios
Cloud Computing Oportunidades e Desafios
 
The good, the bad and the big... data
The good, the bad and the big... dataThe good, the bad and the big... data
The good, the bad and the big... data
 
CMG 2012 - Tuning where it matters - Gerry Tuddenham
CMG 2012 - Tuning where it matters - Gerry TuddenhamCMG 2012 - Tuning where it matters - Gerry Tuddenham
CMG 2012 - Tuning where it matters - Gerry Tuddenham
 
A Consumerização da TI e o Efeito BYOT
A Consumerização da TI e o Efeito BYOTA Consumerização da TI e o Efeito BYOT
A Consumerização da TI e o Efeito BYOT
 
CMG Brasil 2012 - Uso de Lines nos z196
CMG Brasil 2012 - Uso de Lines nos z196CMG Brasil 2012 - Uso de Lines nos z196
CMG Brasil 2012 - Uso de Lines nos z196
 
Racionalização e Otimização de Energia em Computação na Nuvem
Racionalização e Otimização de Energia em Computação na NuvemRacionalização e Otimização de Energia em Computação na Nuvem
Racionalização e Otimização de Energia em Computação na Nuvem
 
SDN - Openflow + OpenVSwitch + Quantum
SDN - Openflow + OpenVSwitch + QuantumSDN - Openflow + OpenVSwitch + Quantum
SDN - Openflow + OpenVSwitch + Quantum
 

Último

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Último (20)

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

Performance Oriented Design

  • 1. Performance Oriented Design QCon São Paulo 2011 Rodrigo Albani de Campos - @xinu camposr@gmail.com
  • 2. Agenda • Performance & Design • Why should I care ? • What should I measure ? • References
  • 3. What is performance ? the capabilities of a machine or product, esp. when observed under particular conditions : the hardware is put through tests which assess the performance of the processor.
  • 4. What is design ? his design of reaching the top: intention, aim, purpose, plan, intent, objective, object, goal, end, target; hope, desire, wish, dream, aspiration, ambition.
  • 6.
  • 7.
  • 8.
  • 9. Underlying Operating Systems Read IOPS IO Wait Page Faults Run Queue Disk Usage # users USER CPU SYSTEM CPU Resident Size Write IOPS Network Traffic Memory Usage Page out Interrupts Page in Packet Loss Network Collision # processes Buffers Kernel Tables
  • 11. Apr 25, 2011 5:44:02 PM org.apache.fop.fo.FOTreeBuilder fatalError SEVERE: javax.xml.transform.TransformerException: java.lang.NullPointerException: Parameter alpha must not be null Apr 25, 2011 5:44:02 PM org.apache.fop.cli.Main startFOP SEVERE: Exception javax.xml.transform.TransformerException: java.lang.NullPointerException: Parameter alpha must not be null at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:217) at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:125) at org.apache.fop.cli.Main.startFOP(Main.java:166) at org.apache.fop.cli.Main.main(Main.java:197) Caused by: javax.xml.transform.TransformerException: java.lang.NullPointerException: Parameter alpha must not be null at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2416) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul t.java:1374) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( ElemApplyTemplates.java:393) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla tes.java:176)
  • 12. We’ve been riding space shuttles blindfolded handcuffed
  • 13. Why should I care ?
  • 14. Why should I care ? Capacity planning is not just about the future anymore. Today, there is a serious need to squeeze more out of your current capital equipment. The Guerrilla Manual Online http://www.perfdynamics.com/Manifesto/gcaprules.html
  • 15. Why should I care ? “Our systems are very simple, there’s no need for such performance metrics”
  • 16. It goes like this... The Internet Web Server Application Server Database
  • 17. It goes like this... The Internet Web Server Application Server Database
  • 18. It goes like this... The Internet Web Server Application Server Database
  • 19. It goes like this... The Internet Web Server Application Server Slaves RO Master RW
  • 20. It goes like this... The Internet Web Server Application Server Master RW Slaves RO
  • 21. It goes like this... The Internet Web Server Application Server Caches Master RW Slaves RO Evil Machines Corporation
  • 22. It goes like this... The Internet CPUs will be idle Disks will be sleeping Network will be Web Server Application Server underused ... and your users will be Caches complaining... Master RW Slaves RO Evil Machines Corporation
  • 23.
  • 24. Why should I care ? “But we are using the Cloud !”
  • 25. Why should I care ? • So now you’re in an utility computing model • You’re charged per usage
  • 26. Why should I care ? “Updating performance counters will make my code run slower”
  • 27. Why should I care ? • Datacenter Average CPU utilization is around 15% • If updating performance counters is a problem then you really need them • Those microseconds will save you hours of troubleshooting !
  • 28. Why should I care ? “These are non-functional requirements”
  • 29. Why should I care ? Distinct Query Revenue/ Any Clicks Satisfaction Time to Click Queries/User Refinement User (increase in ms) 50ms 0 0 0 0 0 0 200ms 0 0 0 -0,30% -0,40% 500 500ms 0 -0,60% -1,20% -1,00% -0,90% 1200 1000ms -0,70% -0,90% -2,80% -1,90% -1,60% 1900 2000ms -1,80% -2,10% -4,30% -4,40% -3,80% 3100 The User and Business Impact of Server Delays, Additional Bytes, and HTTP Chunking in Web Search - Eric Schurman (Amazon), Jake Brutlag (Google) http://velocityconf.com/velocity2009/public/schedule/detail/8523
  • 30. Why should I care ? “Fast isn’t a feature, fast is a Requirement” Jesse Robins - OPSCode
  • 31. What should I measure ?
  • 32. Queues The not so typical performance metrics • Invented the fields of traffic engineering and queuing theory • 1909 - Published “The theory of Probabilities and Telephone Conversations” Agner Krarup Erlang • 1917 - Published “Solution of some Problems in the Theory of Probabilities of Significance in Automatic Telephone Exchanges"
  • 33. Queues The not so typical performance metrics • 1961 - CTSS was first demonstrated at MIT • 1965 - Allan Scherr used machine repairman problem to model a time-shared system as part of Project MAC • Another offspring of Project MAC is Multics
  • 34. Queues The not so typical performance metrics • IBM System/370 model 158-3 - 1.0 MIPS @ 1.0 MHz -1972 • Average purchase price: $ 771,000* • No disks or peripherals included • $ 4,082,039 by 2011 • Intel Core i7 Extreme Edition 990x released in 2011 peaks 159,000 MIPS @ 3,46GHz * Source: http://www-03.ibm.com/ibm/history/exhibits/mainframe/mainframe_PP3135.html
  • 35. Queues The not so typical performance metrics Computer System Disks CPU
  • 36. Queues The not so typical performance metrics (A) λ X (C) S Open/Closed W Network R A Arrival Count λ Arrival Rate (A/T) W Time spent in Queue R Residence Time (W+S) S Service Time X System Throughput (C/T) C Completed tasks count
  • 37. Arrival Rate (λ) • Pretty straightforward • Requests per second/hour/day • Not the same as throughput (X) • Although in a steady state: • A = C as T →∞ • λ=X
  • 38. Service Time (S) • Time spent in processing • Web server response time • Total query time • IO operation time length
  • 39. What to look for ? • Stretch factor • Method Count • Method Service Time • Geolocation • Inbound & Outbound Traffic • Round Trip Delays
  • 40. What should I measure? Average Hits/s = 65.142 Average Svc time = 0.0159
  • 41. What should I measure ? • A simple tag collection data store • For each data operation: • A 64 bit counter for the number of calls • An average counter for the service time
  • 42. What should I measure ? Method Call Count Service Time (ms) dbConnect 1.876 11,2 fetchDatum 19.987.182 12,4 postDatum 1.285.765 98,4 deleteDatum 312.873 31,1 fetchKeys 27.334.983 278,3 fetchCollection 34.873.194 211,9 createCollection 118.853 219,4
  • 43. What should I measure ? Call Count x Service Time fetchKeys createCollection Service Time (ms) fetchCollection deleteDatum postDatum dbConnect fetchDatum Call Count
  • 44. References Guerrilla Capacity Planning: A Tactical Approach to Planning for Highly Scalable Applications and Services Neil J. Gunther http://goo.gl/59wJg
  • 45. References Analyzing Computer Systems Performance: With Perl::PDQ Neil J. Gunther http://goo.gl/MZ85L
  • 46. References Performance by Design: Computer Capacity Planning By Example Daniel A. Menasce et al. http://goo.gl/NJhwT
  • 47. References The Art of Capacity Planning: Scaling Web Resources John Allspaw http://goo.gl/l8szV
  • 48. References Capacity Planning for Web Performance: Metrics, Models, and Methods Daniel Menasce & Virgilio Almeida http://goo.gl/KsBM6
  • 49. References Measure IT: http://www.cmg.org/measureit/ CMG Conference Proceedings: http://www.cmg.org/proceedings/ CMG Brazilian Chapter: http://cmgbrasil.posterous.com/
  • 50. Last but not least... Measure what is measurable, and make measurable what is not so. Galileo Galilei