8 ud af 10 pc'er med Windows 7 løber tør for hukommelse

Pc'er med Windows 7 kan ikke få nok hukommelse, og det gør dem langsommere, hævder amerikansk firma. 86 procent af pc'erne i firmaets undersøgelse havde en alarmerende lav mængde fri hukommelse. Microsoft afviser.

Opdateret: Craig Barth, der udtaler sig i den oprindelige artikel hos amerikanske Computerworld, har vist sig at være en opdigtet person, som it-bloggeren Randall Kennedy stod bag. Historien er derfor blevet trukket tilbage.

Microsofts nyeste styresystem Windows 7 er blevet lovprist for forholdsvis lave hardwarekrav sammenlignet med det spring, softwaregiganten tog fra Windows XP til Windows Vista. Men Windows 7 er en grovæder, når det kommer til hukommelse. Det hævder et amerikansk firma.

Ifølge statistik indsamlet fra mere end 23.000 pc'er i Devil Mountain Softwares 'exo.performance.network' var 86 procent af pc'erne med Windows 7 alarmerende tæt på at løbe tør for hukommelse.

»Langt størstedelen af Windows 7-maskinerne har fyldt hukommelsen op. Ser man på ydelsen, så har det direkte indflydelse på maskinen,« siger teknisk direktør Craig Barth fra Devil Mountain Software til amerikanske Computerworld.

For Windows XP-maskinerne var blot 40 procent ved at løbe tør, mens 80 procent af pc'erne med Windows Vista havde brugt det meste af den fysiske hukommelse, RAM.

Devil Mountain Softwares undersøgelse bliver dog også kritiseret for ikke at tage tilstrækkelig højde for de ændringer, der er lavet i hukommelsesstyringen mellem Windows XP og Windows 7. Det betyder, at en lav mængde ubrugt fysisk hukommelse ikke nødvendigvis betyder, at der ikke er hukommelse til rådighed for applikationer.

Hos Microsoft i Danmark oplyser marketingdirektør Nis Bank Lorenzen, at Microsoft ikke kan kommentere på undersøgelsen, men at selskabet opfatter den som 'relativt useriøs'.

Når en pc er ved at løbe tør for hukommelse, så begynder den at bruge harddisken som midlertidigt lager. Harddisken er imidlertid typisk en faktor 1.000 gange langsommere end RAM'en. Derfor vil brugeren opleve, at maskinen arbejder mærkbart langsommere, hvis RAM'en er brugt op.

Windows 7 bruger mere hukommelse til selve styresystemet end de foregående versioner af Windows. Minimumskravet til 32 bit-versionen af Windows 7 er således også mindst 1 gigabyte, mens 64 bit-versionen kræver mindst 2 gigabyte.

På mange pc'er er det imidlertid almindeligt, at en del af hukommelsen er afsat til grafikkortet, så selvom der sidder 1 gigabyte RAM i eksempelvis en bærbar pc, kan den tilgængelige mængde hukommelse til Windows være betydeligt mindre.

Selvom Windows 7 oplyser, at det meste af hukommelsen er optaget, så er det ikke ensbetydende med, at den bliver brugt af applikationer, men blot at den er afsat til dem. Derfor kan der stadig være rigeligt hukommelse til rådighed, selvom 90 procent ser ud til at være i brug af systemet.

Devil Mountain Software indsamler data fra pc'er, hvor brugerne har valgt at installere en softwareklient, som måler systemets ydelse og heriblandt hukommelsesforbruget.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (17)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
#1 Patrick Moog

udsagnet om at det er almindeligt at nogle af rammene er afsat til grafikkortet, kunne jeg godt tænke mig at få nogle tal på? Er det ikke kun low-end bærbar computere der ikke har mindst 512mb ram specifikt til grafik?

Hvis man kører 32 bit, kan det selvfølgelig blive et problem at man ikke kan kommer over de 4gb ram, hvoraf grafikkortet tager nogle af dem.

  • 0
  • 0
#2 Palle Meinert

Det er jo tydeligt at firmaet ikke forstår hvordan Windows 7 virker og de skal benytte tilgængelig hukommelse istedet for ubenyttet hukommelse. Prøv blot at læse kommentarene, hvor der ikke ligges finger imellem:

http://exo-blog.blogspot.com/2010/02/wcpi-85-of-windows-7-pcs-are.html

og mere information: http://arstechnica.com/microsoft/news/2010/02/behind-the-windows-7-memor...

  • 0
  • 0
#3 Søren Nielsen

Så længe hukommelsen bliver brugt på caching, buffering osv er det jo kun godt! Ikke-brugt hukommelse er jo spildt hukommelse.

Det der er interessant er jo blot om hukommelsen bliver frigivet til applikationer, hvis det bliver nødvendigt. Det tror jeg vist det gør. No problem.

Præcis det samme sker på min Ubuntu derhjeme. Den bruger snildt 3+ Gib hukommelse og det er helt fint for det bliver frigivet til andre formål så snart de melder sig på banen.

  • 0
  • 0
#4 Klaus Skelbæk Madsen

Ja, det burde være basis viden for IT-folk, at langt de fleste OS'er så vidt det er muligt bruger hele hukommelsen til at cache data i.

Der er jo ingen grund til at smide data ud af cachen, hvis man ikke har noget bedre at putte derind.

Pt. har min Linux 132 MB fri hukommelse ud af 4 GB. Men hvis man kigger lidt nærmere på det, er 2.4 GB af hukommelsen brugt til cache (og resten går primært til VMWare)...

  • 0
  • 0
#6 Jesper Poulsen

Det er kun high-end der har selvstændig grafik-RAM. Jeg ledte efter en bærbar til lidt simpel gaming for et halvt år tid siden og jeg skulle op i en high-end maskine for at komme ud over shared RAM.

Og endda ved mange high-end-maskiner er der brugt shared RAM.

Jeg endte med at sammenstykke ekstra stationære gamer-maskiner på de adresser hvor jeg skal udøve mit spil - det var markant billigere.

  • 0
  • 0
#7 Jacob Christian Munch-Andersen

Devil Mountain Software indsamler data fra pc'er, hvor brugerne har valgt at installere en softwareklient, som måler systemets ydelse og heriblandt hukommelsesforbruget.

Ikke at artiklen ikke allerede er skudt grundigt i sænk, men fra et statistisk synspunkt er det grov misbrug af data at forsøge at konkludere noget som helst om hele flokken af Windows computere i denne verden ud fra dem som har et specifikt program installeret.

  • 0
  • 0
#10 Jesper Poulsen

"Du kikker sandsynligvis på de forkerte steder."

Det er muligt. Jeg er dog også så prisbevidst at når maskinen ikke skal bruges til andet end lidt spil når man besøger de gamle, så er der grænser for hvor mange penge man vil give ud. Og at man samtidig kan bygge sig ud af det med stationære (i flertal, kontra én bærbar) til en brøkdel af prisen - så er det blot endnu mere grotesk.

"High end business laptops har dedikeret grafik (incl. ram)"

Under 25% at Lenovo's bedre maskiner er udstyret med dedikeret grafik-RAM. Ca. det samme er gældende for HP(/Compaq). Dell er lidt længere fremme i skoene, der er der dekikeret grafik i ca. 33% af maskinerne.

Problemet er dog ikke kun ved bærbare. Langt de fleste mærkevarestationære lider også under shared RAM.

  • 0
  • 0
#11 Johan RB

Den her artikel er et pragteksemplar på den anti-Microsoft holdning der huserer her på Version2. Ja, de fortjener at få klø engang i mellem, men lidt kildekritik og et neutralt synspunkt ville være journalistisk klædeligt, V2. Det er ved ${gud} heller ikke alt der kommer ud af FOSS-lejren der er lige fornuftigt altid.

Jeg har selv moddet mit indlæg et point ned, for at hjælpe jer andre lidt i gang.

  • 0
  • 0
#12 Jens Madsen

Ja, det burde være basis viden for IT-folk, at langt de fleste OS'er så vidt det er muligt bruger hele hukommelsen til at cache data i.

Og derfor står de og swapper hele tiden på harddisk, fordi at hele hukommelsen er brugt på cache?

Når der swappes på harddisk, så er det fordi der ikke er mere hukommelse - og den er IKKE brugt på cache. For så skal den ikke swappe, men bruge cachen.

Se dette burde også være basisviden for IT-folk.

  • 0
  • 0
#13 Lasse Reinholt

Og derfor står de og swapper hele tiden på harddisk, fordi at hele hukommelsen er brugt på cache?

Det er lidt kompliceret. Hvis operativsystemet udnytter idle perioder til at skrive hukommelsens indhold ud til swap filen (pages, som sjældent ændres) når den fysiske hukommelse er nær ved at slippe op, så behøves det ikke at blive gjort når det sker. De pågældende pages kan da blot invalideres uden skrivning til disken. Performance bliver dermed bedre.

Ulempen er, at brugerne brokker sig over, at disken står og skriver uden grund. Det virker bedre med Readyboost, hvor det er et flash medie, som forsøges altid at indeholde et spejlbillede af swap filen, så vidt jeg har forstået.

  • 0
  • 0
#14 Jesper Poulsen

"Det er lidt kompliceret. Hvis operativsystemet udnytter idle perioder til at skrive hukommelsens indhold ud til swap filen"

Der er også forskel på at skrive lidt ud i idle-perioder og så stå og hamre løs på disken. Som Jens Madsen skriver, så er det når den fysiske hukommelse er sluppet op at disken bliver spanked.

En skrivning i ny og næ er ikke et tegn på et presset OS.

  • 0
  • 0
#15 Jens Madsen

Hvis der skrives til harddisken, fordi data er modificeret i computerens cache, så sker skrivningen med DMA, og burde ikke kræve større CPU kraft, eller få betydning for ydelsen. Vedligeholdelsen af cachen, bør normalt ikke dræne computeren for ydelse.

Selvom computerens ram bruges på cache - så vil der aldrig være flere data deri, end forbruget af hukommelse. Det rigtige er, når der bedes om hukommelsesforbruget, at ikke rapportere 100% fordi at hele ram'en bruges til cache - men at rapportere, hvor meget cache der reelt er brugt. Med mindre det er memoryleaks i softwaren eller i operativsystemet, skulle cachen langtfra være fyldt. Hvis den fyldes, eller fyldes langsomt, skyldes det memory leaks.

  • 0
  • 0
#16 Jacob Smedegård

Hvorfor ligger denne historie stadig her på Version2, selvom det er vrøvl og fup uden nogen research fra ende til anden?

Anyway, Paul Thurrott beskriver det nok bedst.

Randall C. Kennedy var i øvrigt den samme fyr som konstaterede at Windows 7 og Vista havde samme Kernel da de havde det samme antal kørende tråde :)

" ....Put simply, this is a complete non-story. I'm tired of this kind of thing, and I don't understand how certain people can write about technical topics they very clearly don't understand. Consider me pushed over the edge. This kind of reporting is ridiculous and inexcusable, and the people writing about this nonsense are serial transgressors.......

First of all, the obviously untrue story I'm referring to here was written by Gregg Keizer, from IDG News. His article about the supposed Windows 7 memory utilization "issue" was beautiful, and absolutely BS as I point out above. But what makes this delicious is that the "source" for this information was egotistical evil maniac Randall Kennedy, and I want to be clear about this description here, because calling him this makes other egoists, evil people, and maniacs look bad by comparison. Put simply, Kennedy is one of the craziest guys I've ever met and I state that with no sense of humor at all; the guy is nuts. Like, actually crazy. In fact, I previously complained about Kennedy to Infoworld's Eric Knorr during the "Save XP" baloney that they both championed, and Knorr told me he loved Kennedy at the time because he brought hits to the site.

Well, look at what Knorr's writing about Kennedy now.

On Friday, Feb. 19, we discovered that one of our contributors, Randall C. Kennedy, had been misrepresenting himself to other media organizations as Craig Barth, CTO of Devil Mountain Software (aka exo.performance.network), in interviews for a number of stories regarding Windows and other Microsoft software topics. Devil Mountain Software is a business Kennedy established that specializes in the analysis of Windows performance data. There is no Craig Barth, and Kennedy has stated that this fabrication was a misguided effort to separate himself (or more accurately, his InfoWorld blogger persona) from his Devil Mountain Software business. "

Kilde:

http://community.winsupersite.com/blogs/paul/archive/2010/02/21/insane-b...

  • 0
  • 0
#17 Jens Madsen

To speed performance, modern Windows versions preload applications you use frequently into memory.

Det er naturligvis tilladt, og behøver ikke at være et problem. Der kan dog være forskellige fejl i operativsystemet sneget sig ind på grund af dette, men ingen af artiklerne undersøger reelt dette. Af ting som kan være et problem er følgende:

  1. Det preloadede betyder mindre, end reelt cachede data - også selvom det preloadede er hentet sidst. Det er jo kun en "optimering" hvor der antages, at der måske fås brug for de pågældende data - og disse data har naturligvis lavere prioritet, end det som "rigtigt" ligger i cachen. En fejl kunne være, at de preloadede data prioriteres for højt, således at mere vigtige data swappes ud på harddisken, og at harddisken derfor swapper.

  2. Preloadede data, behøver ikke at blive skrevet på harddisk, når at disse swappes ud. En fejl kunne være, at der ikke opdages at disse data ikke er blevet skrevet til, og derfor ikke behøver at blive swappet ud.

  3. Normalt kan kun anvendes hukommelse, hvor data er skrevet til harddisk og ikke herefter er modificeret. Ellers, kan de ikke swappes ud, uden at først skulle gensrkives. Hvis der bruges ram, hvor data allerede er skrevet til harddisk, går det ikke ud over performance, da der ikke skal swappes først. Data er på harddisken, og ram'en kan umiddelbart overskrives. En fejl kunne være, at det gøres forkert - således at man ikke altid som første prioritet kun bruger datablokke, der ikke skal skrives til harddisk først. Det er vigtigt at altid gøre dette - swapning kan så køre i baggrunden, og sikre at flest mulige blokke skrives til harddisk, så der altid er ledigt ram, der umiddelbart kan skrives til, uden der swappes ud.

  4. Det som kan diskuteres, er Microsofts programmernes måde at angive brugt hukommelse. Der flere typer hukommelsesplads, der er væsentligt at angive:

a) Virtual memory, som er den samlede plads, at programmerne bruger. Denne fylder oftest mere end computerens fysiske ramlager, og det er intet problem. De filer, som Microsoft preloader, hører også under denne del.

Fysisk hukommelse: Her er flere relevante størrelser.

b) Dels er der computerens samlede fysiske hukommelse, der altid er konstant og lig computerens mængde af dynamisk ram.

c) Så er det den del som er optaget fysisk hukommelse, der er blevet skrevet til, og hvor data endnu ikke er skrevet til computerens harddisk, og derfor "optaget". Denne del kan ikke bruges, før den er blevet skrevet til computerens harddisk. Den er derfor optaget, og vil aldrigt umiddelbart kunne bruges af andet software.

Så er det den del af computerens hukommelse, som er "i brug". Denne del, kan i mange tilfælde umiddelbart overskrives, da harddisken har samme indhold. Blandt andet, de filer som microsoft henter ind for at speede hukommelsen op, hører under her. Disse filer, er der ikke blevet skrevet til, og de er identisk med computerens harddisk. Det betyder, at de ikke skal "swappes ud", da hukommelsen allerede er identisk med harddisken, og de kan umiddelbart bruges til vigtigere formål. Hukommelsen kan eventuelt opgives op i to:

d) Data, der har været brugt indenfor kortere tid (hvor touch bitten er sat),

e) og data der ikke har været i brug. De cachede filer, som microsoft har hentet ind, hører under det sidste, også selvom de måske lige er hentet ind. Filer, der hentes ind, alene for at øge hastigheden, har ikke været "berurt" af lovlige årsager, til at der er særligt grund til, at opbevare disse i hukommelsen. De bør samtidigt kopieres til rette position i swap filen, således at hukommelsen altid er frigjort til andre formål. I de fleste sammenhæng, kan hukommelse der ikke har været berurt i længere tid, betragtes som fri fysisk hukommelse, da den er kopieret ud på harddisk meddens processoren ikke har haft noget at lave, og derfor er klar til at blive overskrevet.

Det gør ikke noget, at 100% af computerens fysiske hukommelse er "i brug". Men, det betyder noget, hvordan den er brugt.

Der er altså 5 vigtige størrelser for hukommelse, og det er meget sandsynligt, at nogen har kludret rundt i dette, eller at ikke alle data opgives af microsoft. Mængden af fysisk hukommelse, der er i brug, er omtrent ligegyldigt. Mere vigtigt, er der hvor meget, der enten ikke er swappet ud på harddisken og derfor ikke kan bruges da den ikke er forberedt for dette endnu (c), og hvor meget at der har været i brug indenfor kortere tid, og derfor ikke bør swappes ud af optimeringsmæssige grunde (d).

Der er mange fejlmuligheder, når hukommelsesstyringen laves. Som eksempel, kan de filer, der hentes ind for at speede hastigheden op, måske ved en fejl stå som "touched", således de ikke smides ud, og derved tager op indtil de ikke har været brugt et stykke tid. Dette er naturligvis en lille fejl, men ikke en stor, da dataene efter et stykke tid, vil rykke ned i prioritet. Men det kan medføre en lidt mindre optimal brug af cache, hvis de cachede ligegyldige filer nægter at blive swappet ud, fordi de netop er hentet ind af "ligegyldige grunde", eller optimeringsårsager. Når filer af optimeringsårsager hentes ind, så er de i princippet forskellige fra virtual memorys plads på harddisken første gang, og de skal helst skrives ud samtidigt, således de ikke optager plads. Eller, de skal skrives ud så hurtigt som muligt. Det kan være bedst, at altid skrive data ud med det samme, således der ikke skal bruges ekstra tid, når den pågældende hukommelse skal bruges. Hvis der er tid at hente "ligegyldige data" ind, så er det også altid tid, at gemme dem på harddisken som noget af det første. Ellers, risikerer man, at computerens idle tid bruges på noget der er af mindre betydning. Her kan microsoft måske også have lavet en fejl, der betyder at hukommelsen ser ud til at være opbrugt, og faktisk også er det, da de ligegyldige data først skal gemmes på harddisken, før den kan bruges til noget mere fornuftigt. Det er en halvstor fejl. Normalt, vil data blive swappet ud, før det er alvorligt, da cachingen af ligegyldige filer, har lavere prioritet. Så det er ikke en alvorlig fejl.

Skal vi slå fast, at der ikke uden en grundigere undersøgelse er muligt at klandre Microsoft for noget. Jeg undrer mig dog over, at det er nødvendigt med en hel gigabyte fysisk ram, når at computerens harddisk også tages i brug. De optimeringer, som microsoft laver, kræver jo ikke ram. Det er data, som hentes til virtual memory, og ikke til fysisk memory. De vil derfor højst optage harddisk plads, og de vil aldrigt kunne optaget fysisk ram. Forsøges det, at kopiere dem til fysisk ram, så behøver de ikke fysisk ram, men vil blive kopieret fra et sted, til et andet sted på harddisken og kun lagt i ram'en, hvis der er ledigt plads.

Når der anvendes virtual memory, er langt størstedelen af hukommelsen kun cache til harddisken. Det betyder, at hver addresse for vores hukommelse, relaterer til en harddisk position, og i princippet hentes fra harddisken, hvis den ikke er i fysisk hukommelse. At derfor kræve en bestemt mængde fysisk ram, giver ingen mening - da hukommelsen kun relaterer til harddisk plads. Hver addresse i rammen har en addresse på computerens harddisk. Lægger jeg data i rammen, så vil de - når computeren har tid - blive lagt ud på deres tilsvarende addresse på harddisken - således at computerens fysiske hukommelse kan tages i brug til noget andet. Alle vore ram operationer, og vores ram brug, er derfor reelt cachede harddisk operationer.

Når microsoft kræver mindst 1 gigabyte ram, så er det kun cache til harddisken de kræver. Computeren burde kunne køre helt uden denne ram, og ellers er der fejl i deres virtual memory styring. Dog, så er der visse dele, der kan sættes til at ikke swappe ud - typisk er det interrupt procedurer og lign. Disse behøver ikke, at have en fysisk plads på harddisken, da denne ikke bruges. Det betyder ikke meget, om de har det.

I stedet for, at afsætte en "stor fil" på harddisken, til at være computerens virtual memory, og at hukommelsesoperationer reelt kører i denne fil, så kan anvendes et system, hvor der først afsættes plads, når den pågælende mængde hukommelse allokeres. Dette medfører dog, at swapfilen fragmenteres, og giver mindre optimal tilgang. Hvis systemet er lavet sådan at der allokeres plads på harddisken, hver gang der allokeres plads i ram, så kan man - hvis data kopieres fra harddisk til ram - undlade at udføre denne operation fysisk, men bare "åbne" filen, og derved tilføje den computerens virtual memory. Det har den fordel, at filen straks kommer i computerens virtual memory space uden det tager tid - og det koster ikke plads på harddisken. Den skal hellerikke kopieres, fra sin normale plads, til en plads i swap filen, men kan bruges direkte fra dens position. Dette er i nogle tilfælde hurtigere, blandt andet ved load af store programmer. Det bedste, er derfor i praksis at køre med et kombineret koncept, hvor at noget er afsat til "ram" brug i en stor samlet swap fil, og dertil knytte specielt read-only data, såsom programfiler til virtual memory mappet, så de bliver en read-only del af hukommelsen. Her, vil de aldrigt skulle swappes ud, men kun hentes ind, og derfor betyder det hellerikke så meget, at de ikke ligger et optimalt sted på harddisken. Ofte, er de pågældende data ikke fragmenteret, da de er read-only, og hvis man har defragmenteret sin harddisk, så vil de normalt hentes effektivt ind på moderne harddiske. Denne feature, har Microsoft ikke i deres operativsystemer, og det betyder at programmerne har lange load-tider, med mindre de caches - hvilket de så gør. Det havde været bedre, at ikke cache filerne, men at tilknytte filerne (som typisk er read-only programdata) til virtual memory mapningen, og derved opstartes de hurtigt, da de kører direkte fra deres position på harddisken, på samme måde, som hvis de var i computerens swap fil.

Der er meget der kan gå galt, så virtual memory ikke fungerer optimalt. Jeg har nok en tendens til, at tro at der er fejl i microsofts metoder, og en af årsagerne er at der kræves så meget ram. Virtual memory, burde i princippet kunne køre helt uden ram. Det er kun cache, og det er kun den del, der bruges af interrupts, der reelt kræves. Ellers, er der programmeringsfejl. Ofte, er det en god måde at teste ens virtual memory på fungerer, at prøvekøre programmerne på en computer næsten uden hukommelse. Der skal naturligvis være plads til en enkelt, eller to harddisk sektorer, men pladsen behøver ikke at være større end få kilobytes. I praksis, kan software måske ikke køre på grund af hastighed, men der må ikke være fejl. Hvis operativsystemet bygger på en simpel "dos-like" skal, så vil man kunne lægge den virtualle memory ind først, så der kan køres test programmer, der undersøger den faktisk fungerer, med kun nogle få kilos hukommelse. Hvis den ikke gør det, er der sandsynligvis noget galt, og det er stor sandsynlighed for at det viser sig senere, også selvom computeren får mere ram. Så er fejlen bare svært at fremprovokere.

Jeg mener ikke, at vi har set skyggen af bevis for, at der er noget galt. Men, Microsoft kan have lavet fejl der gør, at deres virtual memory ikke fungerer optimalt. Det er en kompleks ting, og det er langtfra sikkert, at Microsoft har fået kodet det perfekt, og har fundet den bedste algorithme. Dog, må man bestemt sige, at der ikke er skyggen af bevis for, at noget er galt. Sammenlignes med andet microsoft software, tror jeg at fejlene i hukommelsesstyringen er blandt mindre betydlige. Har de betydning, vil det højst være på performance.

  • 0
  • 0
Log ind eller Opret konto for at kommentere