Min Atom-drevne Linux-server sov sig til en alt for høj load

Jeg har igennem det sidste stykke tid været utilfreds med min Linux-server hjemme - en FitPC2. Jeg kører mail- og web-server på maskinen samt netværksovervågning med Hobbit. Da serveren har en 1.6 GHz Intel Atom processor, så var jeg overrasket over at se min Hobbit CPU-load overvågning rapportere 5-10 alt for ofte.

![Eksternt billede](http://www.version2.dk/modules/xphoto/cache/21/7421_450_300_0_0_0_0.png" alt="load)

Min analyse startede med at jeg loggede jævnligt ind på maskinen og fulgte processer via top. Det viste intet andet end at jeg ofte så en høj load netop da jeg loggede ind.

Et af de næste værktøjer, jeg tog i brug var powertop (et rigtig godt program). Det viste mig, at min Atom-processor var i C6 Deep power save state over 99% af tiden.

Efter at jeg i BIOS'en disablede C-states fik jeg MARKANT lavere load på maskinen, og Hobbit måler nu (efter fredag) normalt 0-0.1 i load. Straffen er selvfølgelig et lidt højere strømforbrug og lidt højere temperatur, men jeg kan reelt ikke måle mere end en grad højere pga. den ændring.
At disable C-states er et trick, der er værd at checke for andre med Atom-maskiner.

Lidt sjovt at jeg fik en lavere load ved at lade CPU'ën sove mindre - men oplagt efter at tænkt det igennem. Fidusen er at det koster for lang tid at vække processoren fra C6-sleep og med den Ubuntu Linux jeg har på maskinen så er resultatet en høj load, nogle gange processoren vækkes.

Har I erfaring omkring debugging af lignende problemer, så skriv meget gerne nedenfor. Jeg synes det var lidt tricky at indse problemets rod :-)

/pto

Kommentarer (20)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Lars K. Hansen

Hey,

Lige et totalt "offtopic" spørgsmål - men hvad har du af harddisk i den?

Jeg er selv interesseret i at anskaffe mig en Fit - men kan ikke bestemme mig for om hvilken hdd jeg vil sætte i den.

/Lars

Ontopic - jeg ved at Canonical har et overvågningsprogram (web) til deres server distro - har du prøvet det?

Lars Bjerregaard

Instinktivt lyder det forkert at transitioner fra c-states skulle forårsage cpu load. Smager lidt af bios-bugs eller kernel-bugs. Anyway, jeg ved ikke hvilken præcis distro-version du kører med, og har ikke selv rodet med det, men det skal da ikke stoppe mig fra at google lidt... :-)

Har du prøvet at lege med de forskellige cpu frequency utils og govenors? Måske kan dette være inspiration:
http://www.gentoo.org/doc/en/power-management-guide.xml#doc_chap3

Et par andre links som måske har noget kød på:
https://wiki.ubuntu.com/PowerManagement
https://wiki.ubuntu.com/power-management-in-Ubuntu

Sorry jeg ikke kan hjælpe mere konkret.

michael jensen

Jeg har leget lidt med cpu-scaling på min lille server der ligeledes har en 1,6 ghz atom processor.
min erfaring var følgende;
med mailserver, webserver, samba-server samt diverse andre ting kørende (for at få load på maskinen) lå den på ca 10% (svigede mellem 8 og 12) min forventning var derfor at jeg sagtns kunne drosle cpu'en lidt ned. jeg droslede den ned til 1 ghz og så en load der var en smule højere en forventet (ca 25-30%) men stadig havde den krafter nok. jeg gik så ned på 800 mhz (halvering af de originale 1,6 ghz) her ville jeg logisk have forventet at load lå ca dobbelt så højt som når processoren arbejdede ved dobbelt hastighed, men med samme processor kørende som før brugte den knap 50% (svingede mellem 40 og 70%,men lå primært lige under de 50)
alt i alt var konklussionen at maskinen fint kunne klare at være droslet ned (hvilket bruger mindre strøm og varmer mindre).
droslet ned til 600 mhz lå load mellem 80 og 100% hele tiden.
Jeg lukkede for alle de ektra ting jeg havde kørende. og kunne drosle den helt ned til 400 mhz.
dog oplevede jeg at jeg ikke fik den forventede hastighed fra filserveren når jeg brugte en disk forbundet via usb.

jeg prøvede derefter at slå automatisk speed-scaling til, her oplevede jeg at maskinen generelt lå nede i de lave hastigheder, men når jeg så tilgik filserveren så var den sygt langsom de første ca 10 sekunder. derefter satte maskinen selv hastigheden op til at køre 1,6 ghz, og så foregik overførsel ved "normal" hastighed

kiggede jeg på grafer over cpu-load over tid så var det tydeligt at spotte hvornår maskinen selv skiftede frekvens, for der lå den på 100% i de ca 10 sekunder. ligeledes så var det tydeligt at se at med automatisk speedscaling lå load generelt ret højt hvorimod når speedscaling var slået fra så lå load og peakede ved 5% også ved overførsel af filer fra usb-disken

min løsning blev ikke at drosle ned, eller at bruge automatisk speedscaling

jeg kunne forestille mig at dine oplevelser med sleepcykles svarer til at det der foregår er en bios-styret speedscaling af processoren

Nicolai Petri

Hejsa.
Er du sikker på problemet ikke er at din maskine måler CPU forbrug af den totale tilgængelige kapacitet ? Når maskinen går i power save mode så sænker den frekvensen og så vil et cpu forbrug på 1 % pludselig vise et cpu forbrug på 50% - men det er OK - maskinen laver stadig mindre men din grafer ser bare dumme ud?
Hvis belastningen stiger yderligere så vil Linux hive maskinen ud af powersave og dermed frigøre flere CPU resourcer.

Peter Toft

Jeg kan godt se din tankegang Nicolai, men jeg har også oplevet af maskinen der kører Ubuntu 9.10 (Karmic Koala) kan stalle 5-10 sekunder hvis den kører med C6 powersave. top eller uptime viste så en vildt høj load efter maskinen kom til live igen.
Så jeg tænker også på en kernel begrænsning eller BIOS bug.
Der sidder en Seagate ST9160310AS i maskinen.

Michael Rasmussen

C/P fra top på min ATOM:
top - 16:34:45 up 36 days, 21:49, 4 users, load average: 0.02, 0.05, 0.07
Tasks: 133 total, 1 running, 132 sleeping, 0 stopped, 0 zombie
Cpu0 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 0.0%us, 0.3%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 848896k total, 694876k used, 154020k free, 156844k buffers
Swap: 1999928k total, 0k used, 1999928k free, 273144k cached

$ cat /proc/cpuinfo |grep 'model name' | sort -u
model name : Intel(R) Atom(TM) CPU 330 @ 1.60GHz

På min kører en dom0 og 2 domU under XEN. Ovenpå kører mail (amavis+dspam), DNS, DHCP, WWW, LDAP og DBMS og NFS

Der er selvfølgelig også perioder med højt load, men det er oftest når der kommer masser af spam.

Lasse Makholm

...synes jeg...

Først og fremmest er det vigtigt her at huske at load-tallet ikke nødvendigvis har noget med idle-tid (eller ikke) at gøre... "Load" er i det her tildfælde bare længden af run-køen. Dvs. antallet af processer som venter på at få CPU-tid. Hvis din CPU sover (og det gør den i C6) 99% af tiden, så er det jo en rimelig antagelse at der i den sidste ene procent af tiden er 100 gange så mange processer som venter på CPU-tid, end hvis CPU'en kører hele tiden...

Hvis run-køen er 10 når CPU'en falder i søvn, er den jo stadig 10 når CPU'en vågner igen og har været det under hele søvnen - det kan jo ikke være meget anderledes...

Så kan man argumentere for at load-tallet er misvisende men det har det alle dage været - den diskussion er ligeså gammel som Unix... Længden af run-køen er længden af run-køen. No more, no less...

Henrik Størner

Ja, load-average siger ofte ikke så meget om hvad belastningen er på serveren, omend et meget høj tal her nok kan gøre at systemet virker "sløvt".

Pto - det ville være interessant at se en anden graf fra dit Xymon system: Den der ligger ovre på "trends" siden og viser CPU-tid fordelt på system, I/O wait, user og idle. Den samler data fra vmstat, som nok giver mere brugbar info om hvor meget processor-kraft der bruges.

Nicholai Hansen

Jeg må tilslutte mig god mening folkene, load average er blot et udtryk for at der er ting der venter på at køre.

Der er nok en del af kerne der har opdaget det hele kan klares i en ruf, skifte ned til C6 og så starte processoren op igen, når der er nok der venter.

Selv har jeg været i en anden lidt spøjs situation, da mit mediecenters kortlæser fik load til at ligge mellem 0.5 og 1, hvis jeg husker rigtigt. Efter kortlæseren blev koblet fra faldt load til omkring 0.1.

Maciej Szeliga

Jeg bruger Atom baserede PC'ere og Mac Mini'er helt ens sat op, begge med en out-of-the-box OpenSuSE 11.3, som tynde klienter: målt trømforbrug på Atom er 20W og på Mac Mini er det 10W (idle). Standby strøm er 2W for Atom og 0,5W for Mac Mini.
Begge systemer er udstyret med 2GB RAM, Atom har en 160GB 7200RPM disk, Mac Mini har 320GB disk, grafik leveres i Atom af 945 chipsettet og i Mac Mini af et nVidia grafikkort. Atom systemet har ingen blæser, Mac Mini har en blæser som er lydløs.

Ummiddelbart er min vurdering at hvis man skal spare strøm skal man gå efter Mac Mini og ikke Atom.
Atom ser mere ud til at være lavet som prisbilligt alternativ frem for et strømsparende alternativ.

Jeg skal lige tilføje at Mac Mini'en kan drive to skærme i 1920x1200 hvilket var årsagen til at jeg indkøbte den, jeg ledte meget længe efter alternativer.

Dennis Krøger

Maciej, nu er der en hel del andre strømforbrugere i en PC end Atom processoren. At sammenligne hele pakken giver ikke umiddelbart mening, slet ikke uden at kende de andre dele.

Power supply er f.eks. vigtig (mange kan have elendigt strømforbrug ved lave træk).

Edit: Til gengæld ser forskellige tests ud til at være enig, jeg kan ikke umiddelbart finde nogen Atom platform under 20W.

Maciej Szeliga

Fit-PC2 har jeg også haft kik på, den overholdt ikke kravspec på 1920x1200 opløsning (på det givne tidspunkt) jeg kunne max få 1600x1200 ud af den og ydelsen var ikke specielt imponerende.
Bemærk at strømforbruget var ikke primær overvejelse i mit tilfælde. Efter vi købte Mac Mini (til dem som skulle bruge to skærme) målte vi det reelle forbrug og blev meget overraskede over resultatet.

Jens Kjellerup

Min Acer Aspire Revo 3600 -Atom baseret - bruger 14W når den streamer 720P og 7W når den bare stå og kører. Forbruget er målt på primær siden så af power supply.

Acer'en trækker ud over sig selv extern blueray drev, DVB-C tuner og Hauppauge irmodtager - alle strømforsynet via usb porten.

Jeg har ikke testet standby idet Acer'en bliver slukket når den ikke er i brug til mythtv (Mythbuntu).

Jeg købte den oprindeligt for ca. 1500 kr i UK men kan ikke finde en mere til den pris - desværre.

Finn Aarup Nielsen

Jeg har en Acer Aspire One netbook med to CPU'er af typen "Intel(R) Atom(TM) CPU N450 @ 1.66GHz". Med sort skærm (ekstern skærm) og under kompilering af Linux-kernen (sædvanligvis op til 2x100% belastning) meddeler en "Elworks"-dims 13 Watt. Om den Elworks måler er præcis ved jeg ikke?

Hvis jeg husker ret så bruger netbooken uden synderlig belastning enten 9 eller 11 Watt. En Ebox 3310 med Vortex86dx CPU og harddisk uden synderlig belastning viser vist omkring 7 Watt hvis jeg husker rigtigt.

Jeg er blevet overrasket over den lille forskel i strømforbrug jeg kan måle mellem min netbook og den lille Ebox, når jeg synes der er rimelig stor forskel i ydelsen mellem de to computere. Og så får man oven i købet skærm og UPS (gennem batteriet) med i købet af en netbook. Man kan nu få en netbook til under 2000 kroner.

Da jeg puttede en harddisk i Ebox begyndte den at larme omtrent lige så højt som netbooken. Jeg gad vide hvordan det er med andre småcomputere?

Hvad er idéen med at købe en "dedikeret" småcomputer når man kan få en netbook noget billigere?

Log ind eller Opret konto for at kommentere