16. februar 2003 - 23:35Der er
32 kommentarer og 2 løsninger
Hvad betyder cache i forb. med harddiske?
I forbindelse med køb af en ny harddisk har jeg flere gange stødt på ordet "cache". Da jeg skulle købe min nye harddisk (Maxtor DiamondPus 9 120GB Fluid - 8MB cache) spurgte jeg ekspedienten i butikken, hvilken forskel det gjorde. Han svarede at det bare havde noget med systemydelsen at gøre...
Så mit spørgsmål lyder altså:
Hvad betyder det præcist at min harddisk har et cache-lager på 8MB ??
Det er nu altså ikke så simpelt som arne_v vil gøre det til...
Bliver lidt træt når folk begynder at forklare emner som de ikke helt har fat på selv.
Kort sagt er der altid dele af disken som oftere bruges af eksempelvis styresystemet end andre. Ved nogle ganske komplicerede algoritmer beregnes sandsynligheden for hvilke data der læses ofte, og disse læses ind i cachen. På den måde vil performance oftest stige ret markant, med en stor disk-cache. Forskellen ligger ikke så meget i brugen af disken, da disk-cache kun cacher en del af de filer som bruges ofte - men den virkelige performance-forbedring kommer til udtryk i at starten af en given fil kan hentes med meget mindre tilgangstid end hvis de skulle hentes fra disken. Mens starten af filen indlæses, benytter systemet "pusterummet" til at finde fortsættelsen af filen "ude" på disken.
Så diskcachen kan give performance-boost til såvel store som små filer. Diske med 8 MB cache er ved at vinde frem inden for markedet for PC'ere nu, men har længe været populære i server-segmentet, hvor netop disk I/O er kritisk.
Og undskyld min spydige bemærkning: men forklaringen med at en diskcache på 8 MB kun skulle tilgodese filer på 8 MB eller derunder er sgu en gang vrøvl af rang! Engang i mellem lukkes der altså søforklaringer ud her på E som forvirrer og vildleder mere end de gavner! ...det er jo ikke en Merlin-butik vi spørger os til råds i, vel?! ;o) I behøver jo ikke at svare hvis i ikke kender svaret!
Når vi nu er igang med de spydige kommentarer, så prøv og lær at læse dansk.
Jeg ved da godt at cache også hjælper på filer større end cache størrelse.
Men prøv lige at læs ehvad jeg skrev:
1) Hvis du kopierer en 1 GB fil vil det ikke hjælpe meget.
2) Hvis du konstant læser fra den samme 8 MB fil, så kan det betyde utroligt meget.
Hvis du er uenig i den påstand d.v.s. at mener at at den procentvise speedup p.g.a. cache er den samme ved kopiering af 1 GB fil og konstant læsning fra samme 8 MB fil, så er det vist dig der ikke har forstået hvordan en cache virker.
Din betragtning om "men forklaringen med at en diskcache på 8 MB kun skulle tilgodese filer på 8 MB eller derunder er sgu en gang vrøvl af rang!" står ikke nogen steder i mit indlæg. Det er noget du har grebet ud af den blå luft.
Gider ikke at gøre dette til reelt mudderkast så jeg vil nøjes med at sige:
1) Jo det vil - for tilgangstiden for den vil være reduceret med flere tusinde procent (forklaring: hvis vi går ud fra at den er med blandt de flittigst benyttede og derfor ligger i cachen, vil den have en tilgangstid på nogle nanosekunder ift. en disktilgang på nok noget i stil med 40-50 effektive millisekunder
2.) Nej - for det er der sgu intet styresystem som gør, og dermed er dette ikke relevant... Desuden fungerer en disk-cache jo NETOP ikke ved at tage HELE filen, men ved at sekventere denne, samt i nogle tilfælde at beregne sandsynlighed for hvilke data som der er brug for næste gang, og dernæst indlæse starten af disse.
Og for afslutningsvist lige at kommentere min "fangst" fra den blå luft - er det vist endnu engang sådan du forklarer at en cache virker... Nemlig ved at tage en hel fil som bliver flittigt benyttet og cache denne - dermed påstår du at en 8 MB fil vil få et performance-boost der ingen ende vil tage, mens en 1 GB fil vil være ligeglad.
Ja - hvis man forestillede sig at diskcache indlæser hele filer - så ville du have ret ...men det gør de IKKE - og dermed synes jeg det er lidt låddent at du bruger tid på at forklare det.
Hvis du fremover vil forsøge med en forklaring hvad cachen gør - så prøv med at den nedsætter den effektive tilgangstid til en fil ...og størrelsen har ikke en fløjtende fis med dette at gøre, for selve dataoverførslen fra disken bliver hverken påvirket i en positiv eller negativ retning af en cache!
Når du ikke angiver hvilke linier du mener modsiger sig selv, så vil jeg tillade mig at konkludere at du ikke kan påege nogen modsigelse.
Du er også meget velkommen til at mene, at 1 x access til en stor fil og mange x access til en lile fil påvirkes lige meget ved cache. Men alle vil nok konkludere at du ikke ved noget om cache så (cache hit-rate vil være langt større i det sidste tilfælde og resulterer i en meget større relativ forbedring af performance).
#%# Det bliver jeg jo så nok nødt til - men det at du påstår en 8 MB cache sparker helt max når det drejer sig om en 8 MB fil - og at det kan være ligemeget med en fil på 1 GB, kan sgu da ikke andet end påvise at du prøver at sige at en fil som er på størrelse eller mindre end cachen er den eneste type filer bidrager positivt fra en cache hvorimod en fil som er betydeligt større end cachen ikke vil opleve samme forbedring...
At du nu så blander hyppigheden i brugen af filen er noget helt nyt skat, og åbenbart et forsøg på at nærme dig virkeligheden. For en flittig brug fil, stor som lille, vil rykke op i cache-prioriteringen - og det er jo netop det jeg har prøvet at fortælle fra starten!
Gider stadig ikke spilde min tid på at forklare hvorfor jeg ikke mener at din 8 MB ideal-fil ikke er relevant, idet at cachen ikke fungerer så simpelt som som du prøver at redegøre for i dit første svar. Hvis du vil have mig til at skære funktionaliteten ud i pap for dig, må du oprette et spørgsmål, idet jeg ikke gider mere tid på dine søforklaringer uden at blive kompenseret med en håndfuld points.
Fra dit sidste indlæg: #At du nu så blander hyppigheden i brugen af filen er noget helt nyt skat
Fra mit allerførste indlæg: #Hvis du konstant læser fra den samme 8 MB fil, så kan det #betyde utroligt meget.
Hyppigheden har hele tiden været pointen. Og jeg håber da også at alle andre end dig har forstået at når man læser konstant fra den samme fil, så vil de blokke på disken der indeholder filen blive læst hyppigt.
Og din påstand at: du påstår en 8 MB cache sparker helt max når det drejer sig om en 8 MB fil - og at det kan være ligemeget med en fil på 1 GB logisk betyder at: at en fil som er på størrelse eller mindre end cachen er den eneste type filer bidrager positivt fra en cache hvorimod en fil som er betydeligt større end cachen ikke vil opleve samme forbedring... er en logik fejl - fordi noget giver maksimal nytte betyder det ikke at det er det eneste som giver nytte.
Jeg bliver lidt irriteret, når der dagen efter et spørgsmål kommer en person og beskylder mig for ikke at vide hvad jeg taler om og opfinder ting jeg skulle have sagt for at argumentere sin sag.
Det betyder at disken har 8 MB RAM som den bruger som cache (=hurtig lager) og derved gør disken hurtigere. / helt enig
Hvormeget det betyder for din brug afhænger af hvordan du bruger disken / nej, jeg antager alle har et operativsystem installeret. De filer som "danner" windows, IEXPLORE.EXE fx., vil uden tvivl blivet ført over i cachen, da de filer næsten hele tiden kører i baggrunden
Hvis du kopierer en 1 GB fil vil det ikke hjælpe meget / jo, for som trille/Claus skriver... Hvis lige præcis denne fil blev brugt hyppigt så ville den være hurtigere da den har en lille bid af starten i cachen. Dermed har denne "vundet" lidt tid til at finde filen "ude" på disken.
Hvis du konstant læser fra den samme 8 MB fil, så kan det betyde utroligt meget. / Igen det samme som i den tidligere, det er ikk filens størrelse det kommer an på, det er derimod hvor ofte den bliver brugt af computerens brugere!
WeeDZa|zD out
Synes godt om
Slettet bruger
19. februar 2003 - 08:47#29
"Hvis du kopierer en 1 GB fil vil det ikke hjælpe meget / jo, for som trille/Claus skriver... Hvis lige præcis denne fil blev brugt hyppigt så ville den være hurtigere da den har en lille bid af starten i cachen. Dermed har denne "vundet" lidt tid til at finde filen "ude" på disken."
Nej, for den procentielle del af den store fil er så lille, at det måske kun betyder 5 sekunder i sidste ende. Og men en fil på 1 GB er vi vist alle ligeglade med 5 sekunder, hvis vi skal bruge 5 minutter på at læse fra disken...
Iøvrigt vil IEXPLORE.EXE nok ikke ligge i harddiskens cache, men i RAM, eftersom denne startes og ved en normal boot i Windows XX.
Den maksimale effekt af at noget allerede er i cache er for at læse 1 GB med 8 MB cache er 0.8%.
Hvilket næppe er mærkbart.
Der er dog også andre mulige effekter. Claus nævnte at en smart cache kunne lave read ahead og dermed udnytte ventetiden fornuftigt. Men det vil næppe heller give ret meget for et "copy 1 GB" problem, da der ikke er meget ventetid at udnytte.
Det er sjovt at der slet ikke er nogen der nævner skrivning til disken. Det er jo der, der virkelig hentes noget. Som Windows kører idag, skrives der til disken næsten konstant, og meget ofte små filer, det er jo der cachen virkelig kommer til sin ret.
Hvorfor skulle den kendsgerning at cachens effektivitet afhænger meget af brugen af disken være en begrundelse for at lave en lille cache ?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.