SlideShare a Scribd company logo
1 of 52
Download to read offline
Capacity Planning
    for Web Operations




        John Allspaw
    Operations Engineering
Are you tracking how
  your servers are
    performing?
                             ?
                            Do you know how
                            many servers do
                                you have?




Do you know
 how much               Are you tracking how
 tra!c can             your application is being
your servers                    used ?
  handle?
 (without dying)
monitoring


testing                          deployment

               forecasting
  architecture
                                     metrics

   product planning          capex


                   procurement
monitoring


testing                  deployment
                   go see Adam Jacob’s talk!
               forecasting
  architecture
                                    metrics

   product planning         capex


                  procurement
traditional capacity planning
capacity planning for web
Why capacity planning is
      important

            Hardware* costs $$

        (Cloudware costs $$, too)

Having too little is bad (!@#!!) -> ($$$)

   Having too much is bad ($$$$!)



    * and network, datacenter space, power, etc.
Growth

     “Normal”
                  projected
                  planned           (yay!)
                  expected
                  hoped for

“Instantaneous”
                  spikes             (yay?)
                  unexpected
                  external events    (omg! wtf!)
                  digg, etc.
“Normal” growth at Flickr
              in a year....



 4x increase in photo requests/sec

  2.2x increase in uploads/day
3x increase in database queries/sec
Yahoo! FrontPage link
    XMas lights




              “Instantaneous”
“Instantaneous” coping


 - Disabling “heavier” features on the site

 - Cache aggressively or serve stale data

  - Bake dynamic pages into static ones
capacity != performance

  Making something fast
doesn’t necessarily make it
           last
                              Performance tuning = good, just
                                     don’t count on it

       Accept (for now) the performance you
       have, not the performance you wished you
       had, or you think you might have later
Stewart:
    “Allspaw!!!! OMG!!!”




   How many servers will
    we need next year?!
   (we need to tell finance by 2pm today)
“Ah, just buy twice as
  much as we need”


   2 x (how much we need) = ?
measurement
Good capacity
measurement tools can...

 Easily measure and record any number
         that changes over time

 Easily compare metrics to any other
 metrics from anywhere else
 (import/export)

         Easily make graphs
good tools are out there


cacti.net            munin.projects.linpro.no



       hyperic.com




                              ganglia.info
good tools are out there


cacti.net                 munin.projects.linpro.no



       hyperic.com


            Flickr uses
                                   ganglia.info
photo
uploads
  via
 email
  per
minute



                    hour

          application metrics
your stu!, not just system
            stu!

photos uploaded (and processed) per minute
 average photo processing time per minute
            average photo size
       disk space consumed per day
         user registrations per day
                etc etc etc
your stu!, not just system
               stu!

photos uploaded (and processed) per minute
    average photo processing time per minute
               average photo size
          disk space consumed per day
            user registrations per day
                   etc etc etc
Tie application metrics to
     system metrics




       Pretty!! But what does
             this mean?
It means that with about
    60% total CPU...




   It means we can
       process
   ~120 images per
       minute

     ...and we can
    process them in
     ~3.5 seconds
       (on average)
Benchmarking

Great for comparing hardware platforms
and configurations




                 BUT
   Doesn’t represent real workloads
not exactly like a
 bike messenger
Finding your ceilings

• Use real data, from production servers
  (if at all possible)
• No, really
How much traffic can each webserver
       take before it dies?

How many webservers can fail
   before we’re screwed?


When should I add more webservers?
people




                          LBs


webservers




     (databases, etc.)
people


                                  network

                          LBs
                                      cpu
                                            memory

webservers
                                            disk usage

                                               disk i/o



     (databases, etc.)
people


                                  network

                          LBs
                                      cpu
                                            memory

webservers
                                            disk usage

                                               disk i/o



     (databases, etc.)                - comments/min
                                      - photos/min
                                      - videos/min
                                      - kittens/min
                                      - etc etc etc/min
people




                          LBs


webservers




     (databases, etc.)
people




                          LBs


webservers




     (databases, etc.)
people




                          LBs


webservers




     (databases, etc.)
what happens here?




Ceiling = upper limit of “work” (and resources)
Trends of peaks




      Time
Benchmarking
Might be your only option if you have a single server.


          some good benchmarking tools:

                                Siege
                  http://www.joedog.org/JoeDog/Siege

                       httperf/autobench
            http://www.hpl.hp.com/research/linux/httperf/
                 http://www.xenoclast.org/autobench

                              sysbench
                         http://sysbench.sf.net
Economics
Time makes everything
      cheaper
      (the Moore’s Law thing)

               BUT



 you don’t have a lot of time to
     wait around, do you?
Vertical scaling
Horizontal architectures
Diagonal scaling
Diagonal scaling




Replacing 67 dual-core webservers with 18 dual
                    quads
Diagonal scaling




more traquot;c from less machines
Diagonal Scaling

servers   CPUs           RAM         drives       total power (W)
                                                    @60% peak
          per server    per server   per server

  67          2           4GB        1x80GB         8763.6

  18          8          4GB         1x146GB        2332.8


                   ~70% less power
                  49U less rack space
Utility Computing




Disclosure: We don’t use clouds at Flickr.
      (but we know folks who do)
clouds


  Help with deployment timelines
  Help with procurement timelines
                  BUT
      Still have to pay attention
Many people use the same forecasting
               methods
Use Common Sense(tm)
      Pay attention to the right metrics

   Don’t pretend to know the exact future

     Measure constantly, adapt constantly

  Complex simulation and modeling is rarely
                  worth it

Don’t expect tuning and tweaking will ever win
          you any excess capacity
Some more stats
   Serving 32,000 photos per second at peak


         Consuming 6-8TB per day


Consumed >34TB per day during Y!Photos migration



  ~3M uploads per day, 60 per second at peak
June 23-24, 2008

 20% off discount: “vel08js”
We Are Hiring!
            (DBA, engineers)

 http://flickr.com/photos/85013738@N00/542591121/
 http://flickr.com/photos/formatc1/2301500208/
 http://flickr.com/photos/mikefats/11546240/
 http://flickr.com/photos/kanaka/491064256/
 http://flickr.com/photos/randysonofrobert/1035003071/
 http://flickr.com/photos/halcyonsnow/446166047/
 http://flickr.com/photos/wwworks/2313927146/
 http://flickr.com/photos/sunxez/1392677065/
 http://flickr.com/photos/spacesuitcatalyst/536389937/
 http://flickr.com/photos/theklan/1276710183/

More Related Content

Similar to CAPACITY Capacity Planning for Web Operations

Capacity Management from Flickr
Capacity Management from FlickrCapacity Management from Flickr
Capacity Management from Flickrxlight
 
Performance Oriented Design
Performance Oriented DesignPerformance Oriented Design
Performance Oriented DesignRodrigo Campos
 
Continuous Deployment: The Dirty Details
Continuous Deployment: The Dirty DetailsContinuous Deployment: The Dirty Details
Continuous Deployment: The Dirty DetailsMike Brittain
 
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978David Chou
 
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-substanceBOSC 2010
 
Virtualization and Cloud Computing with Elastic Server On Demand
Virtualization and Cloud Computing with Elastic Server On DemandVirtualization and Cloud Computing with Elastic Server On Demand
Virtualization and Cloud Computing with Elastic Server On DemandYan Pritzker
 
Java Tools and Techniques for Solving Tricky Problem
Java Tools and Techniques for Solving Tricky ProblemJava Tools and Techniques for Solving Tricky Problem
Java Tools and Techniques for Solving Tricky ProblemWill Iverson
 
Quilt - Distributed Load Simulation from AWS
Quilt - Distributed Load Simulation from AWSQuilt - Distributed Load Simulation from AWS
Quilt - Distributed Load Simulation from AWSAjith Jose
 
Beat the devil: towards a Drupal performance benchmark
Beat the devil: towards a Drupal performance benchmarkBeat the devil: towards a Drupal performance benchmark
Beat the devil: towards a Drupal performance benchmarkPedro González Serrano
 
Architecting Scalable Applications in the Cloud
Architecting Scalable Applications in the CloudArchitecting Scalable Applications in the Cloud
Architecting Scalable Applications in the CloudClint Edmonson
 
PHP – Faster And Cheaper. Scale Vertically with IBM i
PHP – Faster And Cheaper. Scale Vertically with IBM iPHP – Faster And Cheaper. Scale Vertically with IBM i
PHP – Faster And Cheaper. Scale Vertically with IBM iSam Hennessy
 
Azug - successfully breeding rabits
Azug - successfully breeding rabitsAzug - successfully breeding rabits
Azug - successfully breeding rabitsYves Goeleven
 
Clouds: All fluff and no substance?
Clouds: All fluff and no substance?Clouds: All fluff and no substance?
Clouds: All fluff and no substance?Guy Coates
 
Chef's Coffee - provisioning Java applications with Chef (@pavlobaron)
Chef's Coffee - provisioning Java applications with Chef (@pavlobaron)Chef's Coffee - provisioning Java applications with Chef (@pavlobaron)
Chef's Coffee - provisioning Java applications with Chef (@pavlobaron)Pavlo Baron
 
Essential Data Engineering for Data Scientist
Essential Data Engineering for Data Scientist Essential Data Engineering for Data Scientist
Essential Data Engineering for Data Scientist SoftServe
 
Innovation dank DevOps (DevOpsCon Berlin 2015)
Innovation dank DevOps (DevOpsCon Berlin 2015)Innovation dank DevOps (DevOpsCon Berlin 2015)
Innovation dank DevOps (DevOpsCon Berlin 2015)Wooga
 
Big Data Anti-Patterns: Lessons From the Front LIne
Big Data Anti-Patterns: Lessons From the Front LIneBig Data Anti-Patterns: Lessons From the Front LIne
Big Data Anti-Patterns: Lessons From the Front LIneDouglas Moore
 
AWS CZSK Webinar - Migrácia desktopov a aplikácií do AWS cloudu s Amazon Work...
AWS CZSK Webinar - Migrácia desktopov a aplikácií do AWS cloudu s Amazon Work...AWS CZSK Webinar - Migrácia desktopov a aplikácií do AWS cloudu s Amazon Work...
AWS CZSK Webinar - Migrácia desktopov a aplikácií do AWS cloudu s Amazon Work...Vladimir Simek
 
Virtualization and SAN Basics for DBAs
Virtualization and SAN Basics for DBAsVirtualization and SAN Basics for DBAs
Virtualization and SAN Basics for DBAsQuest Software
 
Evolving Archetecture
Evolving ArchetectureEvolving Archetecture
Evolving Archetectureleo lapworth
 

Similar to CAPACITY Capacity Planning for Web Operations (20)

Capacity Management from Flickr
Capacity Management from FlickrCapacity Management from Flickr
Capacity Management from Flickr
 
Performance Oriented Design
Performance Oriented DesignPerformance Oriented Design
Performance Oriented Design
 
Continuous Deployment: The Dirty Details
Continuous Deployment: The Dirty DetailsContinuous Deployment: The Dirty Details
Continuous Deployment: The Dirty Details
 
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
 
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
 
Virtualization and Cloud Computing with Elastic Server On Demand
Virtualization and Cloud Computing with Elastic Server On DemandVirtualization and Cloud Computing with Elastic Server On Demand
Virtualization and Cloud Computing with Elastic Server On Demand
 
Java Tools and Techniques for Solving Tricky Problem
Java Tools and Techniques for Solving Tricky ProblemJava Tools and Techniques for Solving Tricky Problem
Java Tools and Techniques for Solving Tricky Problem
 
Quilt - Distributed Load Simulation from AWS
Quilt - Distributed Load Simulation from AWSQuilt - Distributed Load Simulation from AWS
Quilt - Distributed Load Simulation from AWS
 
Beat the devil: towards a Drupal performance benchmark
Beat the devil: towards a Drupal performance benchmarkBeat the devil: towards a Drupal performance benchmark
Beat the devil: towards a Drupal performance benchmark
 
Architecting Scalable Applications in the Cloud
Architecting Scalable Applications in the CloudArchitecting Scalable Applications in the Cloud
Architecting Scalable Applications in the Cloud
 
PHP – Faster And Cheaper. Scale Vertically with IBM i
PHP – Faster And Cheaper. Scale Vertically with IBM iPHP – Faster And Cheaper. Scale Vertically with IBM i
PHP – Faster And Cheaper. Scale Vertically with IBM i
 
Azug - successfully breeding rabits
Azug - successfully breeding rabitsAzug - successfully breeding rabits
Azug - successfully breeding rabits
 
Clouds: All fluff and no substance?
Clouds: All fluff and no substance?Clouds: All fluff and no substance?
Clouds: All fluff and no substance?
 
Chef's Coffee - provisioning Java applications with Chef (@pavlobaron)
Chef's Coffee - provisioning Java applications with Chef (@pavlobaron)Chef's Coffee - provisioning Java applications with Chef (@pavlobaron)
Chef's Coffee - provisioning Java applications with Chef (@pavlobaron)
 
Essential Data Engineering for Data Scientist
Essential Data Engineering for Data Scientist Essential Data Engineering for Data Scientist
Essential Data Engineering for Data Scientist
 
Innovation dank DevOps (DevOpsCon Berlin 2015)
Innovation dank DevOps (DevOpsCon Berlin 2015)Innovation dank DevOps (DevOpsCon Berlin 2015)
Innovation dank DevOps (DevOpsCon Berlin 2015)
 
Big Data Anti-Patterns: Lessons From the Front LIne
Big Data Anti-Patterns: Lessons From the Front LIneBig Data Anti-Patterns: Lessons From the Front LIne
Big Data Anti-Patterns: Lessons From the Front LIne
 
AWS CZSK Webinar - Migrácia desktopov a aplikácií do AWS cloudu s Amazon Work...
AWS CZSK Webinar - Migrácia desktopov a aplikácií do AWS cloudu s Amazon Work...AWS CZSK Webinar - Migrácia desktopov a aplikácií do AWS cloudu s Amazon Work...
AWS CZSK Webinar - Migrácia desktopov a aplikácií do AWS cloudu s Amazon Work...
 
Virtualization and SAN Basics for DBAs
Virtualization and SAN Basics for DBAsVirtualization and SAN Basics for DBAs
Virtualization and SAN Basics for DBAs
 
Evolving Archetecture
Evolving ArchetectureEvolving Archetecture
Evolving Archetecture
 

More from jward5519

Google App Engine Making It Easier For Developers To Build And Scale Apps P...
Google App Engine  Making It Easier For Developers To Build And Scale Apps  P...Google App Engine  Making It Easier For Developers To Build And Scale Apps  P...
Google App Engine Making It Easier For Developers To Build And Scale Apps P...jward5519
 
Mashing Up Taking Enterprise Mashups To The Next Level Presentation
Mashing Up  Taking Enterprise Mashups To The Next Level  PresentationMashing Up  Taking Enterprise Mashups To The Next Level  Presentation
Mashing Up Taking Enterprise Mashups To The Next Level Presentationjward5519
 
Ibm Web 2 0 Goes To Work Presentation
Ibm  Web 2 0 Goes To Work PresentationIbm  Web 2 0 Goes To Work Presentation
Ibm Web 2 0 Goes To Work Presentationjward5519
 
Global Design Trends Presentation
Global Design Trends PresentationGlobal Design Trends Presentation
Global Design Trends Presentationjward5519
 
Maximizing Conversions And Overall Campaign Roi Presentation
Maximizing Conversions And Overall Campaign Roi PresentationMaximizing Conversions And Overall Campaign Roi Presentation
Maximizing Conversions And Overall Campaign Roi Presentationjward5519
 
Maximizing Ad Revenue Through Format Optimization Presentation
Maximizing Ad Revenue Through Format Optimization PresentationMaximizing Ad Revenue Through Format Optimization Presentation
Maximizing Ad Revenue Through Format Optimization Presentationjward5519
 
Free Traffic Seo Smo 101 (Search Engine Social Media Optimization) Present...
Free Traffic  Seo Smo 101 (Search Engine   Social Media Optimization) Present...Free Traffic  Seo Smo 101 (Search Engine   Social Media Optimization) Present...
Free Traffic Seo Smo 101 (Search Engine Social Media Optimization) Present...jward5519
 
Free Traffic Seo Smo 101 (Search Engine Social Media Optimization) Present...
Free Traffic  Seo Smo 101 (Search Engine   Social Media Optimization) Present...Free Traffic  Seo Smo 101 (Search Engine   Social Media Optimization) Present...
Free Traffic Seo Smo 101 (Search Engine Social Media Optimization) Present...jward5519
 
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...jward5519
 
Data Portability, Privacy, And The Emergence Of The Social Web Presentation
Data Portability, Privacy, And The Emergence Of The Social Web PresentationData Portability, Privacy, And The Emergence Of The Social Web Presentation
Data Portability, Privacy, And The Emergence Of The Social Web Presentationjward5519
 
Design Learnings From Viral Applications Presentation
Design Learnings From Viral Applications PresentationDesign Learnings From Viral Applications Presentation
Design Learnings From Viral Applications Presentationjward5519
 
Developing, Distributing, And Monetizing Web Applications With Web Ex Connect...
Developing, Distributing, And Monetizing Web Applications With Web Ex Connect...Developing, Distributing, And Monetizing Web Applications With Web Ex Connect...
Developing, Distributing, And Monetizing Web Applications With Web Ex Connect...jward5519
 
Design Learnings From Viral Applications Presentation
Design Learnings From Viral Applications PresentationDesign Learnings From Viral Applications Presentation
Design Learnings From Viral Applications Presentationjward5519
 
Capacity Planning For Web Operations Presentation
Capacity Planning For Web Operations PresentationCapacity Planning For Web Operations Presentation
Capacity Planning For Web Operations Presentationjward5519
 
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1jward5519
 
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1jward5519
 
Data Portability, Privacy, And The Emergence Of The Social Web Presentation
Data Portability, Privacy, And The Emergence Of The Social Web PresentationData Portability, Privacy, And The Emergence Of The Social Web Presentation
Data Portability, Privacy, And The Emergence Of The Social Web Presentationjward5519
 
Building An App For Social Platforms Presentation
Building An App For Social Platforms PresentationBuilding An App For Social Platforms Presentation
Building An App For Social Platforms Presentationjward5519
 
A Symfony Answer Presentation
A Symfony Answer PresentationA Symfony Answer Presentation
A Symfony Answer Presentationjward5519
 
Tools For Managing Creative Environment Presentation
Tools For Managing Creative Environment PresentationTools For Managing Creative Environment Presentation
Tools For Managing Creative Environment Presentationjward5519
 

More from jward5519 (20)

Google App Engine Making It Easier For Developers To Build And Scale Apps P...
Google App Engine  Making It Easier For Developers To Build And Scale Apps  P...Google App Engine  Making It Easier For Developers To Build And Scale Apps  P...
Google App Engine Making It Easier For Developers To Build And Scale Apps P...
 
Mashing Up Taking Enterprise Mashups To The Next Level Presentation
Mashing Up  Taking Enterprise Mashups To The Next Level  PresentationMashing Up  Taking Enterprise Mashups To The Next Level  Presentation
Mashing Up Taking Enterprise Mashups To The Next Level Presentation
 
Ibm Web 2 0 Goes To Work Presentation
Ibm  Web 2 0 Goes To Work PresentationIbm  Web 2 0 Goes To Work Presentation
Ibm Web 2 0 Goes To Work Presentation
 
Global Design Trends Presentation
Global Design Trends PresentationGlobal Design Trends Presentation
Global Design Trends Presentation
 
Maximizing Conversions And Overall Campaign Roi Presentation
Maximizing Conversions And Overall Campaign Roi PresentationMaximizing Conversions And Overall Campaign Roi Presentation
Maximizing Conversions And Overall Campaign Roi Presentation
 
Maximizing Ad Revenue Through Format Optimization Presentation
Maximizing Ad Revenue Through Format Optimization PresentationMaximizing Ad Revenue Through Format Optimization Presentation
Maximizing Ad Revenue Through Format Optimization Presentation
 
Free Traffic Seo Smo 101 (Search Engine Social Media Optimization) Present...
Free Traffic  Seo Smo 101 (Search Engine   Social Media Optimization) Present...Free Traffic  Seo Smo 101 (Search Engine   Social Media Optimization) Present...
Free Traffic Seo Smo 101 (Search Engine Social Media Optimization) Present...
 
Free Traffic Seo Smo 101 (Search Engine Social Media Optimization) Present...
Free Traffic  Seo Smo 101 (Search Engine   Social Media Optimization) Present...Free Traffic  Seo Smo 101 (Search Engine   Social Media Optimization) Present...
Free Traffic Seo Smo 101 (Search Engine Social Media Optimization) Present...
 
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
 
Data Portability, Privacy, And The Emergence Of The Social Web Presentation
Data Portability, Privacy, And The Emergence Of The Social Web PresentationData Portability, Privacy, And The Emergence Of The Social Web Presentation
Data Portability, Privacy, And The Emergence Of The Social Web Presentation
 
Design Learnings From Viral Applications Presentation
Design Learnings From Viral Applications PresentationDesign Learnings From Viral Applications Presentation
Design Learnings From Viral Applications Presentation
 
Developing, Distributing, And Monetizing Web Applications With Web Ex Connect...
Developing, Distributing, And Monetizing Web Applications With Web Ex Connect...Developing, Distributing, And Monetizing Web Applications With Web Ex Connect...
Developing, Distributing, And Monetizing Web Applications With Web Ex Connect...
 
Design Learnings From Viral Applications Presentation
Design Learnings From Viral Applications PresentationDesign Learnings From Viral Applications Presentation
Design Learnings From Viral Applications Presentation
 
Capacity Planning For Web Operations Presentation
Capacity Planning For Web Operations PresentationCapacity Planning For Web Operations Presentation
Capacity Planning For Web Operations Presentation
 
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
 
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
 
Data Portability, Privacy, And The Emergence Of The Social Web Presentation
Data Portability, Privacy, And The Emergence Of The Social Web PresentationData Portability, Privacy, And The Emergence Of The Social Web Presentation
Data Portability, Privacy, And The Emergence Of The Social Web Presentation
 
Building An App For Social Platforms Presentation
Building An App For Social Platforms PresentationBuilding An App For Social Platforms Presentation
Building An App For Social Platforms Presentation
 
A Symfony Answer Presentation
A Symfony Answer PresentationA Symfony Answer Presentation
A Symfony Answer Presentation
 
Tools For Managing Creative Environment Presentation
Tools For Managing Creative Environment PresentationTools For Managing Creative Environment Presentation
Tools For Managing Creative Environment Presentation
 

Recently uploaded

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
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 MenDelhi Call girls
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
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 Scriptwesley chun
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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...Neo4j
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
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 SolutionsEnterprise Knowledge
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

Recently uploaded (20)

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
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
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

CAPACITY Capacity Planning for Web Operations

  • 1. Capacity Planning for Web Operations John Allspaw Operations Engineering
  • 2. Are you tracking how your servers are performing? ? Do you know how many servers do you have? Do you know how much Are you tracking how tra!c can your application is being your servers used ? handle? (without dying)
  • 3. monitoring testing deployment forecasting architecture metrics product planning capex procurement
  • 4. monitoring testing deployment go see Adam Jacob’s talk! forecasting architecture metrics product planning capex procurement
  • 7. Why capacity planning is important Hardware* costs $$ (Cloudware costs $$, too) Having too little is bad (!@#!!) -> ($$$) Having too much is bad ($$$$!) * and network, datacenter space, power, etc.
  • 8. Growth “Normal” projected planned (yay!) expected hoped for “Instantaneous” spikes (yay?) unexpected external events (omg! wtf!) digg, etc.
  • 9. “Normal” growth at Flickr in a year.... 4x increase in photo requests/sec 2.2x increase in uploads/day 3x increase in database queries/sec
  • 10. Yahoo! FrontPage link XMas lights “Instantaneous”
  • 11. “Instantaneous” coping - Disabling “heavier” features on the site - Cache aggressively or serve stale data - Bake dynamic pages into static ones
  • 12. capacity != performance Making something fast doesn’t necessarily make it last Performance tuning = good, just don’t count on it Accept (for now) the performance you have, not the performance you wished you had, or you think you might have later
  • 13. Stewart: “Allspaw!!!! OMG!!!” How many servers will we need next year?! (we need to tell finance by 2pm today)
  • 14. “Ah, just buy twice as much as we need” 2 x (how much we need) = ?
  • 15.
  • 17. Good capacity measurement tools can... Easily measure and record any number that changes over time Easily compare metrics to any other metrics from anywhere else (import/export) Easily make graphs
  • 18. good tools are out there cacti.net munin.projects.linpro.no hyperic.com ganglia.info
  • 19. good tools are out there cacti.net munin.projects.linpro.no hyperic.com Flickr uses ganglia.info
  • 20. photo uploads via email per minute hour application metrics
  • 21. your stu!, not just system stu! photos uploaded (and processed) per minute average photo processing time per minute average photo size disk space consumed per day user registrations per day etc etc etc
  • 22. your stu!, not just system stu! photos uploaded (and processed) per minute average photo processing time per minute average photo size disk space consumed per day user registrations per day etc etc etc
  • 23. Tie application metrics to system metrics Pretty!! But what does this mean?
  • 24. It means that with about 60% total CPU... It means we can process ~120 images per minute ...and we can process them in ~3.5 seconds (on average)
  • 25. Benchmarking Great for comparing hardware platforms and configurations BUT Doesn’t represent real workloads
  • 26. not exactly like a bike messenger
  • 27. Finding your ceilings • Use real data, from production servers (if at all possible) • No, really
  • 28. How much traffic can each webserver take before it dies? How many webservers can fail before we’re screwed? When should I add more webservers?
  • 29. people LBs webservers (databases, etc.)
  • 30. people network LBs cpu memory webservers disk usage disk i/o (databases, etc.)
  • 31. people network LBs cpu memory webservers disk usage disk i/o (databases, etc.) - comments/min - photos/min - videos/min - kittens/min - etc etc etc/min
  • 32. people LBs webservers (databases, etc.)
  • 33. people LBs webservers (databases, etc.)
  • 34. people LBs webservers (databases, etc.)
  • 35. what happens here? Ceiling = upper limit of “work” (and resources)
  • 37. Benchmarking Might be your only option if you have a single server. some good benchmarking tools: Siege http://www.joedog.org/JoeDog/Siege httperf/autobench http://www.hpl.hp.com/research/linux/httperf/ http://www.xenoclast.org/autobench sysbench http://sysbench.sf.net
  • 39. Time makes everything cheaper (the Moore’s Law thing) BUT you don’t have a lot of time to wait around, do you?
  • 43. Diagonal scaling Replacing 67 dual-core webservers with 18 dual quads
  • 44. Diagonal scaling more traquot;c from less machines
  • 45. Diagonal Scaling servers CPUs RAM drives total power (W) @60% peak per server per server per server 67 2 4GB 1x80GB 8763.6 18 8 4GB 1x146GB 2332.8 ~70% less power 49U less rack space
  • 46.
  • 47. Utility Computing Disclosure: We don’t use clouds at Flickr. (but we know folks who do)
  • 48. clouds Help with deployment timelines Help with procurement timelines BUT Still have to pay attention Many people use the same forecasting methods
  • 49. Use Common Sense(tm) Pay attention to the right metrics Don’t pretend to know the exact future Measure constantly, adapt constantly Complex simulation and modeling is rarely worth it Don’t expect tuning and tweaking will ever win you any excess capacity
  • 50. Some more stats Serving 32,000 photos per second at peak Consuming 6-8TB per day Consumed >34TB per day during Y!Photos migration ~3M uploads per day, 60 per second at peak
  • 51. June 23-24, 2008 20% off discount: “vel08js”
  • 52. We Are Hiring! (DBA, engineers) http://flickr.com/photos/85013738@N00/542591121/ http://flickr.com/photos/formatc1/2301500208/ http://flickr.com/photos/mikefats/11546240/ http://flickr.com/photos/kanaka/491064256/ http://flickr.com/photos/randysonofrobert/1035003071/ http://flickr.com/photos/halcyonsnow/446166047/ http://flickr.com/photos/wwworks/2313927146/ http://flickr.com/photos/sunxez/1392677065/ http://flickr.com/photos/spacesuitcatalyst/536389937/ http://flickr.com/photos/theklan/1276710183/