For å få servere til å levere maksimal ytelse når vi trenger det, valgte vi å basere oss på Intel's nye Haswell-cpu som grunnkrav i vår nye plattform. En av teknologiene som brukes er intel_pstate, en relativt ny måte å styre hastigheten på cpu'en på. For en prosessor er det å rendre en nettside en kort oppgave, men for at det skal gå raskest mulig bør prosessoren kjøre med full fart når den har behov for det. Dette har tidligere vært vanskelig å kombinere med strømsparing, men intel_pstate har endret mye av dette.

Gamledager

De gode gamle metodene som for eksempel 'ondemand' sjekker hvert 10ms om belastningen er gått over 95%. Hvis belastningen er høyere enn 95% så økes cpu-frekvensen med ett eller flere hakk avhengig av noen faktorer. Problemet er at en websiterequest som kjører i feks 5ms ikke vil utløse dette fordi den er over før økningen skjer og load-gjennomstnittet for de 10ms da ville vært rundt 50%. De lengre requestene vil måtte kjøre en stund i sneglefart før de etter 10-20ms endelig kan kjøre i full hastighet det cpu'en klarer. Denne økningen skjer ofte også bare pr core, så når man gjør en SQL-spørring så kjører kanskje databasen fortsatt i sneglefart. I tillegg vil en prosess som venter på I/O kunne kjøre i 100% load og gjøre at en core boostes til turbo-hastighet selv om den egentlig ikke gjør noe i det hele tatt.

intel_pstate

intel_pstate endrer dette helt. OS'et har ikke lenger stort med hastigheten å gjøre annet enn å sette en valgfri øvre begrensning. Med denne så er det CPU'en selv som bestemmer hastigheten og den kan oppjustere hastigheten basert på det den opplever av belastning nå og det som ligger i køen for, samt temperatursensorene sine. Dette gjør at den nesten umiddelbart kan booste rett til turbo hvis den anser det er nok å gjøre og det er lav nok temperatur, og umiddelbart etter køen er tom så kan den senke hastigheten igjen for å få ned temperatur.

En prosess som venter på I/O gir ikke noe CPU-load så i det tilfellet så vil den kjøre helt idle i strømsparing istedetfor turbo som 'ondemand' gjerne ville gjort.

Effektene er derfor

  • Vesentlig bedre responstid på CPU når den ikke har konstant load
  • Lavere strømforbruk og temperatur
  • Større mulighet for å bruke Turbo i lengre perioder ved behov på grunn av den ellers lavere temperaturen

For sidene på Raskesider.no betyr det at mer hardt og tungt arbeid kan gjøres mye raskere enn tidligere. Vi har derfor implementert støtte for intel_pstate i Driv OS, som Raskesider.no kjører på.