Derfor tok ett lite sekund knekken på Internett-gigantene
Helgen bød på kaos.
Derfor får vi ekstrasekundet
Natt til søndag denne helgen var det ikke mer enn et ekstra sekund som skulle til for å ta knekken på flere store nettaktører. Verdens atomklokker la til et ekstra sekund for å kompensere for jordas rotasjon, men når internettservere verden over skulle følge etter ble det rot.
Verdens største nettforum, Reddit, gikk ned. Det gjorde også velkjente nettgiganter som Mozilla, Linkedin, Foursquare, Yelp og det store Gawker-nettverket.
Hvordan kunne en liten tidsjustering rote det så grundig til for mange? Magasine Wired har i en lengre artikkel publisert forklaringen.
Bakgrunn: Kaoshelg for Internett »
Ingen vet når ekstrasekundet kommer
Tid er komplisert, og avhenger av hvor raskt jorda spinner rundt solen. Hvert fjerde år legges det til en dag for å kompensere for at jorda bruker 365,25 dager rundt sola, ikke 365. Men skuddåret er ikke nok for å jevne ut jordas faktiske rotasjon med vårt tidssystem.
Det kreves finjustering, og en gang i ny og ne legges det til et ekstra sekund i verdens atomklokker for å bringe alt i balanse. Det hindrer at vi en gang i fjern fremtid ender opp med at solen går ned om morgenen og opp på kvelden.
Skuddåret er forutsigbart, selv langt frem i tid vet vi når 29. februar sniker seg inn i kalenderen. Men slik er det ikke med ekstrasekundet. Selv nå kan man ikke si når det vil komme neste gang. Det kommer an på hvor raskt jorda spinner rundt sola, en hastighet som ikke er konsekvent. Været, tidevannet, månen, strømmer i jordas indre og mye mer påvirker denne hastigheten på et mikroskopisk nivå.
Siden atomklokkene ble innført på 70-tallet har vi lagt til 25 slike ekstrasekunder. Vi hadde det senest i 1999, 2005, 2008 og i helgen som var. På rundt 40 år har man med andre ord fått nesten et halvt ekstra minutt å slå ihjel på denne kloden.
Lek med tid skaper problemer
Så man legger til et sekund en gang i blant, hva er så vrient med det? Vel, temmelig mye. Tid er en faktor som har langt mer å si enn når du skal på jobb eller når bussen går.
I praksis ble det ikke lagt til ett ekstra sekund ved midnatt, natt til 1. juli, man hadde det samme sekundet to ganger. Effektivt stoppet alle klokker ett lite sekund, slik at klokken 00.00.00 (GMT) varte i to sekunder. Først var klokken 23.59.59, så 00.00.00 og så 00.00.00 før den endelig ble 00.00.01.
Det viste seg da at en rekke digitale dippedutter, som servere, laptoper og nettverksutstyr rett og slett ikke viste hva de skulle gjøre når et ekstra sekund ble kastet inn i blandinga. Etter kort tid hadde man pekt ut to syndere: Det åpne operativsystemet Linux og programmeringsspråket Java.
– Når du tuller med tiden er det en stor sannsynlighet for at noe går galt. Utviklere kan prøve å forutse slike problemer i forkant, men det er vanskelig å forutse hvordan det vil fungere i virkeligheten. Det er irriterende, for det er et klassisk tilfelle der programmeringskode som nesten aldri kjører ikke kan bli testet under normale forhold, sier Linux' far, Linus Torvald, til Wired.
– Ekstrasekunder og sommertid er spesielt vrient, fordi de ikke er uten faste regler. Ekstrasekundet et verst, nesten hver gang vi har et finner vi noe, sier Torvald, og sikter til problemene forrige helg.
Lang tid uten
Problemet som oppstod i helgen var rett og slett at maskinvare, servere som driver nettsteder, ikke klarte å synkronisere seg med atomklokkene verden over. Grunnen til at det skaper problemer, kan spores tilbake til årtusenskiftet.
Selv om vi har hatt 25 av disse ekstrasekundene siden 70-tallet, har vi ikke hatt mange av dem i Internetts kommersielle tid. Viktigst av alt hadde vi ingen mellom 1999 og 2005, tiden da de fleste sky- og nettjenester, samt flerkjernede prosessorer virkelig blomstret.
Vi laget teknologien Internett i dag baserer seg på i en tid der ekstrasekunder ikke kom. Det var ikke en faktor man på den tiden ikke ga så mye oppmerksomhet, fordi den aldri dukket opp under testing.
Klar for å høre hvordan denne lille tidsjusteringen skapte problemer som tok deler av nettbransjen på senga? Bla om til neste side »
Dette skjedde i helgen
Problemet var Linux
Natt til søndag var det få av de som ble rammet av ekstrasekundet som skjønte hva som skjedde. Bare dagen før ble Amazons massive serverpark i Virginia, USA, slått ut av et lynnedslag. Parkene til Amazon driver store deler av internettinnholdet verden over, og det var ikke usannsynlig at problemer der kunne skape nettverksproblemer andre steder på Internett.
Men etter noen titalls minutter skjønte man at forklaringen ikke var så enkel. Det var maskinene til de enkelte nettstedene, Reddit, Mozilla, Gawker og mange flere som ikke fungerte som de skulle.
Felles for mange var at de kjørte mye på Java, men felles for absolutt alle var at de baserte seg på en Linux-platform, operativsystemet som så mange bruker.
Etter litt feilsøking kom man frem til at det var et problem i kjernen til operativsystemet, og at problemet oppstod ved midnatt, om man gikk ut i fra GTM-tidssonen. Serverne gikk rett og slett suppetregt fra og med tiden da ekstrasekundet ble lagt til.
Jason Harvey, en av systemadministratorene bak Reddit, har uttalt seg til magasinet Wired og forteller at de etter en drøy halvtime fant problemet. I kjernen ligger det et tidssystem som heter "hrtimer". Denne ble forvirret når sekundet etter midnatt kom to ganger på løpende bånd, noe som sendte serverne inn i en kaosstilstand som raskt låste prosessorene.
Skikkelig militærvekking
Kombinasjonen av tidssystemet og ekstrasekundet er ett av de problemene Linux-Torvald refererte til.
«Hrtimer» kan litt enkelt beskrives som et system som tas i bruk nå et program sover, mens det venter på at operativsystemet skal gjøre seg ferdig med en annen oppgave. Hvis operativsystemet bruker for lang tid på å gjøre seg ferdig, «vekkes» de sovende programmene av Hrtimer.
Men når ekstrasekundet kom, da juni ble til juli, fulgte ikke Hrtimer med. Kjernen i Linux fikk med seg tidsendringen, men ikke Hrtimer – noe som gjorde at den plutselig gikk et sekund før operativsystemet.
Det startet et salig spetakkel, Hrtimer begynte rett og slett å vekke alle de sovende programmene – samtidig. Det var dette som overbelastet servere, og noe veldig likt skjedde hos både Mozilla og Gawker.
Reddit kjører på en Cassandra-database, som er bygget med Java på toppen av Linux. Mozilla kjører på Hadoop, mens Gawker tar i bruk Tomcat-servere. De så alle et problem som minnet mye om akkurat dette, men i en litt annen form. Problemet for Reddit var at at applikasjonene som ble vekket, startet å gå rundgang. De stoppet ikke opp, selv om de var ferdig, noe som til syvende og sist overbelastet prosessorene.
Løsningen finnes
For samtlige som ble rammet av problemene i helgen, løste det seg ved å gi serverne en omstart. Selv om ekstrasekundet på ingen måte er populært i nettbransjen, finnes det flere metoder for å unngå problemene.
Først av alt hadde en Linux-kjenning ved navn John Stultz allerede fikset problemet med Hrtimer tidligere i år, men ikke alle versjoner av Linux har fått med seg denne denne endringen.
For å holde operativsystemet synkronisert med verdens atomklokker brukes en tidsprotokoll, NTP – kort for Network Time Protocol. Fredag forrige uke sendte NTP ut et varsel til alle servere om at de måtte forberede seg på en litt lengre arbeidsdag i helgen, for det nye sekundet var på vei.
Dette varselet var det flere som tok i bruk. Opera, den norske nettleseren, satt rett og slett NTP på pause i ett sekund, og på den måten slapp de å endre noe i systemet ellers.
Søkegiganten Google tok seg av dette på en litt mer teknisk måte, som de ofte gjør. Fra varselet gikk ut fredag forlenget de hver sekund med noe mikroskopiske brøkdeler. På den måten hadde serverne allerede gått et sekund frem i tid når ekstrasekundet kom snikende ved midnatt.
(Kilde: Wired)