Sidens fil, har jeg brug for en?

professor green

Bronze Level Poster
Efter 'Forstå RAM'-indlægget har jeg modtaget en PM om sidefilen, hvor stor er det at gøre det, hvor skal du sige det, og om du endda har brug for en. Her er mine synspunkter på siden filen ....



Fra 'Forstå RAM'-indlægene ved du allerede, at virtuelle hukommelsessider kan opholde sig enten i RAM eller i sidefilen. Hvis siderne i RAM bliver brugt regelmæssigt, forbliver de i RAM, men hvis RAM bruges hårdt, kan de sider i RAM, der ikke regelmæssigt bruges, blive udlejet til sidefilen (frigør det RAM, de var optaget). Det betyder, at sidefilen ikke er som en anden diskfil, det er faktisk en del af dit hukommelsessystem og er dermed lige så vigtigt for dig som RAM.



Ulempen ved at urefererede sider er, at når (eller hvis) en side om side er senere tilgængelig, skal Windows allokere en ny side i RAM, finde den udlejede side i sidefilen og bringe den pågældende side i nyligt allokeret RAM-side. Dette tager tid (det er en disk, der er læst) og den udførende tråd er suspenderet, mens dette sker (tråden er faktisk ventet på siden, når det er færdigt fortsætter tråden). Du ser dette som træg ydeevne i den pågældende applikation, så mens personsøgning er en god ting til RAM-styring, er det en dårlig ting for ydeevne. (Bemærk, at side-out ikke forårsager ydeevneproblemer, fordi siden ikke blev brugt på det tidspunkt. Bemærk også, at Windows-sider på den anmodede side og flere sider rundt om det for at undgå yderligere sidefejl).



Da urefererede sider typisk kun udvises til sidefilen, når RAM er stærkt brugt, og da de fleste af os i disse dage har 8 GB, 16 GB eller mere, installeret RAM (som næsten aldrig er fuldt ud brugt), vil der ikke være nogen faktisk personsøger til sidefilen foregår.



Da en sidefil optager mindst samme antal GB som installeret RAM, hvis der er masser af RAM installeret, kan du gøre uden en personsøgerfil og bruge den diskplads til noget andet, ikke? Svaret på det er en bestemt ... måske.
 

professor green

Bronze Level Poster
En 16 GB (sig) sidefil er meget diskplads at forbruge uden tilsyneladende formål, men i disse dage installerer vi 1TB, 2TB eller endda større diskarrayer. 16 GB på en 1 TB disk er mindre end 2% af det samlede diskplads. Selvom din eneste disk er 256 GB, som det kan være på nogle mindre bærbare computere, er en 16 GB sidefil kun ca. 6% af den ledige diskplads.



Her er hvorfor du har brug for en

Åbn task manager, klik på fanen Ydeevne, og klik derefter på ikonet Hukommelse til venstre. Nedenfor de to grafer er nogle tal, se på Committed numrene. Forpligtet hukommelse er virtuelt lagerplads, som Windows har godkendt til brug ved processer. Det første af de to tal er mængden af virtuel lagring, der for øjeblikket er godkendt til brug, den anden er den maksimale mængde virtuel opbevaring, som Windows nogensinde vil tillade på dette system. Maksimumet er simpelthen størrelsen af installeret RAM plus størrelsen af sidefilen - det skyldes, at i sidste ende virtuelle lagringssider skal eksistere et rigtigt sted, og det betyder enten i RAM eller i sidefilen.



Dette er vigtigt, fordi alle processer kører i virtuel lagring. På 64-bit Windows kan en proces adressere op til 128 TB virtuel opbevaring, og selv om dette er en svimlende mængde, skal brugen af en hvilken som helst virtuel lagring godkendes af Windows. Hvis f.eks. De to forbundne tal var '6,4 / 31,9 GB', betyder det, at Windows i øjeblikket har godkendt brugen af 6,4 GB virtuel lagring i alt, og at Windows aldrig vil godkende mere end 31,9 GB virtuel lagring. Det betyder, at der på dette system ikke kan få adgang til mere end 31,9 GB virtuel opbevaring - selvom 64-bit adressering tillader op til 128 TB.



Hvis du ikke har nogen sidefil (fordi du har 16 GB RAM installeret, og du tror, du ikke har brug for en), så ville de to forbundne numre læse '6,4 GB / 15,9 GB', hvilket betyder at ingen proces nogensinde kunne få adgang til mere end 15,9 GB virtuel lagring - på et system, der tillader op til 128TB pr. Proces. Endnu værre betyder det faktisk, at summen af alle de virtuelle lagre, der anvendes af alle processer, ikke kan være mere end 15,9 GB. Bemærk, at sidestørrelsen kan øges dynamisk, op til et forudbestemt maksimum, når dette maksimale er nået, kan der ikke opnås mere virtuel opbevaring.



Du kan nok argumentere for, at 15,9 GB er meget hukommelse, men nogle få hundrede browsersider, et par databaser og en række andre almindelige applikationer kan begynde at komme meget tæt på det eller endda bryde det. Uden sidedata vil udmattende RAM resultere i et systemkrasj. En sidefil øger mængden af virtuel lagring, som Windows kan godkende, så selvom du kører flere programmer, end du rent faktisk har RAM, går systemet ikke i stykker.



Taler om systemkrascher, du ved sikkert, at et systemkrasj vil generere en dumpfil. Selv om du måske ikke ved, hvordan du læser en Windows-dumpfil selv, ved du, at der er en række mennesker her, hvem der gør det, så upload af dumpfilen til disse fora kan hjælpe med at få dit systemkrasch løst.



Gæt hvor systemdump filer er skrevet? Yep, sidefilen. Det er en anden grund til, at du har brug for en!



Her er hvor du skal placere siden filen ...



Siden filen er hukommelse huske, så hvis dit system er paging konstant, vil du have sidefilen på den hurtigste disk, du har. Det betyder, at hvis du har en SSD, vil du have sidens fil på SSD'en. Det er rigtigt, at dette kan forkorte SSD'ens levetid (med en lille, men sandsynligvis målbar mængde), men præstationsfordelen ved den hurtige side, som langt overstiger levetiden for SSD-overvejelserne. Hvis du kører et system, der pagerer konstant, skal du i øvrigt planlægge en RAM-opgradering så hurtigt som praktisk (eller reducere antallet af samtidigt gennemførte applikationer). Bemærk at du kan have op til 16 sidefiler, hver på et separat volumen, og Windows vil bruge dem alle. På et stærkt personsøgningssystem vil flere sider forbedre billedets ydelse lidt.



Hvis du ikke søger meget (eller overhovedet), fordi du har masser af RAM, behøver du ikke sidefilen på din SSD, så i dette tilfælde overgår SSD'ernes levetidsmæssige overvejelser en eventuel ydelse. I dette tilfælde placerer sidefilen på en stor harddisk, vil den ikke give yderst god ydeevne, hvis du starter paging, men systemet vil ikke gå i stykker. Hvis systemet skal skrive et dump, bliver alt suspenderet, mens det alligevel sker, så hastigheden på sidefilen på harddisken er ikke særdeles relevant.



For det første ignorere alle de fælles råd om at gøre det 1,5 x RAM, der kan have været en nyttig målestok tilbage i XP-dage, men det er meningsløst nu. Windows 10 har en meget bedre algoritme til automatisk at indstille siden filstørrelse end tidligere versioner af Windows gjorde. Du ved sikkert, at sidefilens størrelse kan øges og formindskes dynamisk, og Windows 10 har også forbedrede algoritmer på dette område.



For at angive sidestørrelse (og placering) skal du indtaste 'sysdm.cpl' i feltet Kør, klikke på fanen Avanceret, klikke på knappen Præstationsindstilling, klikke på fanen Avanceret og endelig klikke på knappen Skift.



Mit råd er at tillade Windows at styre størrelsen på sidefilen på Windows 10, især hvis den er på en stor harddisk, og du har masser af RAM. I denne situation finder du, at Windows sætter den mindste sidefilstørrelse for at være en lille smule større end dit installerede RAM, så det kan holde en fuld hukommelsesdump. Den maksimale sidestørrelse vil sandsynligvis være omkring 3 x RAM.



Hvis du virkelig ønsker at indstille en nøjagtig maksimal sidestørrelse selv for at minimere sidestørrelsen, skal du starte alle programmer, du nogensinde vil bruge sammen med alle de datasæt og filer, de bruger, så du bruger så meget virtuel opbevaring som du nogensinde har brug for. Dette er din maksimale engagementsværdi, som du kan læse på hukommelsessiden i task manager som vi så tidligere. Hvis du trækker størrelsen på dit installerede RAM fra dette, hvad er der tilbage, er din maksimale sidefilestørrelse (jeg vil rulle det lidt op for at være på den sikre side). Lav din minimums sidestørrelse på størrelsen af det installerede RAM (og angiv dit maksimum til dette også, hvis din beregnede værdi er mindre end dette), så den kan holde en fuld hukommelsesdump.



Bemærk at pagefile.sys er en skjult fil, så du normalt ikke kan se den. Du skal fjerne markeringen i afkrydsningsfeltet Skjul beskyttet operativsystem filer i Filer Explorer-indstillinger for at se det.



Windows 10 (og 8 / 8.1) har en anden systemstyret 'paging'-fil (også skjult) kaldet swapfile.sys, dette bruges (i øjeblikket) kun af UWP apps. En Universal Windows Platform (UWP) app er en, der kører på en hvilken som helst hardware platform, der understøtter Windows, på desktopversioner af Windows (og det er det, jeg antager, at vi alle bruger) UWP apps er det, vi plejede at ringe til Metro Apps, eller Moderne Apps.



For at se, hvorfor en swapfile.sys 'paging'-fil er nødvendig, start den indbyggede Windows Calculator-app - dette er en UWP-app. Start nu Task Manager, klik på fanen Detaljer og rul ned for at finde indstillingen Calculator.exe - klik på den for at fremhæve den, så du kan se det lettere.



I statuskolonnen kan du se, at Calculator.exe kører, det betyder, at det er klar til at udføres og i klarkøen for logiske processorer. Selvom du ikke rent faktisk gør noget med det, modtager applikationen stadig kontrol over en CPU nu og da (for at kontrollere, om du har indtastet noget) og det betyder, at det refererer til det er kerne sider i RAM. Disse sider forbliver derfor i RAM selv på et system, der er hårdt ved at bruge hele RAM'en. Det er godt, det betyder, at når du begynder at bruge regnemaskinen, er det straks lydhør - fordi det er kerne siderne i RAM og ikke paged-out.
 

professor green

Bronze Level Poster
Minimer nu regnemaskinen til proceslinjen. Bemærk, at statusen er ændret til Suspended. En suspenderet status betyder, at der ikke er tråde i processen, der er på klientkøen for enhver processor. UWP-apps suspenderes normalt, når de minimeres for at spare CPU-cyklusser, du kan helt klart ikke bruge regnemaskinen, mens den minimeres, så hvorfor spilder CPU-cyklusser kører det?



At suspendere en UWP-app er gode nyheder for CPU-ydeevne (derfor er det gjort), men det er dårlige nyheder for UWP-appen. Dette skyldes, at hvis UWP-appen ikke udføres, kan den ikke referere til nogen af dens sider i RAM, og deres urefererede interval tæller bliver højere og højere. Hvis RAM bruges stærkt, vil UWP apps-siderne efterhånden blive valgt til at blive paged-out til sidebilledet og sandsynligvis en ad gangen. De ældre urefererede sider bliver først udlagret, og senere vil andre sider blive slået ud, og stadig senere flere sider (hvis RAM er under stærkt brug).



Klik nu på ikonet i regnemaskinen på proceslinjen for at gendanne appen. Bemærk, at i Statushåndtering er statusen tilbage til Running, og du kan begynde at bruge den. På grund af den lange suspenderingstid (og under forudsætning af at RAM anvendes stærkt), er de fleste af regnematsiderne ude på sidefilen, så det lider nu sidefejl efter sidefejl for at bringe alle sine sider tilbage til RAM. Dette kræver flere side-in-operationer, den ene efter den anden, fordi siderne blev udgivet enkeltvis og spredt over hele sidefilen. Hvad du vil se er, at regnemaskinen ikke reagerer i nogle sekunder, da alle sider er genoprettet til RAM. Og det er et problem.



Løsningen er en proces kaldet 'swapping' og (ingen overraskelse her) bruger den swapfile.sys 'personsøgning' fil. Når en UWP-app suspenderes, kaldes Memory Manager, den skriver alle UWP-appens sider ud i sammenhængende placeringer til swapfile.sys i en enkelt side-out-operation. Dette kaldes en swap-out.



Nu, når du gendanner UWP-appen, og den begynder at køre igen, kaldes Memory Manager, og den lokaliserer alle siderne i appen i swapfilen og bringer dem alle sammen igen ved at bruge en enkelt swap-in-side. Dette er typisk afsluttet i tiden mellem dig, der klikker på UWP-appen i proceslinjen og flytter markøren til at bruge appen, så du ikke bemærker det.



Bytning gør det muligt for systemet at suspendere en UWP-app og dermed spare CPU-cyklusser og beskytter dog sidene i UWP-appen fra at blive slået ud tilfældigt. Dette betyder, at UWP-appen ikke er ubesejret af suspensionen.



Du har ingen kontrol i Windows til at administrere swapfile.sys, det er typisk placeret som en skjult fil i roden på dit systemdrev (som med pagefile.sys). Den systemstyrede minimumsstørrelse er 16 MB på en SSD og 256 MB på en HDD. Den maksimale systemstyrede størrelse er 1,5 x RAM eller 10% af partitionsstørrelsen, alt efter hvad der er mindre (det vokser og krymper dynamisk ligesom sidefilen).



Vi har set, at i systemer med masser af RAM er der gavn i at flytte sidefile.sys fra en SSD-drev for at forlænge sin liv lidt mere, det er også muligt at flytte swapfile.sys til et andet drev, det tager bare en smule mere arbejde. Bemærk at i et system med masser af RAM, er swap-out sandsynligvis aldrig gjort, UWP-appens sider er simpelthen allokeret til standby-hukommelse i RAM, så de forbliver i RAM, så længe deres standby-RAM-plads ikke er nødvendigt (i i hvilket tilfælde vil de blive fysisk byttet ud). Bemærk også, at swapfile.sys kun bruges til UWP apps, så hvis du ikke er en stor UWP app bruger (eller hvis du har masser af RAM) så er der ikke noget punkt i at flytte den.



Grundlæggende hvad du skal gøre er at oprette en ny swapfile.sys på din harddisk, gør den 256 MB i størrelse, den skal være i roden af drevet, hvor filen (eller a) pagefile.sys er placeret. Derefter opretter du et symbolsk link fra swapfile.sys på dit systemdrev (SSD), der peger på den rigtige swapfile.sys på hvilken HDD du fandt den. Et symbolsk link på din SSD optager slet ikke noget diskplads (en lille smule MFT-plads er alt), og der bliver ikke læst eller skrevet til SSD'en, de vil alle gå til HDD'en. Der er selvfølgelig en ydeevne i alt dette, swap-in, når en UWP-proces bliver klar vil tage længere tid fra harddisken, men ikke så lang tid, at du bliver nødt til at bekymre dig (du vil nok ikke engang mærke.



Sådan flytter du swapfilen (hvis du vil) ....



  • Gå til den placering, hvor du angiver sidefilestørrelsen og indstil ingen personsøgningsfil på alle drev. Derefter genstart. Både pagefile.sys og swapfile.sys skulle nu være væk, hvis de stadig er der, skal du bare slette dem (de bliver ikke brugt).
 

professor green

Bronze Level Poster
Sådan flytter du swapfilen (hvis du vil) ....



  • Gå til den placering, hvor du angiver sidefilestørrelsen og indstil ingen personsøgningsfil på alle drev. Derefter genstart. Både pagefile.sys og swapfile.sys skulle nu være væk, hvis de stadig er der, skal du bare slette dem (de bliver ikke brugt).


Nu skal du oprette et symbolsk link på C: \ -drevet, der peger på, hvor du vil have byttefilen - på mit system er det på D: drevet, som er min harddisk. Hvis du har et valg af harddiskdrev, skal du vælge det hurtigste og mindst optaget drev. Åbn en forhøjet kommandoprompt og indtast kommandoen "mklink c: \ swapfile.sys d: \ swapfile.sys" (uden citaterne). Det er klart, at du måske vil ændre drevbogstavet på destinationsdrevet, så det passer til.



3. Gå nu tilbage til, hvor du indstiller sidestørrelsen og indstiller enten systemstyret eller hvilken størrelse du vil, til sidefilen på det samme drev, hvor swapfillinkene peger. Genstart nu.



Du vil stadig se en post for swapfile.sys på din SSD, men det er bare et symbolsk link (0 bytes). Hvis du ser på destinationsdrevet, kan du se, at swapfile.sys nu er der (sammen med sidebillede. sys selvfølgelig).



Selvom, som du nu kan fortælle, at bytte ikke er en stor ting, især på systemer med masser af RAM, ved du i hvert fald nu, hvad swapfile.sys er til.
 
Top