Binero – Sveriges vänligaste webbhotell... ...eller?
Innehållsförteckning
• Syfte
• Min hemsida - Glosor.eu
. . . Syfte
. . . Historik
. . . Prestanda
• Webbhotellet Binero
. . . Kvoter
. . . Prestandaloggning
• Detta hände
. . . Det som hände strax efter
• Paniklösningen
• Belastning hos Binero efter avstängning
• Nytt webbhotell
• Bineros blogg - censur?
• Slutligen
• Personliga åsikter, absoluta sanningar
Bakgrund
Binero marknadsför sig själva som Sveriges vänligaste webbhotell. Tyvärr har jag fått erfara att det även finns en annan sida av Binero som mig veterligen inte uppmärksammats tidigare.
Syfte
Denna information publiceras för att att förklara för Glosor.eus användare varför de inte kunde använda sidan under några dagar för några veckor sedan.
(Jag vill också tydligt klargöra att jag egentligen inte tycker illa om vare sig Binero eller deras anställda. De har varit (och är till viss del fortfarande) mycket drivande när det gäller schysta användaravtal och webbpublicisters rättigheter på nätet och har mer eller mindre tvingat andra webbhotell att följa efter)
Min hemsida - Glosor.eu
Syfte
Syftet med Glosor.eu är att vem som helst – helt gratis – ska kunna plugga på sina glosor på ett roligt sätt. Jag kommer dagligen i kontakt med både lärare, elever och föräldrar till elever som uppskattar sidan och upplever att den har haft stor positiv inverkan på studieresultatet, särskilt för de lite yngre eleverna.
Historik
Jag började bygga på hemsidan när jag gick på gymnasiet och läste diverse datorämnen i skolan. Redan i ett tidigt stadium var lärare och elever inblandade i utvecklingen och detta visade sig vara ett vinnande koncept. Glosor.eu har sedan dess vuxit successivt och inget tyder på att denna trend inte kommer att fortsätta.
Prestanda
Eftersom jag är generellt intresserad (och enligt mig själv kunnig) inom webbprogrammering och hela tiden haft ambitionen att sidan ska bli riktigt stor har alltid sidans prestanda varit viktig.
På serversidan innebär det bland annat flera olika lager av cache-mekanismer och andra funktioner som lagrar undan beräkningar och data på ett sådant sätt att inga onödiga beräkningar görs.
KlientsidanPå klientsidan är tanken att det ska göras så få och små HTTP-förfrågningar som möjligt. Alla bilder och statiska resurser som CSS och Javascript ligger kvar hos klienten och minskar laddningstider och belastning på webbservern.
Webbhotellet Binero
Kvoter
Jag har hela tiden haft deras dyraste "paket", som i skrivande stund innebär en gräns på 50GB trafikkapacitet i månaden och 2GB lagringsutrymme. Detta är något som jag klarat mig på fram tills den senaste månaden, då jag kände mig tvungen att köpa till ytterligare bandvidd då jag låg precis på gränsen.
Jag är mycket väl medveten om att min sida är väl använd och att den drar mer bandvidd än den genomsnittliga kunden hos Binero. Med anledning av detta har jag flera gånger hört av mig och erbjudit mig att få betala mer mot att få mer resurser tilldelade. Detta var man dock inte intresserade av. Värt att notera är att sidan aldrig gick över någon av de kvoter som fanns.
Prestandaloggning
Utöver att jag ständigt höll ett öga så att jag inte skulle överskrida mina "kvoter" och övriga resurser har jag även konstruerat ett verktyg som kontinuerligt lagrar undan serverns belastning för att i ett tidigt stadium kunna identifiera eventuella problem med prestandan på servern, något som de själva inte verkar ha eller åtminstone inte verkar använda sig av speciellt aktivt. Mer om detta nedan.
Detta hände
En dag för några veckor sedan fick jag följande e-postmeddelande till min inkorg:
Vi har varit tvungen att stänga ner konto web##### som ligger på servern ######### eftersom vi har märkt under en längre tid att ni drar en hel del med CPU resurser. Vi tror inte det finns någon annan lösning förutom att ni flyttar till en VPS eller dedicerad server, dessa lösningar är inget vi erbjuder längre, men vi kan förslagsvis tipsa dig om ex. Ipeer som erbjuder billiga VPS:er.
Flytten måste ske rätt så snabbt, annars riskeras kontot att stängas igen eftersom det påverkar rätt många kunder på servern när servern är hårt lastad och det är något som vi givetvis inte skall ske.
Återkom om du har ytterligare frågor.
(Kontots namn och server är utelämnade med hänsyn till mig själv och andra berörda kunder)
Det visade sig att de hade stängt av mitt konto med omedelbar verkan. Jag ringde omedelbart upp supporten på Binero samtidigt som jag började gå igenom mina loggar. Efter en stunds telefonkö fick jag bestämt reda på att man var rätt så säkra på att det var mitt fel att servern gick segt och att jag snarast skulle se mig om efter ett annat webbhotell med dedikerad eller virtuelt delad server. Åter igen tryckte man på att man inte själva kunde erbjuda detta.
Det som hände strax efter
Eftersom jag var helt övertygad om att man måste begått ett misstag på Binero sammanställde jag diagram baserade på de prestandaloggar som kontinueligt lagrade information om belastningen.
Sammanställningen resulterade i en tresidig rapport i PDF-format som jag omgående skickade till Bineros support.
Eftersom jag sammanställde rapporten i stor hast och under hög stress kan en smått irreterad ton synas i textmaterialet, det ber jag så mycket om ursäkt om.
Rapporten finns i sin helhet här: prestandarapport.pdf (ca 1MB, Adobe PDF-format).
För de som inte hunnit eller är intreserade av att läsa rapporten följer här en kort sammanfattning av innehållet:
Bineros server har under en tid varit förhållandevis hårt belastad under dagtid, men en akut försämring skedde med början den 20:e oktober med frekventa korta perioder av mycket hård belastning med en load-faktor på mycket över 5. Detta fortsätter och förbärras de efterföljande veckorna.
Klicka på någon av bilderna för att förstora dem.
- Belastningen verkar dock inte på något sätt vara korrelerad till den totala användningen av Glosor.eu som är reletivt låg (en halv till en fjärdedel av den ordinarie) under sportlovsceckan 25 okt till 1 november. Notera att servern fortfarande är lika högt belastad, trots att Glosor.eu går på halvfart:
Klicka på någon av bilderna för att förstora dem.
Problemet är inte heller korrelerad till den dagliga variationen i användningen av Glosor.eu, som är förhållandevis låg dagtid fram till sen eftermiddag (ca 16:00). Det som också framgår av bilderna nedan är att Glosor.eu har en väldigt stabil och distinkt kurva för hur den används under en dag, både mellan veckodagarna och angränsande veckor. Att denna jämna aktivitet skulle orsaka den ojämna belastningen är enligt mig inte särskilt troligt.
Topparna i belastnigen kan inte heller förklaras av någon regelbunden aktivitet på Glosor.eu (som till exempel administrativa bakgrundsskript) eftersom spikarna i diagrammen ovan inte kommer vid samma tidpunkt de olika dagarna.
Belastningen finns på webbservern, inte databasservern. Eventuella enstaka tunga SQL-frågor från Glosor.eu kan alltså inte heller vara förklaringen.
Trots att jag aktivt försökte visa på att det inte var min sida som gjorde deras server seg, se sammanfattningen ovan, ville man inte aktivera min hemsida då man som sagt (fortfarande) var rätt säkra på sin sak.
Vi har gått från en problemfylld server till en server utan lastproblem alls enbart genom att stänga ner din sida.
Jag vet inte hur du gjort dina grafer men som user får man inte riktigt samma grafer som man får som superuser.
Vad anbelangar oss stör din sida väldigt många kunder för oss och enligt vårt avtal är detta inte acceptabelt. Enligt egen redovisning har du 2-300000 sidvisningar per dygn. Detta är långt över vad som generellt i branschen anses lämpligt för en delad hostingmiljö. Du bör tveklöst snarast se dig om efter en annan lösning och jag är övertygad om att dom flesta andra i branschen kommer hålla med oss. Delad hosting är ofta en bra lösning men ställer samtidigt krav på ansvar både från leverantören och kunden gentemot tredje part. Vi ber om ursäkt om du känner att vårt ansvar mot våra kunder väger över när vi gör vår bedömning i enskilda fall.
Notera gärna "från en problemfylld server till en server utan lastproblem alls", återkoppling till detta görs under rubriken "Belastning hos Binero efter avstängning" nedan.
Paniklösningen
Det hade nu gått ca två dygn och tiotusentals elever och lärare hade hunnit bli drabbade i undervisningen, flera hade hört av sig och undrat vad som stod på. Jag gav upp allt hopp om att få Binero att erkänna sitt misstag och fick sätta upp hemsidan tillfälligt på en server ståendes hemma i lägenheten. Servern hade 1GB RAM, en "vanlig" hårddisk utan RAID och en single-core processor (en gammal skräpdator). Den klarade utan problem att driva den trafik som fortfarande fanns på min sida, begränsande faktorn var min bredbandsuppkoppling som inte på något sätt var dimensionerad för denna typ av trafik. Visserligen hade min sida bara hälften så många besökare som vanligt (de hade väl tröttnat), men å andra sidan antar jag att servrarna hos Binero är betydligt mer kraftfulla än så.
Belastning hos Binero efter avstängning
För att återknuta till citatet ovan, "från en problemfylld server till en server utan lastproblem alls" tycker jag det är intressant att se hur belastningen på servern faktiskt såg ut efter avstängningen.
Nu undrar ni säkert hur jag kan ha belastningsgrafer från dagar där jag var avstängd. Det snabba svaret på den frågan är att man stängde av www-rooten med en .htaccessfil, detta stoppade hemsidan men inte det bakgrundsskript som loggade prestandan.
Så, vad hände? Belastningen avtar först efter två dagar. Notera att Glosor.eu stängdes av den 5:e. (Troligtvis hade man hittat den verkliga syndaren, men det är bara min personliga gissning.)
Nytt webbhotell
Som tur var kunde man på webbhotellet FSData utan större dröjsmål sparka igång en dedikerad maskin åt mig. På denna maskin ligger både själva webbservern (apache) och databasen (MySQL), och den går i princip helt obelastad, se diagram nedan. Trots att man på Binero hade separerade servrar för webbserver och databasserver verkar det som att en enda maskin kan hantera både uppgifterna samtidigt och ändå gå på tomgång.
Observera att ovanstående grafer är på det nya webbhotellet och att Glosor.eu hade lika många besökare (alltså, borde belasta servern ungefär lika mycket) de aktualla dagarna som innan avstängningen hos Binero.
Bineros blogg - censur?
/.../
Vi har även infört nya rutiner för hur vi hanterar störningar och specifika kunder som orsakar problem med våra servrar.
/.../
Den vanligaste orsaken till störningar hos oss (och andra webbhotell) är nämligen kunder som, vanligtvis omedvetet, orsakar problem på våra servrar. Det handlar om allt ifrån tokig programmering och vilda databasfrågor till extrema besökarantal* och massiva e-postutskick.
/.../
När vi upptäcker kundrelaterade störningar så kontaktar vi den berörda kunden, informerar om problemet och försöker hitta en lösning. I vissa fall, om kunden inte är nåbar eller om problemet orsakar väldigt stora störningar (som påverkar andra kunder), så stänger vi ner kundens tjänster.
/.../
Nu ska vi inte slå oss för bröstet för mycket. Vi vet att störningar kan uppstå, på de mest oväntade sätt, när man minst anar det. Vi kämpar istället vidare, med ett leenden på läpparna. :)
* Fet stil tillagt av mig, jag fick associationer till mitt "ärende".
Inlägget var betydligt längre än vad som nämndes ovan, det kan ses (förhoppningsvis ocensurerat (se nedan) och bevarat): "Upptid på uppgång".
Jag finner detta utspel mycket intressant. Följande fann jag till stor förvåning i min e-postlåda för ca 5 dagar sedan:
"Vi har varit tvungen att stänga ner konto webXXXXXX som ligger på servern XXXXXX eftersom vi har märkt under en längre tid att ni drar en hel del med CPU resurser."
Mycket märkligt att jag inte fått någon information om detta då det (tydligen) pågått under en längre tid. Att man senare totalt avfärdade de fakta jag presenterade för dem som visade på att det inte var mitt konto som störde gör saken inte bättre.
Vad som är mest intressant är nog att belastningen på servern inte alls var lägre vare sig en eller två dagar efter att kontot stängdes av. Slutligen vill jag säga att den aktuella hemsidan blivit flyttad till en server hos ett annat webbhotell, och den servern går i princip på tomgång (trots att min sida fortfarande drar lika mycket trafik som hos Binero).
Ytterligare ett citat från supporten: "Vi ber om ursäkt om du känner att vårt ansvar mot våra kunder väger över när vi gör vår bedömning i enskilda fall."
Självklart ska ett bra webbhotell snabbt gå in och stänga av konton om de hotar driften på något sätt. Problemet i det här fallet var att de helt enkelt stängde fel konto - så se upp om du ligger på en belastad server, nästa gång kan det bli just du som blir avstängd.
Erik
Så småning om skulle det visa sig att mitt blogginlägg blev bortcensurerat och aldrig visades. Man har tidigare pratat om att vara "nakna och oscensurerade", men det verkade bara gälla när det passade.
Slutligen
Trots att många känslor är inblandade har jag ansträngt mig till mitt yttersta för att vara objektiv i detta meddelande, i det fall jag spekulerat eller tyckt något framgår det tydligt att just så var fallet.
Jag har lagt upp alla kort på bordet och publicerat loggar som styrker det jag nämnt och i vissa fall även valt att citerera. Jag har bett Binero att redovisa något som styrker deras teorier men åter igen repeterar de sitt mantra "vi är rätt så säkra på vår sak".
På Binero uppger man att man är "nakna och oscensurerade" och som tidigare nämnt har man en policy att kontakta kunder i förväg om de under en längre tid belastar deras server. Trots detta har man ändå valt att censurera mitt blogglinlägg, och att stänga av mig utan förvarning (trots att man i mailet skrev att problemet varit känt sedan en tid tillbaka, se första citatet).
Personliga åsikter, absoluta sanningar
Det är viktigt att skilja på ren fakta och personliga åsikter. Vad som är "sanning" kan vara svårt att säga, det kan variera från person till person, bilda gärna din egen uppfattning genom att studera materialet ovan. Nedan följer mina personliga åsikter om denna händelse.
I detta fall har man begått ett misstag på Binero, något som fick konsekvenser både för mig och för stor del av mina användare. Jag är medveten om att alla gör misstag, ingen är perfekt, men att hantera misstaget genom att sopa det under mattan och försöka lägga locket på (se avsnittet om censur ovan) efter bästa förmåga är enligt mig inte särskilt föredömligt.
Eller vad tycker du?