SlideShare a Scribd company logo
1 of 44
Download to read offline
Extremely
Help, mijn site wordt populair!                   evolved
                                                  solutions
Schalen en Optimalisatie
                                                  Lorem ipsum dolor sit amet, cons
                                                  ectetuer adipiscing elit. Donec
                                                  sagittis sagittis urna. Aliquam ipsum.

                                                  Nunc in leo sed ante lacinia volutpat.

                                                  Pellentesque urna diam, aliquet
                                                  non, ullamcorper ut, volutpat lacinia,
                                                  purus.




Frank Louwers
Openminds bvba



                                                  Zilverenberg 39 - B-9000 Gent - Belgium
                                                  Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




                           pub_openminds.indd 1                                                 11/15/06 10:53:57 AM
Oh hai!




Frank Louwers
co-founder & “Mr Operations” @ Openminds
Openminds
Vanavond
       • Schaalbaarheid                                                    Extremely
           •    wat                                                        evolved
                                                                           solutions
           •    hoe                                                        Lorem ipsum dolor sit amet, cons




           •
                                                                           ectetuer adipiscing elit. Donec
                                                                           sagittis sagittis urna. Aliquam ipsum.

                => theoretisch                                             Nunc in leo sed ante lacinia volutpat.

                                                                           Pellentesque urna diam, aliquet
                                                                           non, ullamcorper ut, volutpat lacinia,
                                                                           purus.




       • Pauze
       • Tips voor webbouwers
           •    meten is weten
           •    eenvoudige technieken met snel resultaat
           •    hulp van uw hoster                                         Zilverenberg 39 - B-9000 Gent - Belgium
                                                                           Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                                 Netlab - Schaalbaarheid en Optimalisatie
                                                    pub_openminds.indd 1                                                 11/15/06 10:53:5
Schaalbaarheid en mythes
        Schaalbaarheid gaat niet over:
                                 Extremely
                                                               evolved
           •    technologie Z                                  solutions

           •
                                                               Lorem ipsum dolor sit amet, cons




                ruwe performantie en snelheid
                                                               ectetuer adipiscing elit. Donec
                                                               sagittis sagittis urna. Aliquam ipsum.

                                                               Nunc in leo sed ante lacinia volutpat.

                                                               Pellentesque urna diam, aliquet
                                                               non, ullamcorper ut, volutpat lacinia,




           •    veel enterprise level servers
                                                               purus.




           •    zeker niet over programmeertaal X of Y



                                                               Zilverenberg 39 - B-9000 Gent - Belgium
                                                               Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                     Netlab - Schaalbaarheid en Optimalisatie
                                        pub_openminds.indd 1                                                 11/15/06 10:53:5
Languages don’t scale!



                http://flickr.com/photos/lij/122525716
http://flickr.com/photos/codefin/46216344/
Architectures Scale
         http://flickr.com/photos/thomashawk/44667887/
Schaalbaarheid
        Schaalbaarheid gaat over: Extremely
                                                                evolved
           •    toename aantal bezoekers                        solutions

           •
                                                                Lorem ipsum dolor sit amet, cons




                toename hoeveelheid data
                                                                ectetuer adipiscing elit. Donec
                                                                sagittis sagittis urna. Aliquam ipsum.

                                                                Nunc in leo sed ante lacinia volutpat.

                                                                Pellentesque urna diam, aliquet
                                                                non, ullamcorper ut, volutpat lacinia,




           •    beheersbaarheid van dit alles
                                                                purus.




                                                                Zilverenberg 39 - B-9000 Gent - Belgium
                                                                Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                      Netlab - Schaalbaarheid en Optimalisatie
                                         pub_openminds.indd 1                                                 11/15/06 10:53:5
Schalen: H & V
        Vertikaal schalen                                                      Extremely
           •    “dikkere doos”                                                 evolved
                                                                               solutions
           •    op zich eenvoudig                                              Lorem ipsum dolor sit amet, cons




           •
                                                                               ectetuer adipiscing elit. Donec
                                                                               sagittis sagittis urna. Aliquam ipsum.

                prijs: dubbel zo krachtige server kost meer dan dubbel zoveel  Nunc in leo sed ante lacinia volutpat.

                                                                               Pellentesque urna diam, aliquet




                •
                                                                               non, ullamcorper ut, volutpat lacinia,


                    maar wat kost software redesignen?
                                                                               purus.




           •    biedt GEEN HA (high availability)
           •    soms juiste keuze
                •   complexe monolitische applicaties
                •   databases

                                                                               Zilverenberg 39 - B-9000 Gent - Belgium
                                                                               Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                                     Netlab - Schaalbaarheid en Optimalisatie
                                                        pub_openminds.indd 1                                                 11/15/06 10:53:5
Schalen: H & V
        Horizontaal schalen                                                    Extremely
           •    meerdere servers                                               evolved
                                                                               solutions
           •    gespecialiseerde servers                                       Lorem ipsum dolor sit amet, cons
                                                                               ectetuer adipiscing elit. Donec



                •
                                                                               sagittis sagittis urna. Aliquam ipsum.

                    database, loadbalancing, maar ook bv specifieke delen       Nunc in leo sed ante lacinia volutpat.

                                                                               Pellentesque urna diam, aliquet
                                                                               non, ullamcorper ut, volutpat lacinia,



                    •   upload / authenticatie / video transcoding
                                                                               purus.




                •   vereist soms applicatie aanpassingen (als niet voorzien)
                •   maar kan snel (als hoster capaciteit heeft)
                •   en tijdelijk (bv voor 2 dagen tot het “Digg/Techcrunch”
                    effect over is)


                                                                               Zilverenberg 39 - B-9000 Gent - Belgium
                                                                               Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                                     Netlab - Schaalbaarheid en Optimalisatie
                                                        pub_openminds.indd 1                                                 11/15/06 10:53:5
Applicatie servers
      •    eenvoudig te schalen als “Shared Nothing”
                                                                             Extremely
           •    schuift probleem “down the stack”                            evolved
      •    belangrijkste: sessie-data                                        solutions

           •
                                                                             Lorem ipsum dolor sit amet, cons


                niet elke request op zelfde server                           ectetuer adipiscing elit. Donec
                                                                             sagittis sagittis urna. Aliquam ipsum.

                                                                             Nunc in leo sed ante lacinia volutpat.




           •    lokale sessies: slecht
                                                                             Pellentesque urna diam, aliquet
                                                                             non, ullamcorper ut, volutpat lacinia,
                                                                             purus.




                •   bv PHP: standaard naar disk
           •    gecentraliseerde sessies: beter
                •   centrale databank of speciale cache (memcache)
                •   nadeel: sessiestore moet schalen (“down the stack”)
           •    geen sessies: ideaal!
                                                                             Zilverenberg 39 - B-9000 Gent - Belgium
                                                                             Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                                   Netlab - Schaalbaarheid en Optimalisatie
                                                      pub_openminds.indd 1                                                 11/15/06 10:53:5
Vergeet cookie store niet!
             http://flickr.com/photos/mr-outdoorguy/2100813932/
Ah, the stack!
       http://flickr.com/photos/keitheddleman/2124245307
Queing systemen
       •   “Wachtrijen”
       •   vaak onderschat, maar zeer handig                                     Extremely
                                                                                 evolved
       •   voor alles wat parallelliseerbaar is                                  solutions

           •
                                                                                 Lorem ipsum dolor sit amet, cons


                image conversion, video transcoding, mail uitsturen, ...         ectetuer adipiscing elit. Donec
                                                                                 sagittis sagittis urna. Aliquam ipsum.

                                                                                 Nunc in leo sed ante lacinia volutpat.




       •   meestal eenvoudig op te zetten
                                                                                 Pellentesque urna diam, aliquet
                                                                                 non, ullamcorper ut, volutpat lacinia,
                                                                                 purus.




           •    je stuurt er iets naar toe, je haalt er iets af
       •   helpen bij schalen, maar schalen zelf iets moeilijker
       •   ActiveMQ, startling (van Twitter), ...




                                                                                 Zilverenberg 39 - B-9000 Gent - Belgium
                                                                                 Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                                       Netlab - Schaalbaarheid en Optimalisatie
                                                          pub_openminds.indd 1                                                 11/15/06 10:53:5
Beste I/O
                                                             Extremely

       • Beste I/O: geen I/O                                 evolved
                                                             solutions

       • Correctie: geen disk I/O                            Lorem ipsum dolor sit amet, cons
                                                             ectetuer adipiscing elit. Donec
                                                             sagittis sagittis urna. Aliquam ipsum.




       • Disks zijn inherent traag, zelfs snelle disks
                                                             Nunc in leo sed ante lacinia volutpat.

                                                             Pellentesque urna diam, aliquet
                                                             non, ullamcorper ut, volutpat lacinia,
                                                             purus.




                                                             Zilverenberg 39 - B-9000 Gent - Belgium
                                                             Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                   Netlab - Schaalbaarheid en Optimalisatie
                                      pub_openminds.indd 1                                                 11/15/06 10:53:5
Databanken
       •   Moeilijkste component om te schalen (tenzij je heel veel files
           servet)                                         Extremely
                                                                              evolved
       •   Te weinig Read performantie?                                       solutions
           •    Meeste webapps doen 80/20 of zelfs 90/10 read/write           Lorem ipsum dolor sit amet, cons
                                                                              ectetuer adipiscing elit. Donec
                                                                              sagittis sagittis urna. Aliquam ipsum.




           •
                                                                              Nunc in leo sed ante lacinia volutpat.


                Splits read/writes in uw applicatie en gebruik master-slave   Pellentesque urna diam, aliquet
                                                                              non, ullamcorper ut, volutpat lacinia,
                                                                              purus.




           •    denormalisatie
                •   als het echt niet anders kan
       •   Te weinig Write performantie?
           •    Lastig horizontaal te schalen!
           •    master/master, cluster: zeer complex en lost niet alles op
           •    partitioning / sharding
                                                                              Zilverenberg 39 - B-9000 Gent - Belgium
                                                                              Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                                    Netlab - Schaalbaarheid en Optimalisatie
                                                       pub_openminds.indd 1                                                 11/15/06 10:53:5
Help uw databank!
       •   Juiste tabelformaat!
           •    InnoDB heeft row locking                                        Extremely
                                                                                evolved
           •    MyISAM heeft full text indexes                                  solutions

       •
                                                                                Lorem ipsum dolor sit amet, cons


           Juiste queries en datastructuren                                     ectetuer adipiscing elit. Donec
                                                                                sagittis sagittis urna. Aliquam ipsum.

                                                                                Nunc in leo sed ante lacinia volutpat.




           •    niet ...
                                                                                Pellentesque urna diam, aliquet

                           and category like “%3” or like “%,3,%” or like “3,%”
                                                                                non, ullamcorper ut, volutpat lacinia,
                                                                                purus.




           •    ken uw joins
           •    GEEN order      by rand()

       •   Juiste Indexen
           •    vooral bij veel data, veel verschil!
           •    stijgt exponentieel met hoeveelheid data
           •    EXPLAIN    is uw vriend!                                        Zilverenberg 39 - B-9000 Gent - Belgium
                                                                                Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                                      Netlab - Schaalbaarheid en Optimalisatie
                                                         pub_openminds.indd 1                                                 11/15/06 10:53:5
Caching
       • Caching zorgt dat je niet moet schalen            Extremely

         • of toch zo snel niet                            evolved
                                                           solutions

         • of maakt het goedkoper                          Lorem ipsum dolor sit amet, cons
                                                           ectetuer adipiscing elit. Donec
                                                           sagittis sagittis urna. Aliquam ipsum.

                                                           Nunc in leo sed ante lacinia volutpat.

                                                           Pellentesque urna diam, aliquet
                                                           non, ullamcorper ut, volutpat lacinia,
                                                           purus.




       • Algemene strategie: cache alles wat je kan!
       • Cache op alle lagen

                                                           Zilverenberg 39 - B-9000 Gent - Belgium
                                                           Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                 Netlab - Schaalbaarheid en Optimalisatie
                                    pub_openminds.indd 1                                                 11/15/06 10:53:5
Caching op alle lagen
       •   Templates naar applicatie-code
           •    bv Smarty templates naar PHP                                   Extremely
                                                                               evolved
       •   Output naar HTML                                                    solutions

           •
                                                                               Lorem ipsum dolor sit amet, cons


                hoeveel echt dynamische blokken zitten er op een page?         ectetuer adipiscing elit. Donec
                                                                               sagittis sagittis urna. Aliquam ipsum.

                                                                               Nunc in leo sed ante lacinia volutpat.




           •    meestal niet zo moeilijk (PHP: ob_ functies)
                                                                               Pellentesque urna diam, aliquet
                                                                               non, ullamcorper ut, volutpat lacinia,
                                                                               purus.




           •    nadenken over invalidatie
       •   Object en result caching
           •    bv lijst van alle categoriën van een shop, lijst 10 populairste
           •    memcache! (snel, eenvoudig, schaalt goed)
           •    externe API calls
                                                                               Zilverenberg 39 - B-9000 Gent - Belgium
                                                                               Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                                     Netlab - Schaalbaarheid en Optimalisatie
                                                        pub_openminds.indd 1                                                 11/15/06 10:53:5
Caches: bestaande
          Gebruik bestaande caching systemen!
                                          Extremely
                • Browser cache (juiste parameters doorgeven)
                                                            evolved
                                                            solutions

                • Database cache (MySQL Query cache)
                                                                           Lorem ipsum dolor sit amet, cons
                                                                           ectetuer adipiscing elit. Donec
                                                                           sagittis sagittis urna. Aliquam ipsum.

                                                                           Nunc in leo sed ante lacinia volutpat.




                  • Query cache moest correct ingesteld staan
                                                                           Pellentesque urna diam, aliquet
                                                                           non, ullamcorper ut, volutpat lacinia,
                                                                           purus.




                  • Opgelet met “prepared statements”



                                                                           Zilverenberg 39 - B-9000 Gent - Belgium
                                                                           Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                                 Netlab - Schaalbaarheid en Optimalisatie
                                                    pub_openminds.indd 1                                                 11/15/06 10:53:5
Files serven
       •   Files serven is eenvoudig voor een webserver.
       •                                                     Extremely
           Is bovendien stateless, dus eenvoudig te loadbalancen
                                                             evolved
       •   Nadenken over:                                                 solutions

           •
                                                                          Lorem ipsum dolor sit amet, cons


                files in sync houden?                                      ectetuer adipiscing elit. Donec
                                                                          sagittis sagittis urna. Aliquam ipsum.

                                                                          Nunc in leo sed ante lacinia volutpat.




           •    versies van files?
                                                                          Pellentesque urna diam, aliquet
                                                                          non, ullamcorper ut, volutpat lacinia,
                                                                          purus.




       •   Zorg dat alle files rechtstreeks geservet worden, buiten uw
           applicatie om
           •    Zeker niet uit een database!
           •    Zelfs voor private images
                •   tijdelijke urls?
                •   cookie based regels?
                                                                          Zilverenberg 39 - B-9000 Gent - Belgium
                                                                          Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                                Netlab - Schaalbaarheid en Optimalisatie
                                                   pub_openminds.indd 1                                                 11/15/06 10:53:5
Files opslaan
       • In het begin eenvoudig: diskspace tot                Extremely
           ongeveer 2TB per server                            evolved
                                                              solutions

       •   tot op limiet waar niet meer kan                   Lorem ipsum dolor sit amet, cons
                                                              ectetuer adipiscing elit. Donec
                                                              sagittis sagittis urna. Aliquam ipsum.




       •
                                                              Nunc in leo sed ante lacinia volutpat.



           of tot limiet waar disks te traag worden           Pellentesque urna diam, aliquet
                                                              non, ullamcorper ut, volutpat lacinia,
                                                              purus.




       •   SAN = duur, maar noodzakelijk
       •   zelfs bij weinig data: opletten voor limieten
           • filesystemen worden traag bij 10000 files
           • meerdere directories, hashing
                                                              Zilverenberg 39 - B-9000 Gent - Belgium
                                                              Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                    Netlab - Schaalbaarheid en Optimalisatie
                                       pub_openminds.indd 1                                                 11/15/06 10:53:5
HA (High Availability)
       •   Vermijden van SPOFs - Single Point of Failure
       •   identificeren en elimineren                                        Extremely
                                                                             evolved
       •   sommige zeer lastig!                                              solutions

           •
                                                                             Lorem ipsum dolor sit amet, cons


                database master                                              ectetuer adipiscing elit. Donec
                                                                             sagittis sagittis urna. Aliquam ipsum.

                                                                             Nunc in leo sed ante lacinia volutpat.




           •    datacenter?
                                                                             Pellentesque urna diam, aliquet
                                                                             non, ullamcorper ut, volutpat lacinia,
                                                                             purus.




                •   meerdere datacenters lost problemen op
                •   maar introduceert nieuwe (bv latency en replication)




                                                                             Zilverenberg 39 - B-9000 Gent - Belgium
                                                                             Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                                   Netlab - Schaalbaarheid en Optimalisatie
                                                      pub_openminds.indd 1                                                 11/15/06 10:53:5
Pauze!




         http://flickr.com/photos/bubblewrap76/2895595130
Meten is weten
       • Vragen beantwoorden als:                                               Extremely
           •    Hoe snel is mijn applicatie of site eigenlijk?                  evolved
                                                                                solutions
           •    Hoeveel hits kan ik aan?                                        Lorem ipsum dolor sit amet, cons




           •
                                                                                ectetuer adipiscing elit. Donec
                                                                                sagittis sagittis urna. Aliquam ipsum.

                Als ik morgen in de Humo sta, lukt dat?                         Nunc in leo sed ante lacinia volutpat.

                                                                                Pellentesque urna diam, aliquet




           •
                                                                                non, ullamcorper ut, volutpat lacinia,


                Als ik straks vermeld wordt op Studio Brussel, kan ik dat aan?
                                                                                purus.




           •    Wat als ik een nieuwsbrief stuur naar mijn 25000 klanten?


       • Experts inhuren?
       • Kan ik dit zelf?
                                                                                Zilverenberg 39 - B-9000 Gent - Belgium
                                                                                Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                                      Netlab - Schaalbaarheid en Optimalisatie
                                                         pub_openminds.indd 1                                                 11/15/06 10:53:5
Meten kan je zelf
       • Eenvoudige tests, eenvoudige tools:                    Extremely
           •                                                    evolved
                ab (uit de Apache toolkit: http://httpd.apache.org/)
                                                                solutions
           •    httperf (http://www.hpl.hp.com/research/linux/httperf/)      Lorem ipsum dolor sit amet, cons




       • testen 1 hit op 1 pagina
                                                                             ectetuer adipiscing elit. Donec
                                                                             sagittis sagittis urna. Aliquam ipsum.

                                                                             Nunc in leo sed ante lacinia volutpat.

                                                                             Pellentesque urna diam, aliquet
                                                                             non, ullamcorper ut, volutpat lacinia,
                                                                             purus.




           •    zonder css, js, ajax, images, enz
           •    vaak meer dan genoeg om een antwoord te krijgen

       • Complexere tools
           •    jmeter
           •    log replay tools
           •    kunnen een sessie simuleren, traject volgen                  Zilverenberg 39 - B-9000 Gent - Belgium
                                                                             Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                                   Netlab - Schaalbaarheid en Optimalisatie
                                                      pub_openminds.indd 1                                                 11/15/06 10:53:5
Wat moet je testen?
       • Hoofdpagina. Altijd!                                     Extremely
           •                                                      evolved
                Zelfs als die link niet in de nieuwsbrief gaat staan
                                                                  solutions
           •    Eerste indruk                                                 Lorem ipsum dolor sit amet, cons
                                                                              ectetuer adipiscing elit. Donec
                                                                              sagittis sagittis urna. Aliquam ipsum.

                                                                              Nunc in leo sed ante lacinia volutpat.




       • Meest ingewikkelde pagina
                                                                              Pellentesque urna diam, aliquet
                                                                              non, ullamcorper ut, volutpat lacinia,
                                                                              purus.




           •    Hopelijk is dat een andere dan de hoofdpagina


       • “Typische” pagina
       • Landingspagina, actiepagina enz                                      Zilverenberg 39 - B-9000 Gent - Belgium
                                                                              Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                                    Netlab - Schaalbaarheid en Optimalisatie
                                                       pub_openminds.indd 1                                                 11/15/06 10:53:5
Test juist
       • In goede omstandigheden                                             Extremely
           •    test-pc snel genoeg?                                         evolved
                                                                             solutions
           •    lokaal internet snel genoeg?                                 Lorem ipsum dolor sit amet, cons
                                                                             ectetuer adipiscing elit. Donec
                                                                             sagittis sagittis urna. Aliquam ipsum.

                                                                             Nunc in leo sed ante lacinia volutpat.




       • Test met relevante dataset!
                                                                             Pellentesque urna diam, aliquet
                                                                             non, ullamcorper ut, volutpat lacinia,
                                                                             purus.




           •    Vooral belangrijk voor database problemen
                •   Index problemen: exponentiëel trager
           •    Als je binnen 3 maand 10000 artikels verwacht
                •   Test dan ook met 10000 artikels

                                                                             Zilverenberg 39 - B-9000 Gent - Belgium
                                                                             Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                                   Netlab - Schaalbaarheid en Optimalisatie
                                                      pub_openminds.indd 1                                                 11/15/06 10:53:5
Opgepast!
       • Je test altijd in development of acceptatie         Extremely
                                                             evolved
                                                             solutions

       •   Verwittig je hoster voor je gaat testen           Lorem ipsum dolor sit amet, cons
                                                             ectetuer adipiscing elit. Donec
                                                             sagittis sagittis urna. Aliquam ipsum.




           •
                                                             Nunc in leo sed ante lacinia volutpat.



             Evil Sysadmin Day!                              Pellentesque urna diam, aliquet
                                                             non, ullamcorper ut, volutpat lacinia,
                                                             purus.




                                                             Zilverenberg 39 - B-9000 Gent - Belgium
                                                             Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                   Netlab - Schaalbaarheid en Optimalisatie
                                      pub_openminds.indd 1                                                 11/15/06 10:53:5
Metrics
       • Hoeveel requests per seconde bij 1                 Extremely
           gelijktijdige bezoeker                           evolved
                                                            solutions
                                                            Lorem ipsum dolor sit amet, cons
                                                            ectetuer adipiscing elit. Donec
                                                            sagittis sagittis urna. Aliquam ipsum.




       • Hoeveel requests per seconde bij veel
                                                            Nunc in leo sed ante lacinia volutpat.

                                                            Pellentesque urna diam, aliquet
                                                            non, ullamcorper ut, volutpat lacinia,
                                                            purus.




           gelijktijdige bezoekers

       • In hoeveel tijd laadt de pagina voor 80%
           van de bezoekers
                                                            Zilverenberg 39 - B-9000 Gent - Belgium
                                                            Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                  Netlab - Schaalbaarheid en Optimalisatie
                                     pub_openminds.indd 1                                                 11/15/06 10:53:5
Meer resultaten nodig?
       •   Wil je nog meer weten, vraag uw hoster!
                                                                             Extremely
                                                                             evolved
       •   Vragen:                                                           solutions
           •    CPU belasting tijdens testen?                                Lorem ipsum dolor sit amet, cons
                                                                             ectetuer adipiscing elit. Donec
                                                                             sagittis sagittis urna. Aliquam ipsum.




           •
                                                                             Nunc in leo sed ante lacinia volutpat.


                Memory gebruik?                                              Pellentesque urna diam, aliquet
                                                                             non, ullamcorper ut, volutpat lacinia,
                                                                             purus.




           •    Waarom is het traag? Wat is de flessenhals?
                •   I/O (meestal)
                •   CPU (soms)
                •   Netwerk (zelden, tenzij je GarageTV bent)


                                                                             Zilverenberg 39 - B-9000 Gent - Belgium
                                                                             Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                                   Netlab - Schaalbaarheid en Optimalisatie
                                                      pub_openminds.indd 1                                                 11/15/06 10:53:5
Wat optimaliseren?
       • “Dat wat voor vertraging zorgt”                  Extremely
                                                          evolved
                                                          solutions

       • Kijk naar snelheidswinst in tijd                 Lorem ipsum dolor sit amet, cons
                                                          ectetuer adipiscing elit. Donec
                                                          sagittis sagittis urna. Aliquam ipsum.




         • niet in percenten
                                                          Nunc in leo sed ante lacinia volutpat.

                                                          Pellentesque urna diam, aliquet
                                                          non, ullamcorper ut, volutpat lacinia,
                                                          purus.




         • niet in aantal function calls
         • zelfs niet in aantal database queries
           • beter 100 supersnelle queries dan 1
                trage
                                                          Zilverenberg 39 - B-9000 Gent - Belgium
                                                          Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                Netlab - Schaalbaarheid en Optimalisatie
                                   pub_openminds.indd 1                                                 11/15/06 10:53:5
Performantiekillers
       • Geheugenintensieve operaties                                        Extremely
           •    Grote files inlezen?                                          evolved
                                                                             solutions
           •    24bit tiff aan 600dpi uploaden en converteren                Lorem ipsum dolor sit amet, cons




           •
                                                                             ectetuer adipiscing elit. Donec
                                                                             sagittis sagittis urna. Aliquam ipsum.

                thumbnails “on the fly” aanmaken?                             Nunc in leo sed ante lacinia volutpat.

                                                                             Pellentesque urna diam, aliquet




           •
                                                                             non, ullamcorper ut, volutpat lacinia,


                Foto’s uit uw database halen en uw applicatie laten serven
                                                                             purus.




       • Database intensieve operaties
           •    slechte indexen / queries
           •    geen gebruik van DB query cache
           •    order by RAND() op grote set
                                                                             Zilverenberg 39 - B-9000 Gent - Belgium
                                                                             Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                                   Netlab - Schaalbaarheid en Optimalisatie
                                                      pub_openminds.indd 1                                                 11/15/06 10:53:5
Performantiekillers
       • CPU intensieve operaties                                            Extremely
           •    Loops in je code, templates verwerken                        evolved
                                                                             solutions
           •    Image verwerkingen                                           Lorem ipsum dolor sit amet, cons




           •
                                                                             ectetuer adipiscing elit. Donec
                                                                             sagittis sagittis urna. Aliquam ipsum.

                Encryptie (extra md5() op sessies?)                          Nunc in leo sed ante lacinia volutpat.

                                                                             Pellentesque urna diam, aliquet
                                                                             non, ullamcorper ut, volutpat lacinia,
                                                                             purus.




       • Externe factoren
           •    Externe RSS
           •    Gravatars
           •    externe css/javascript
           •    flickr foto’s of lokaal?
                                                                             Zilverenberg 39 - B-9000 Gent - Belgium
                                                                             Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                                   Netlab - Schaalbaarheid en Optimalisatie
                                                      pub_openminds.indd 1                                                 11/15/06 10:53:5
Tips
       • Plan! Meet! Analyseer! Gok niet                                      Extremely
                                                                              evolved
                                                                              solutions

       • Cache zoveel mogelijk                                                Lorem ipsum dolor sit amet, cons
                                                                              ectetuer adipiscing elit. Donec
                                                                              sagittis sagittis urna. Aliquam ipsum.

                                                                              Nunc in leo sed ante lacinia volutpat.

                                                                              Pellentesque urna diam, aliquet
                                                                              non, ullamcorper ut, volutpat lacinia,
                                                                              purus.




       • Juiste indexen op uw database
       • Denk na over URL structuur
           •    bv upload.uwsite.tld of login.uwsite.tld
           •    asset hosts en pipelining                                     Zilverenberg 39 - B-9000 Gent - Belgium
                                                                              Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                                    Netlab - Schaalbaarheid en Optimalisatie
                                                       pub_openminds.indd 1                                                 11/15/06 10:53:5
Tips
       • Cache!                                                                 Extremely

       • Bouw met (uw eigen) API’s                                              evolved
                                                                                solutions
         •      maakt ook schalen van ontwikkeling makkelijker                  Lorem ipsum dolor sit amet, cons
                                                                                ectetuer adipiscing elit. Donec




       • Huur experts in
                                                                                sagittis sagittis urna. Aliquam ipsum.

                                                                                Nunc in leo sed ante lacinia volutpat.

                                                                                Pellentesque urna diam, aliquet
                                                                                non, ullamcorper ut, volutpat lacinia,
                                                                                purus.




           •    om met uw ontwikkelaars te praten
           •    of te testen
           •    al is het maar voor 1/2 dag of 2 dagen



       • Praat met uw hoster voor de piek                                       Zilverenberg 39 - B-9000 Gent - Belgium
                                                                                Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                                      Netlab - Schaalbaarheid en Optimalisatie
                                                         pub_openminds.indd 1                                                 11/15/06 10:53:5
Je hoster wil dit weten ...
                                           Extremely
                                           evolved
                                           solutions
                                           Lorem ipsum dolor sit amet, cons
                                           ectetuer adipiscing elit. Donec
                                           sagittis sagittis urna. Aliquam ipsum.

                                           Nunc in leo sed ante lacinia volutpat.

                                           Pellentesque urna diam, aliquet
                                           non, ullamcorper ut, volutpat lacinia,
                                           purus.




                                           Zilverenberg 39 - B-9000 Gent - Belgium
                                           Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                 Netlab - Schaalbaarheid en Optimalisatie
                    pub_openminds.indd 1                                                 11/15/06 10:53:5
Waarom?
       • Waarom wil je hoster dit weten voor het                              Extremely
           zich voordoet?                                                     evolved
                                                                              solutions
                                                                              Lorem ipsum dolor sit amet, cons
                                                                              ectetuer adipiscing elit. Donec
                                                                              sagittis sagittis urna. Aliquam ipsum.




           •
                                                                              Nunc in leo sed ante lacinia volutpat.


                Maximale ROI (beste hardware op juiste moment)                Pellentesque urna diam, aliquet
                                                                              non, ullamcorper ut, volutpat lacinia,
                                                                              purus.




           •    Stabiele service bieden, aan alle klanten
           •    Zorgen dat andere sites vlot blijven werken
           •    ‘s Nachts slapen




                                                                              Zilverenberg 39 - B-9000 Gent - Belgium
                                                                              Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                                    Netlab - Schaalbaarheid en Optimalisatie
                                                       pub_openminds.indd 1                                                 11/15/06 10:53:5
Waarom?
       • Je hoster is de ideale partner hiervoor                                Extremely
           •    Heeft toegang tot de fysieke hardware                           evolved
                                                                                solutions
           •    Kent die hardware het best                                      Lorem ipsum dolor sit amet, cons




           •
                                                                                ectetuer adipiscing elit. Donec
                                                                                sagittis sagittis urna. Aliquam ipsum.

                Heeft DBA’s in dienst, jij waarschijnlijk niet                  Nunc in leo sed ante lacinia volutpat.

                                                                                Pellentesque urna diam, aliquet




           •
                                                                                non, ullamcorper ut, volutpat lacinia,


                Heeft Webserver specialisten in dienst, jij waarschijnlijk niet
                                                                                purus.




           •    Je bent heus niet de eerste ...




                                                                                Zilverenberg 39 - B-9000 Gent - Belgium
                                                                                Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                                      Netlab - Schaalbaarheid en Optimalisatie
                                                         pub_openminds.indd 1                                                 11/15/06 10:53:5
Expert!




          http://flickr.com/photos/fcb/58600311
Het bos en de bomen


               http://flickr.com/photos/mr_fabulous/2033276270
One more thing ...
       •   Shared Hosting en Rails hosting pakketten:
           •    tot eind deze maand kortingscode “NETLAB” Extremely
                                                          evolved
           •    geeft je 1 maand gratis hosting!                            solutions

       •
                                                                            Lorem ipsum dolor sit amet, cons


           Virtual Dedicated Servers:                                       ectetuer adipiscing elit. Donec
                                                                            sagittis sagittis urna. Aliquam ipsum.

                                                                            Nunc in leo sed ante lacinia volutpat.




           •    vermeld “Netlab korting” bij je kennismakingsgesprek
                                                                            Pellentesque urna diam, aliquet
                                                                            non, ullamcorper ut, volutpat lacinia,
                                                                            purus.




           •    en de setup kost valt helemaal weg


       •   Performantietests van uw applicatie: vanaf 200 eur


       •   http://www.openminds.be/
       •   Telefoon: 09 225 82 91                                           Zilverenberg 39 - B-9000 Gent - Belgium
                                                                            Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57




Frank Louwers                                                                  Netlab - Schaalbaarheid en Optimalisatie
                                                     pub_openminds.indd 1                                                 11/15/06 10:53:5
Q &A



http://flickr.com/photos/mbake/399084699/

More Related Content

More from Frank Louwers

BISC 2013: Hosting and security
BISC 2013: Hosting and securityBISC 2013: Hosting and security
BISC 2013: Hosting and securityFrank Louwers
 
Devopsdays Ignite: BGP for all your ha needs
Devopsdays Ignite: BGP for all your ha needsDevopsdays Ignite: BGP for all your ha needs
Devopsdays Ignite: BGP for all your ha needsFrank Louwers
 
Openminds Techtalk: DNS
Openminds Techtalk: DNSOpenminds Techtalk: DNS
Openminds Techtalk: DNSFrank Louwers
 
Node.js: waarom en hoe
Node.js: waarom en hoeNode.js: waarom en hoe
Node.js: waarom en hoeFrank Louwers
 
Ondernemende ingenieurs 20100429
Ondernemende ingenieurs 20100429Ondernemende ingenieurs 20100429
Ondernemende ingenieurs 20100429Frank Louwers
 
Rails Servers - Arrrrcamp 20090508
Rails Servers -  Arrrrcamp 20090508Rails Servers -  Arrrrcamp 20090508
Rails Servers - Arrrrcamp 20090508Frank Louwers
 
OpenID Intro @ Barcamp Brussels 3
OpenID Intro @ Barcamp Brussels 3OpenID Intro @ Barcamp Brussels 3
OpenID Intro @ Barcamp Brussels 3Frank Louwers
 

More from Frank Louwers (7)

BISC 2013: Hosting and security
BISC 2013: Hosting and securityBISC 2013: Hosting and security
BISC 2013: Hosting and security
 
Devopsdays Ignite: BGP for all your ha needs
Devopsdays Ignite: BGP for all your ha needsDevopsdays Ignite: BGP for all your ha needs
Devopsdays Ignite: BGP for all your ha needs
 
Openminds Techtalk: DNS
Openminds Techtalk: DNSOpenminds Techtalk: DNS
Openminds Techtalk: DNS
 
Node.js: waarom en hoe
Node.js: waarom en hoeNode.js: waarom en hoe
Node.js: waarom en hoe
 
Ondernemende ingenieurs 20100429
Ondernemende ingenieurs 20100429Ondernemende ingenieurs 20100429
Ondernemende ingenieurs 20100429
 
Rails Servers - Arrrrcamp 20090508
Rails Servers -  Arrrrcamp 20090508Rails Servers -  Arrrrcamp 20090508
Rails Servers - Arrrrcamp 20090508
 
OpenID Intro @ Barcamp Brussels 3
OpenID Intro @ Barcamp Brussels 3OpenID Intro @ Barcamp Brussels 3
OpenID Intro @ Barcamp Brussels 3
 

Schaalbaarheid En Optimalisatie

  • 1. Extremely Help, mijn site wordt populair! evolved solutions Schalen en Optimalisatie Lorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. Nunc in leo sed ante lacinia volutpat. Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. Frank Louwers Openminds bvba Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 pub_openminds.indd 1 11/15/06 10:53:57 AM
  • 2. Oh hai! Frank Louwers co-founder & “Mr Operations” @ Openminds
  • 4. Vanavond • Schaalbaarheid Extremely • wat evolved solutions • hoe Lorem ipsum dolor sit amet, cons • ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. => theoretisch Nunc in leo sed ante lacinia volutpat. Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. • Pauze • Tips voor webbouwers • meten is weten • eenvoudige technieken met snel resultaat • hulp van uw hoster Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 5. Schaalbaarheid en mythes Schaalbaarheid gaat niet over: Extremely evolved • technologie Z solutions • Lorem ipsum dolor sit amet, cons ruwe performantie en snelheid ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. Nunc in leo sed ante lacinia volutpat. Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, • veel enterprise level servers purus. • zeker niet over programmeertaal X of Y Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 6. Languages don’t scale! http://flickr.com/photos/lij/122525716
  • 8. Architectures Scale http://flickr.com/photos/thomashawk/44667887/
  • 9. Schaalbaarheid Schaalbaarheid gaat over: Extremely evolved • toename aantal bezoekers solutions • Lorem ipsum dolor sit amet, cons toename hoeveelheid data ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. Nunc in leo sed ante lacinia volutpat. Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, • beheersbaarheid van dit alles purus. Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 10. Schalen: H & V Vertikaal schalen Extremely • “dikkere doos” evolved solutions • op zich eenvoudig Lorem ipsum dolor sit amet, cons • ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. prijs: dubbel zo krachtige server kost meer dan dubbel zoveel Nunc in leo sed ante lacinia volutpat. Pellentesque urna diam, aliquet • non, ullamcorper ut, volutpat lacinia, maar wat kost software redesignen? purus. • biedt GEEN HA (high availability) • soms juiste keuze • complexe monolitische applicaties • databases Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 11. Schalen: H & V Horizontaal schalen Extremely • meerdere servers evolved solutions • gespecialiseerde servers Lorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec • sagittis sagittis urna. Aliquam ipsum. database, loadbalancing, maar ook bv specifieke delen Nunc in leo sed ante lacinia volutpat. Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, • upload / authenticatie / video transcoding purus. • vereist soms applicatie aanpassingen (als niet voorzien) • maar kan snel (als hoster capaciteit heeft) • en tijdelijk (bv voor 2 dagen tot het “Digg/Techcrunch” effect over is) Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 12. Applicatie servers • eenvoudig te schalen als “Shared Nothing” Extremely • schuift probleem “down the stack” evolved • belangrijkste: sessie-data solutions • Lorem ipsum dolor sit amet, cons niet elke request op zelfde server ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. Nunc in leo sed ante lacinia volutpat. • lokale sessies: slecht Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. • bv PHP: standaard naar disk • gecentraliseerde sessies: beter • centrale databank of speciale cache (memcache) • nadeel: sessiestore moet schalen (“down the stack”) • geen sessies: ideaal! Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 13. Vergeet cookie store niet! http://flickr.com/photos/mr-outdoorguy/2100813932/
  • 14. Ah, the stack! http://flickr.com/photos/keitheddleman/2124245307
  • 15. Queing systemen • “Wachtrijen” • vaak onderschat, maar zeer handig Extremely evolved • voor alles wat parallelliseerbaar is solutions • Lorem ipsum dolor sit amet, cons image conversion, video transcoding, mail uitsturen, ... ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. Nunc in leo sed ante lacinia volutpat. • meestal eenvoudig op te zetten Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. • je stuurt er iets naar toe, je haalt er iets af • helpen bij schalen, maar schalen zelf iets moeilijker • ActiveMQ, startling (van Twitter), ... Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 16. Beste I/O Extremely • Beste I/O: geen I/O evolved solutions • Correctie: geen disk I/O Lorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. • Disks zijn inherent traag, zelfs snelle disks Nunc in leo sed ante lacinia volutpat. Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 17. Databanken • Moeilijkste component om te schalen (tenzij je heel veel files servet) Extremely evolved • Te weinig Read performantie? solutions • Meeste webapps doen 80/20 of zelfs 90/10 read/write Lorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. • Nunc in leo sed ante lacinia volutpat. Splits read/writes in uw applicatie en gebruik master-slave Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. • denormalisatie • als het echt niet anders kan • Te weinig Write performantie? • Lastig horizontaal te schalen! • master/master, cluster: zeer complex en lost niet alles op • partitioning / sharding Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 18. Help uw databank! • Juiste tabelformaat! • InnoDB heeft row locking Extremely evolved • MyISAM heeft full text indexes solutions • Lorem ipsum dolor sit amet, cons Juiste queries en datastructuren ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. Nunc in leo sed ante lacinia volutpat. • niet ... Pellentesque urna diam, aliquet and category like “%3” or like “%,3,%” or like “3,%” non, ullamcorper ut, volutpat lacinia, purus. • ken uw joins • GEEN order by rand() • Juiste Indexen • vooral bij veel data, veel verschil! • stijgt exponentieel met hoeveelheid data • EXPLAIN is uw vriend! Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 19. Caching • Caching zorgt dat je niet moet schalen Extremely • of toch zo snel niet evolved solutions • of maakt het goedkoper Lorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. Nunc in leo sed ante lacinia volutpat. Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. • Algemene strategie: cache alles wat je kan! • Cache op alle lagen Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 20. Caching op alle lagen • Templates naar applicatie-code • bv Smarty templates naar PHP Extremely evolved • Output naar HTML solutions • Lorem ipsum dolor sit amet, cons hoeveel echt dynamische blokken zitten er op een page? ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. Nunc in leo sed ante lacinia volutpat. • meestal niet zo moeilijk (PHP: ob_ functies) Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. • nadenken over invalidatie • Object en result caching • bv lijst van alle categoriën van een shop, lijst 10 populairste • memcache! (snel, eenvoudig, schaalt goed) • externe API calls Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 21. Caches: bestaande Gebruik bestaande caching systemen! Extremely • Browser cache (juiste parameters doorgeven) evolved solutions • Database cache (MySQL Query cache) Lorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. Nunc in leo sed ante lacinia volutpat. • Query cache moest correct ingesteld staan Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. • Opgelet met “prepared statements” Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 22. Files serven • Files serven is eenvoudig voor een webserver. • Extremely Is bovendien stateless, dus eenvoudig te loadbalancen evolved • Nadenken over: solutions • Lorem ipsum dolor sit amet, cons files in sync houden? ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. Nunc in leo sed ante lacinia volutpat. • versies van files? Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. • Zorg dat alle files rechtstreeks geservet worden, buiten uw applicatie om • Zeker niet uit een database! • Zelfs voor private images • tijdelijke urls? • cookie based regels? Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 23. Files opslaan • In het begin eenvoudig: diskspace tot Extremely ongeveer 2TB per server evolved solutions • tot op limiet waar niet meer kan Lorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. • Nunc in leo sed ante lacinia volutpat. of tot limiet waar disks te traag worden Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. • SAN = duur, maar noodzakelijk • zelfs bij weinig data: opletten voor limieten • filesystemen worden traag bij 10000 files • meerdere directories, hashing Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 24. HA (High Availability) • Vermijden van SPOFs - Single Point of Failure • identificeren en elimineren Extremely evolved • sommige zeer lastig! solutions • Lorem ipsum dolor sit amet, cons database master ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. Nunc in leo sed ante lacinia volutpat. • datacenter? Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. • meerdere datacenters lost problemen op • maar introduceert nieuwe (bv latency en replication) Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 25. Pauze! http://flickr.com/photos/bubblewrap76/2895595130
  • 26. Meten is weten • Vragen beantwoorden als: Extremely • Hoe snel is mijn applicatie of site eigenlijk? evolved solutions • Hoeveel hits kan ik aan? Lorem ipsum dolor sit amet, cons • ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. Als ik morgen in de Humo sta, lukt dat? Nunc in leo sed ante lacinia volutpat. Pellentesque urna diam, aliquet • non, ullamcorper ut, volutpat lacinia, Als ik straks vermeld wordt op Studio Brussel, kan ik dat aan? purus. • Wat als ik een nieuwsbrief stuur naar mijn 25000 klanten? • Experts inhuren? • Kan ik dit zelf? Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 27. Meten kan je zelf • Eenvoudige tests, eenvoudige tools: Extremely • evolved ab (uit de Apache toolkit: http://httpd.apache.org/) solutions • httperf (http://www.hpl.hp.com/research/linux/httperf/) Lorem ipsum dolor sit amet, cons • testen 1 hit op 1 pagina ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. Nunc in leo sed ante lacinia volutpat. Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. • zonder css, js, ajax, images, enz • vaak meer dan genoeg om een antwoord te krijgen • Complexere tools • jmeter • log replay tools • kunnen een sessie simuleren, traject volgen Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 28. Wat moet je testen? • Hoofdpagina. Altijd! Extremely • evolved Zelfs als die link niet in de nieuwsbrief gaat staan solutions • Eerste indruk Lorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. Nunc in leo sed ante lacinia volutpat. • Meest ingewikkelde pagina Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. • Hopelijk is dat een andere dan de hoofdpagina • “Typische” pagina • Landingspagina, actiepagina enz Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 29. Test juist • In goede omstandigheden Extremely • test-pc snel genoeg? evolved solutions • lokaal internet snel genoeg? Lorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. Nunc in leo sed ante lacinia volutpat. • Test met relevante dataset! Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. • Vooral belangrijk voor database problemen • Index problemen: exponentiëel trager • Als je binnen 3 maand 10000 artikels verwacht • Test dan ook met 10000 artikels Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 30. Opgepast! • Je test altijd in development of acceptatie Extremely evolved solutions • Verwittig je hoster voor je gaat testen Lorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. • Nunc in leo sed ante lacinia volutpat. Evil Sysadmin Day! Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 31. Metrics • Hoeveel requests per seconde bij 1 Extremely gelijktijdige bezoeker evolved solutions Lorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. • Hoeveel requests per seconde bij veel Nunc in leo sed ante lacinia volutpat. Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. gelijktijdige bezoekers • In hoeveel tijd laadt de pagina voor 80% van de bezoekers Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 32. Meer resultaten nodig? • Wil je nog meer weten, vraag uw hoster! Extremely evolved • Vragen: solutions • CPU belasting tijdens testen? Lorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. • Nunc in leo sed ante lacinia volutpat. Memory gebruik? Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. • Waarom is het traag? Wat is de flessenhals? • I/O (meestal) • CPU (soms) • Netwerk (zelden, tenzij je GarageTV bent) Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 33. Wat optimaliseren? • “Dat wat voor vertraging zorgt” Extremely evolved solutions • Kijk naar snelheidswinst in tijd Lorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. • niet in percenten Nunc in leo sed ante lacinia volutpat. Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. • niet in aantal function calls • zelfs niet in aantal database queries • beter 100 supersnelle queries dan 1 trage Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 34. Performantiekillers • Geheugenintensieve operaties Extremely • Grote files inlezen? evolved solutions • 24bit tiff aan 600dpi uploaden en converteren Lorem ipsum dolor sit amet, cons • ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. thumbnails “on the fly” aanmaken? Nunc in leo sed ante lacinia volutpat. Pellentesque urna diam, aliquet • non, ullamcorper ut, volutpat lacinia, Foto’s uit uw database halen en uw applicatie laten serven purus. • Database intensieve operaties • slechte indexen / queries • geen gebruik van DB query cache • order by RAND() op grote set Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 35. Performantiekillers • CPU intensieve operaties Extremely • Loops in je code, templates verwerken evolved solutions • Image verwerkingen Lorem ipsum dolor sit amet, cons • ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. Encryptie (extra md5() op sessies?) Nunc in leo sed ante lacinia volutpat. Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. • Externe factoren • Externe RSS • Gravatars • externe css/javascript • flickr foto’s of lokaal? Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 36. Tips • Plan! Meet! Analyseer! Gok niet Extremely evolved solutions • Cache zoveel mogelijk Lorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. Nunc in leo sed ante lacinia volutpat. Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. • Juiste indexen op uw database • Denk na over URL structuur • bv upload.uwsite.tld of login.uwsite.tld • asset hosts en pipelining Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 37. Tips • Cache! Extremely • Bouw met (uw eigen) API’s evolved solutions • maakt ook schalen van ontwikkeling makkelijker Lorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec • Huur experts in sagittis sagittis urna. Aliquam ipsum. Nunc in leo sed ante lacinia volutpat. Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. • om met uw ontwikkelaars te praten • of te testen • al is het maar voor 1/2 dag of 2 dagen • Praat met uw hoster voor de piek Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 38. Je hoster wil dit weten ... Extremely evolved solutions Lorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. Nunc in leo sed ante lacinia volutpat. Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 39. Waarom? • Waarom wil je hoster dit weten voor het Extremely zich voordoet? evolved solutions Lorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. • Nunc in leo sed ante lacinia volutpat. Maximale ROI (beste hardware op juiste moment) Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. • Stabiele service bieden, aan alle klanten • Zorgen dat andere sites vlot blijven werken • ‘s Nachts slapen Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 40. Waarom? • Je hoster is de ideale partner hiervoor Extremely • Heeft toegang tot de fysieke hardware evolved solutions • Kent die hardware het best Lorem ipsum dolor sit amet, cons • ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. Heeft DBA’s in dienst, jij waarschijnlijk niet Nunc in leo sed ante lacinia volutpat. Pellentesque urna diam, aliquet • non, ullamcorper ut, volutpat lacinia, Heeft Webserver specialisten in dienst, jij waarschijnlijk niet purus. • Je bent heus niet de eerste ... Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5
  • 41. Expert! http://flickr.com/photos/fcb/58600311
  • 42. Het bos en de bomen http://flickr.com/photos/mr_fabulous/2033276270
  • 43. One more thing ... • Shared Hosting en Rails hosting pakketten: • tot eind deze maand kortingscode “NETLAB” Extremely evolved • geeft je 1 maand gratis hosting! solutions • Lorem ipsum dolor sit amet, cons Virtual Dedicated Servers: ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum. Nunc in leo sed ante lacinia volutpat. • vermeld “Netlab korting” bij je kennismakingsgesprek Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus. • en de setup kost valt helemaal weg • Performantietests van uw applicatie: vanaf 200 eur • http://www.openminds.be/ • Telefoon: 09 225 82 91 Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57 Frank Louwers Netlab - Schaalbaarheid en Optimalisatie pub_openminds.indd 1 11/15/06 10:53:5