zondag 27 april 2008

Hyves van binnen

Lees dit interview in de Gentoo Linux Newsletter met Ramon van Alteren voor een kijkje achter de schermen bij Hyves met wat leuke feiten en cijfertjes.

"GMN: What is the scale of your website?


Ramon: We currently have over 6 million registered users and counting, peak performance is currently at 150+ million page views per day (13 million per hour). These are filtered page views, raw http requests on our web farm are well over 20.000 req/sec.

On our mysql database backend, we serve roughly 100.000 actions/sec at peak performance. Aside from the web frontend and the database backend we have a very large file-storage for media that our users upload. The total used storage totals around roughly about 280 Terabytes. All in all with all hosts accounted for we have 1800 servers most of them with 2 or 4 cores each. All of these run Gentoo Linux. :-)"

23 opmerkingen:

  1. Nou snap ik waar jullie al dat geld van ome Joop voor nodig hebben. Mijn god, 1.800 servers.

    BeantwoordenVerwijderen
  2. Dat zijn er veel ja, en het is ook een van onze grootste kostenposten. Maar op zich managen we dat aantal met een relatief klein groepje mensen. En gelukkig dekken onze normale inkomsten deze uitgaven prima, Joop niet voor nodig;-)

    BeantwoordenVerwijderen
  3. Ik ben wel benieuwd wanneer jullie peak-performance is? Is dat in de avond rond een uurtje of 19.00? Of zit ik er dan ver naast?

    BeantwoordenVerwijderen
  4. Piek loopt vanaf 16uur tot 21uur.... Verschillen tussen die uren zijn niet heel groot

    BeantwoordenVerwijderen
  5. 1800 servers?



    Wacht ff



    117m bezoekers pm (STIR) = 3,9m per dag

    = 163k per uur

    = 45 per seconde



    Per seconde zijn er 45 bezoekers op de site gemiddeld en daarvoor heeft hyves 1800 servers nodig? Techniek van het niveau likmefessie.

    BeantwoordenVerwijderen
  6. Op basis van jouw rekenkunde ga ik er maar vanuit dat je geen systeembeheerder bent. Misschien dat je de basisschool nog eens moet gaan doorlopen;-)

    BeantwoordenVerwijderen
  7. Of nemen we die 150m pageviews pd peak performance:



    150m pageviews pd



    = 6,25m per uur

    = 104k per min

    = 1736 per seconde



    Dus 1 server per pageview?

    BeantwoordenVerwijderen
  8. Wel eens nagedacht over hoe lang mensen online blijven....?

    BeantwoordenVerwijderen
  9. Ah, je neemt nu pageviews. Zoals je in het artikel kunt lezen zien de piekmomenten er anders uit dan in jouw rekensom.

    BeantwoordenVerwijderen
  10. Lees het artikel, of zelfs alleen de quote die ik gebruikte....

    BeantwoordenVerwijderen
  11. Ik lees juist 150m pageviews pd = 6,25m per uur = 1736 pageviews per seconde. Bijna 1 op 1 met aantal servers.



    Verder staat er ook in het artikel 13m pageviews per uur. Dus 3600 per seconde. Met 1800 servers.



    Verder staat er ook raw http requests 20k per seconde. Gedeeld door 1800 servers is dat nog steeds maar 11 requests per server per seconde.

    BeantwoordenVerwijderen
  12. Wel eens over nagedacht dat niet elke server een webserver is bijvoorbeeld...?

    BeantwoordenVerwijderen
  13. 1800 servers klinkt mij ook in de oren als zwaar overdreven. Neem even de 20k requests per seconde als uitgangspunt, per server moet je echt wel 500 requests per seconde kunnen verwerken (en 500 per sec. is niet echt veel). Dan heb je 40 servers nodig en klaar ben je. Wil je de webserservers en databaseservers scheiden en de load verdelen over de diverse onderdelen, heb je nog wat loadbalancers nodig, met in totaal maximaal 100 servers moet je dit echt wel kunnen inrichten.



    loadbalancer

    40 webservers

    loadbalancer

    40 databaseservers

    + servers t.b.v. ondersteunende taken



    Ik moet wel toegeven dat het makkelijk oordelen is vanaf hier, de details zoals code, databases-opzet en infrastructuur zijn hier niet gegeven. Desondanks blijf ik 1800 een veel te groot getal vinden, dat lijkt mij overkill.

    BeantwoordenVerwijderen
  14. De ratio's zijn bij de andere sites als MySpace en Facebook erg vergelijkbaar. Terwijl je eerder zou verwachten dat zij vanwege de nog veel grotere schaal een betere ratio zouden hebben. Dus zo'n overkill zullen die 1800 servers wel niet zijn, tenzij bij al deze diensten zeer incompetente mensen werken natuurlijk....;-)

    BeantwoordenVerwijderen
  15. i.p.v. negatief te zeiken dat het aantal servers niet klopt zouden de heren/dames hrrmf & Frank misschien beter kunnen juichen dat Hyves zoveel sneller en stabieler geworden is.

    Wellicht gebruiken ze niet alle 1800 de gehele dag, maar hebben ze op een groei gerekend.

    BeantwoordenVerwijderen
  16. 6 miljoen gebruikers damn, echt sick! 1800 servers is ook niet mis, uitvallen zit er dus niet bij :)

    BeantwoordenVerwijderen
  17. Bart hier, werkzaam bij een grote internet provider in NL, betrokken geweest bij het bouwen van de grote systemen (mail, news, DHCP, DNS etc). laat ik het kort houden, als je 1800 servers nodig voor deze data en db performance/storage cijfers kun je veel geld besparen als je de IT manager vervangt voor een goeie. Excuus als ik iemand hiermee beledig, maar dat is mijn mening.

    BeantwoordenVerwijderen
  18. Zit ik er heel erg naast als ik vermoed dat Hyves voornamelijk een probleem heeft met de kwaliteit en schaalbaarheid van de (waarschijnlijk deels al jaren oude) code en daarom relatief zoveel ijzer nodig heeft om de performance acceptabel te houden?

    BeantwoordenVerwijderen
  19. 't is niet de eerste keer dat we deze discussie ergens voeren, maar leuk dat Yme het deze keer namens Hyves doet ;-)



    Het ongeloof over het aantal servers begrijpen we maar al te goed! Hoe moeilijk moet het nou zijn om een paar profielpagina's snel te tonen? Waarom is Hyves altijd zo traag?



    Ik denk dat er een paar fundamentele zaken zijn waarom bij een social network zoveel servers nodig zijn:



    - het uitrekenen van de netwerk-relaties tussen leden kosten veel rekenkracht

    - database tabellen (data, indexen) worden groot

    - een pagina moet zeer snel gerendered worden; het tonen van de pagina moet in 1s kunnen gebeuren.



    Wat Yme al zei: de grote Amerikaanse peers van Hyves hebben vergelijkbare aantallen servers. Gesprekken die ik heb gehad met PHP, MySQL, Amazon en Akamai bevestigen dit: Hyves heeft geen exorbitant aantal servers voor een social networking app.



    Mocht je geinteresseerd zijn in verdere discussies, kijk dan op http://technologie.hyves.nl. We hebben daar een aantal pittige threads lopen over allerlei onderwerpen. Waaronder snelheid. Er wordt met grote regelmaat door de Hyves programmeurs- en systeembeheerders meegediscussieerd - eat your heart out.



    Koen Kam - de manager die volgens Bart ontslagen moet worden ;-)

    BeantwoordenVerwijderen
  20. Euh, Koen, het forum daar werkt niet... oeps?



    Daar zit 'm misschien ook een beetje de pijn. Het aantal servers zegt niet zoveel, maar de verhouding tussen de investering in ijzer en de resulterende performance en betrouwbaarheid lijkt, euh, hoe zal ik diplomatiek het zeggen, van buitenaf bekeken niet altijd even optimaal.

    BeantwoordenVerwijderen
  21. @Koen, tja, ik heb wel respect voor de prestatie die je hebt geleverd, 1800 servers up-and-running brengen en houden. Ik denk dat je een goede techneut en specialist bent. Maar je moet je afvragen hoe je Hyves naar het volgende niveau brengt, en als je dat plan niet al in de maak- of af hebt moet je je zorgen gaan maken denk ik. En die uitdaging zit meer in de mensen en organisatie dan in de techniek.

    BeantwoordenVerwijderen
  22. Gaaf het leden tal, het is inderdaad een gigantische motor.

    1800 Behind the scene en nog kan ik me niet voorstellen

    dat ie zo zwaar me IE trekt. Excusé, next too that veel gave

    improofments zijn er gemaakt meer Ajax/Javascript code.



    Wens jullie succes! (www.livingbyfaith.nl ons project who knows)

    BeantwoordenVerwijderen