De var ett tag sedan man skrev på bloggen, de ber jag om ursäkt för och ska försöka förbättra mig lite. Mycket har hänt på Wilson på senare tid och mer kommer att hända men nu var de inte de jag skulle berätta om utan jag tänkte berätta lite om vår nya hostinglösning och framförallt fördelarna med en del av dem valen av program som vi valt att använda. Bakgrunden till vi har valt att dra igång en egen hosting för våra kunder är helt enkelt så att vi har märkt att det inte finns någon bra lösning för de CMS:et som vi levererar våra hemsidor med. CMS:et heter Drupal och är helt klart den största stjärnan på Open Source marknaden när de kommer till CMS men är också tyvärr väldigt krävande av webbservern. Flaskhalsen är antalet anrop den gör till databasen är väldigt många och de är ofta där som hostingleverantörerna inte kan leverera för Drupal. Så vi bestämde oss helt enkelt att lösa de själva. Så här är vår hosting uppsatt:
- Linuxbas med Ubuntu server 10.04, 64 bits. (Ja jag vet, Ubuntu?! men jag är bekväm med Ubuntu)
- Nginx som webbserver
- Php 5.3 med php-fpm med apc
- Memcache
- Varnish som frontcache-system.
- Mysql 5.1
Varför har vi då valt denna uppsättningen. Valen är gjorda efter råd från Wilson vänner och oändligt läsande i tutorials och undersökningar. Ubuntu valde jag helt enkelt för att jag är bekväm med dess funktionalitet och fungerar relativt bra. Nginx eller Engine-x som de också heter är de Johan Bergström på blogg.se/yo.se som tipsade om och Nginx vinner i hästlängder över Apache som är det mest vanliga valet av webbserver. Den vinner helt enkelt i att den märks knappt att den körs jämfört med Apache. Php 5.3 med php-fpm valdes för dess prestanda och enkla konfigurering med Nginx. APC (Alternative PHP cache) kopplades på för att sätta fart på php anropen. Memcache används för att cacha data i Drupal så att databasen inte används för detta. Redan med dessa påkopplade är servern i god form och klarar lätt den press som den kan få men vi ville köra lite overkill och installerade då Varnish som är en reverse proxyserver eller som jag kallar de, "Cachingmekanism". Den ligger helt enkelt framför Nginx på port 80 och cachar allt(så länge man inte är inloggad) och gör så att sidorna laddar ruskigt snabbt. Mysql är helt enkelt för den funkar. PostgresSQL är ett bra alternativ här men Mysql är lite mer standard. Så där ja, där har ni hela uppsättningen. Detta är vårt val och de finns väl säkert andra med mer erfarenhet från webhosting som sätter sig emot men för Drupal siter fungerar detta klockrent.
Här har ni lite stresstester på vår server. Började med att köra ett test på nginx, alltså utan Varnish. ab -c 50 -n 1000 wc1.wilsonnetwork.se:9880/
Som man kan se så gick CPU:n upp till 100% direkt. Men ändå gick de helt klart bättre än vad de hade gått med Apache.
Resultat:
Complete requests: 1000
Failed requests: 178 (Connect: 0, Receive: 0, Length: 178, Exceptions: 0)
Write errors: 0
Total transferred: 12661822 bytes
HTML transferred: 12490822 bytes
Requests per second: 16.41 [#/sec] (mean)
Time per request: 609.447 [ms] (mean)
Time per request: 60.945 [ms] (mean, across all concurrent requests)
Transfer rate: 405.78 [Kbytes/sec] received
Så här gick med Varnish på, alltså med ab -c 50 -n 1000 wc1.wilsonnetwork.se/
CPU:n helt stilla. Gick som max upp till 1.3 men vilken skillnad. Resultat: Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 12723262 bytes
HTML transferred: 12503333 bytes
Requests per second: 79.27 [#/sec] (mean)
Time per request: 126.147 [ms] (mean)
Time per request: 12.615 [ms] (mean, across all concurrent requests)
Transfer rate: 1969.93 [Kbytes/sec] received
Vad kan man säga, resultatet talar ganska tydligt. Med Varnish kunde man ta hand om 5 ggr så fler förfrågningar per sekund. Jag vet att detta är ganska enkelt stresstest för servern men de visar ändå vad som kan uppnås med Varnish. Hoppas att ni tyckte de var intressant läsning men man behöver nog vara lite datanörd som jag för att tycka de.
På återseende!

Kommentarer
Inga kommentarer ännu. Bli först!
Skriv ny kommentar