Trimma din PowerEdge-server med hjälp av workload-profiler i BIOS!

Att trimma en ny server med BIOS-inställningar känns lite som en 90-talsgrej men har på riktigt blivit aktuellt igen! Fram till mars 2021 valde vi tillsammans med kund vilket prestandaläge som skulle appliceras i serverfabriken, men EUs nya energidirektiv for Lot9 tillåter inte längre detta! Servrar som nu levereras inom EU kommer därför alltid med energisparläge aktiverat.

Varför är detta viktigt? Även om det inte gäller alla miljöer så kan vissa applikationer och jobb gå upp till 10 gånger snabbare efter en fullständig optimering av alla prestandaparametrar i BIOS. Strömförbrukningen går upp i prestandalägen, däremot är det bättre miljömässigt att köra en server fullt ut än tio servrar på halvfart.

Är det svårt att optimera en server? Antalet BIOS-parametrar för prestanda- och energiinställningar i en ny PowerEdge närmar sig hundratalet. Det krävs en omstart för att byta inställningar – så man kan förstå att det är tungt att testa sig fram.

Så hur kan vi hjälpa till? Vi har gjort det enkelt att hitta rätt optimering för den arbetslast man tänkt sig genom de två begreppen ”System Profile” och ”Workload Profile” som används för att sätta vissa eller alla prestandaparametrar i BIOS. Vi rekommenderar att i första hand använda arbetslastprofiler som ger en mer finkornig anpassning av servern än att enbart byta systemprofil.

System Profile: Systemprofiler sätter en delmängd av prestandaparametrarna i BIOS och låser dem för ändring. Det är praktiskt när du inte så mycket om din arbetslast eller den varieras över tiden.  Systemprofilerna är relativt självförklarande förutom ”Custom”, som låser upp systemprofilernas parametrar för individuell redigering.

Workload Profile: Att arbeta med arbetslaServerrummet 10stprofiler är att föredra. De fungerar som snabbkommandon för att ställa in både systemprofilen med tillhörande prestandaparametrar och resterande BIOS-parametrar så optimalt som möjligt för en utvald arbetslast. Detta ger bättre resultat än att enbart jobba med systemprofilen. Notera att servern efter omstart nollställer fältet Workload Profile till ”Not Available”.  Endast namnet på den resulterande systemprofilen och varje parameters inställning sparas i BIOS.

Hur vet jag vilket prestandaläge som passar bäst?
Om du inte redan vet hur det ser ut så är https://www.liveoptics.com ett bra sätt att se hur stor cpu-belastningen är och hur många kärnor som typiskt jobbar en normal dag. Om många kärnor har lite att göra eller du hittar ”saturated cores” (gul kurva i LiveOptics) är det sannolikt att de kärnor som faktiskt jobbar skulle gå mycket snabbare i systemprofilen ”Performance” med tillägg som sätts med hjälp av en arbetslastprofil som slutar på ”Performance Profile”.

Hur stor skillnad gör inställningarna?
I regel är skillnaden inte så stor. Däremot, på en server med många processorkärnor där man kör ett ensamt enkeltrådat jobb, kan skillnaden i prestanda bli så stor som tio gånger! Innan vi ger ett sådant exempel tittar vi på normalsituationen.

Från fabrik kommer varje PowerEdge med systemprofilen ”Performance Per Watt (DAPC)” som är ett balanserat läge med Dell Active Power Controller. I många tillämpningar ger denna ett mycket bra resultat. Inställningen påminner om batterisparläget i en Dell-laptop – under normala förhållanden går processorns klocka i låg hastighet (typ 1 GHz) men om servern pressas hårt kommer processorn klockas upp mot sina maxvärden och prestera betydligt bättre.

Genom att köra t.ex. SPECcpu-tester ser man att standardinställningen endast ligger 5-6% under de två prestandalägena samtidigt som den drar ner energiförbrukningen rejält i ”idle mode”, d.v.s. när servern inte har något att göra.

Ge ett exempel på arbetslast som drar stor nytta av Performance-läget!
I en situation där total CPU-last är låg men enskilda kärnor går på 100% kan det se mycket annorlunda ut. Vi testade på en R740 byggd för maximal prestanda i SQL Server. Utmaningen var att göra maximalt antal sql ”insert” per sekund med en log flush efter varje. Definitivt inget alla frågar efter, men detta test är helt baserat på en dagsaktuell kundsituation (ett särskilt tack till Sofia och Micke!) som löste sig just med hjälp av att byte till en mer optimerad systemprofil.

Processorn kördes med ”Performance Per Watt (DAPC)” i lägsta energiläge under hela testet. Med våra 2x Platinum 8280L blev det 1.0 GHz vilket knappast imponerar. Resultatet blev 2 532 insert/s.

Vi började labba med olika systemprofiler: Systemprofilen ”Performance Per Watt (OS)” gick lite bättre. Våra stora processorer klockar upp sig till 1.4 GHz men även det är för lite för att vi skall vara nöjda. Resultatet gick upp till 2 941 insert/s.
Med Systemprofilen ”Performance” spann processorn upp till över 3 GHz redan innan testet startade och här fick vi betydligt bättre svarstider. Resultatet på 11 111 insert/s är hela 4.4 gånger bättre än med standardinställningen.

Därefter provade vi ett par arbetslastprofiler: Arbetslastprofilen ”DataBase Optimized Performance Per Watt Profile” är bara 1.6 gånger bättre än standardprofilen och förmodligen bra för många SQL-servrar. Vi gick därefter på vad vi tror är den snabbaste inställningen, ”DataBase Optimized Performance Profile”, som tar oss till ett fantastiskt resultat på 16 949 insert/s. Hela 6.7 gånger bättre än standardinställningen!

Slutligen provade vi arbetslastprofilen ”Low Latency Optimized Performance Profile” som också lät intressant. Resultatet i detta test blev identiskt med det förra, 16 949 inser/s.

Mer last ger snabbare kärnor även med standardinställningar

Att standardinställningen (DAPC) fungerar bäst när servern har en CPU-förbrukning som ligger över enstaka procent syns redan när vi kör tio parallella jobb med samma test som ovan. På den stora servern med 56 kärnor räcker det för att trycka CPU-förbrukningen till 6% vilket klockar upp kärnorna till 2 GHz. Vi får snabbare körtider på samtliga 10 jobb jämfört med när vi kör 1 jobb. Resultatet blev nära 2 gånger bättre än tidigare vilket visar att standardinställningen fungerar bättre ju mer last vi lägger på servern.

Slutsats

Vårt SQL-test som redovisas i figur 3 påvisar förmodligen max differens mellan de olika lägena. Detta eftersom vi har hela 56 kärnor i testmaskinen och endast använder enstaka av dessa under testet. Resultatet blir att energisparfunktionen tycker att servern har minimalt med jobb och därför går i maximalt strömsparläge.
Även om det är ganska ovanligt att skillnaden blir så pass stor som vi påvisat här finns anledning att tänka på BIOS-inställningar i framtiden. Om du är osäker kan du prova dig fram, men det kräver förstås en eller flera omstarter. Du är också välkommen att ta kontakt med oss för diskussion.
Enklaste sättet att genomföra en ändring är med nedanstående sekvens i iDRAC:

Dashboard > Configuration > BIOS Settings > System Profile Settings
Apply
Apply And Reboot