2Sep
Când aflați mai multe despre computere și cum funcționează, ocazional veți trece peste ceva care nu pare să aibă sens. Cu acest lucru în minte, spațiul de golire pe disc accelerează de fapt calculatoarele? Postul SuperUser Q & A de astăzi are răspunsul la o întrebare nedumerită a cititorului.
Întrebarea de astăzi &Sesiunea de răspuns vine de la amabilitatea SuperUser - o subdiviziune a Stack Exchange, o grupare bazată pe comunitate a site-urilor web Q & A.
Imaginea de la curtoazie a nchenga( Flickr).
Întrebarea
SuperUser cititorul Remi.b vrea să știe de ce golirea spațiului pe disc pare să accelereze un computer:
Am vizionat o mulțime de videoclipuri și înțeleg acum cum computerele funcționează un pic mai bine.Înțeleg ce înseamnă memoria RAM, despre memoria volatilă și nevolatilă și despre procesul de schimbare. De asemenea, înțeleg de ce creșterea RAM accelerează un computer.
Ceea ce nu înțeleg este motivul pentru care curățarea spațiului pe disc pare să accelereze calculatorul. Are viteza într-adevăr un calculator sus? Dacă da, de ce o face?
Are ceva de-a face cu căutarea spațiului de memorie pentru a salva lucruri sau pentru a face lucruri în mișcare pentru a crea un spațiu suficient de lung pentru a salva ceva? Cât spațiu gol trebuie să las liber pe un hard disk?
De ce spațiul de golire pe disc pare să accelereze un computer?
Răspunsul
Contribuitor SuperUser Jason C are răspunsul pentru noi:
"De ce golirea spațiului pe disc accelerează computerele?"
Nu este, cel puțin nu pe cont propriu. Acesta este un mit cu adevărat comun. Motivul pentru care este un mit comun este faptul că umplerea hard disk-ului se întâmplă adesea în același timp cu alte lucruri care, în mod tradițional, ar putea încetini computerul dvs. ( A) .Performanța SSD tind să se degradeze pe măsură ce se umple, dar aceasta este o problemă relativ nouă, unică pentru SSD-uri și nu este cu adevărat vizibilă pentru utilizatorii ocazionali.În general, spațiul redus liber pe disc este doar o hering roșu.
De exemplu, lucruri precum:
1. Fragmentarea fișierelor. Fragmentarea fișierelor este o problemă ( B) , dar lipsa spațiului liber, în timp ce cu siguranță unul dintre multele factori care contribuie, nu este singura cauză a acesteia. Unele puncte cheie aici:
- Șansele unui fragment de fragmentare sunt și nu legate de cantitatea de spațiu liber rămasă pe unitate. Ele sunt legate de mărimea celui mai mare bloc contiguat de spațiu liber de pe unitate( adică "găuri" de spațiu liber), pe care cantitatea de spațiu liber se întâmplă să pună o limită superioară pe .Ele sunt, de asemenea, legate de modul în care sistemul de fișiere se ocupă de alocarea fișierelor( mai jos ). Luați în considerare: O unitate care este de 95% plină cu tot spațiul liber într-un singur bloc contiguu are șanse de zero procente de fragmentare a unui nou fișier ( C) ( iar șansa fragmentării unui fișier atașat este independent de spațiul liber).O unitate care este de cinci procente plină, dar cu date împrăștiate uniform pe unitate are o șansă foarte mare de fragmentare.
- Rețineți că fragmentarea fișierelor afectează numai performanța atunci când fișierele fragmentate sunt accesate . Luați în considerare: Aveți o unitate frumoasă, defragmentată, care are încă multe "găuri" libere în ea. Un scenariu comun. Totul se desfășoară fără probleme.În cele din urmă, ajungeți până la un punct în care nu mai rămân blocuri de spațiu liber. Descărcați un film uriaș, fișierul ajunge să fie foarte fragmentat. Acest lucru nu va încetini computerul dvs. .Toate fișierele dvs. de aplicație și cele care au fost bine în trecut nu vor deveni brusc fragmentate. Acest lucru poate face ca filmul să dureze mai mult timp pentru a fi încărcat( deși ratele de biți ale filmului sunt atât de scăzute în comparație cu ratele de citire a unității de hard disk pe care probabil că le va fi neobservată) și pot afecta performanța legată de I / O în timpul încărcării filmuluialtceva decât asta, nimic nu se schimbă.
- În timp ce fragmentarea fișierelor este cu siguranță o problemă, de multe ori efectele sunt atenuate de tamponarea și cache-ul de nivel de hardware și de hardware.Întârziat scrie, read-ahead, strategii cum ar fi prefetcher în Windows, etc, toate contribuie la reducerea efectelor fragmentării.În general, nu de fapt are impact semnificativ până când fragmentarea devine severă( aș dori chiar să spun că atâta timp cât fișierul dvs. swap nu este fragmentat, probabil că niciodată nu veți observa).
2. Indexarea căutării este un alt exemplu. Spuneți că ați activat indexarea automată și un sistem de operare care nu se ocupă de acest lucru grațios. Pe măsură ce salvați conținut mai indexabil și mai mult pe computer( documente și altele), indexarea poate dura mai mult și poate începe să aibă un efect asupra vitezei percepute a computerului în timp ce rulează, atât în modul I / O, cât și în modul CPU.Acest lucru nu este legat de spațiul liber, este legat de cantitatea de conținut indexabil pe care îl aveți. Cu toate acestea, lipsa spațiului liber merge mână în mână cu stocarea mai multor conținuturi, de aici rezultă o conexiune falsă.
3. Software antivirus( similar cu exemplul de indexare a căutării).Spuneți că ați instalat software anti-virus pentru a face scanarea în fundal a unității. Pe măsură ce aveți mai mult și mai mult conținut scanabil, căutarea necesită mai multe resurse I / O și CPU, eventual interferând cu munca dvs. Din nou, aceasta este legată de cantitatea de conținut scanabil pe care îl aveți. Mai mult conținut adesea echivalează cu mai puțin spațiu liber, dar lipsa spațiului liber nu este cauza.
4. Software instalat. Spuneți că aveți o mulțime de software instalat care se încarcă atunci când computerul dvs. cizme, încetinind astfel timpii de pornire. Această încetinire se întâmplă deoarece se încarcă o mulțime de software. Cu toate acestea, software-ul instalat ocupă spațiu pe hard disk. Prin urmare, spațiul liber al unității de disc scade în același timp cu acest lucru și, din nou, se poate face o conexiune falsă.
5. Multe alte exemple de-a lungul acestor linii care, atunci când sunt luate împreună, apar pentru a asocia îndeaproape lipsa de spațiu liber cu performanțe mai mici.
Exemplul de mai sus ilustrează un alt motiv în care acest lucru este un mit comun: în timp ce lipsa spațiului liber nu este o cauză directă a încetinirii, dezinstalarea diverselor aplicații, eliminarea conținutului indexat sau scanat etc. uneori( dar nu întotdeauna;din acest răspuns) crește din nou performanța din motive independente de spațiul liber rămas. Dar acest lucru, de asemenea, în mod natural, eliberează spațiu pe hard disk. Prin urmare, din nou, se poate face o conexiune aparentă( dar falsă) între "spațiul liber mai mult" și un "calculator mai rapid".
Luați în considerare: Dacă aveți o mașină care rulează lent din cauza multor software-uri instalate etc, clonați hard diskul( exact) pe un hard disk mai mare, apoi extindeți partițiile pentru a obține mai mult spațiu liber, mașina nu va accelera magicsus. Aceleași încărcări de software, aceleași fișiere sunt încă fragmentate în aceleași moduri, același indexer de căutare încă rulează, nimic nu se schimbă în ciuda faptului că are mai mult spațiu liber.
"Are ceva de-a face cu căutarea spațiului de memorie pentru a salva lucrurile?"
Nu. Nu. Există două lucruri foarte importante care merită notate aici:
1. Hard disk-ul dvs. nu caută în jur pentru a găsi locuri pentru a pune lucrurile. Hard disk-ul este prost. Nu-i nimic. Este un bloc mare de stocare adresat, care pune orbește lucrurile acolo unde sistemul tău spune și citește orice i se cere. Unitățile moderne au mecanisme sofisticate de memorare în cache și tamponare proiectate în jurul prezenței a ceea ce cere sistemul de operare pe baza experienței dobândite de-a lungul timpului( unele unități sunt chiar conștiente de sistemul de fișiere care este pe ele), dar, în esență,conduceți doar ca o cărămidă mare de depozitare cu caracteristici de performanță bonus ocazionale.
2. Sistemul dvs. de operare nu caută nici locuri pentru a pune lucrurile. Nu există căutare. Sa depus mult efort în rezolvarea acestei probleme, deoarece este esențială pentru performanța sistemului de fișiere. Modul în care datele sunt efectiv organizate pe unitatea dvs. este determinată de sistemul dvs. de fișiere. De exemplu, FAT32( vechile DOS și Windows PC-uri), NTFS( ediții ulterioare de Windows), HFS +( Mac), ext4( unele sisteme Linux) și multe altele. Chiar și conceptul de "fișier" și "director" sunt doar produse ale sistemelor de fișiere tipice - hard-drivere nu știu nimic despre ființele misterioase numite .Detaliile sunt în afara scopului acestui răspuns. Dar, în mod esențial, toate sistemele de fișiere comune au modalități de urmărire unde spațiul disponibil este pe o unitate, astfel încât o căutare a spațiului liber este, în circumstanțe normale( adică sisteme de fișiere în stare bună de sănătate) inutile. Exemple:
- NTFS are un tabel de fișiere master, care include fișierele speciale $ Bitmap , etc., și o mulțime de meta date care descriu unitatea.În esență, acesta urmărește unde sunt următoarele blocuri libere, astfel încât fișierele noi pot fi scrise direct în blocuri libere fără a fi nevoie de scanarea unității de fiecare dată.
- Un alt exemplu: Ext4 are ceea ce se numește alocator bitmap, o îmbunătățire față de ext2 și ext3 care, în esență, ajută la determinarea directă a blocurilor libere în locul scanării listei de blocuri libere. Ext4 suportă, de asemenea, alocarea întârziată a , adică tamponarea datelor în memoria RAM de către sistemul de operare înainte de a fi scrisă unității, pentru a lua decizii mai bune cu privire la locul unde să se reducă fragmentarea.
- Multe alte exemple.
"Sau cu lucrurile în mișcare pentru a crea un spațiu suficient de lung pentru a salva ceva?"
Nu. Nu se întâmplă acest lucru, cel puțin nu cu niciun sistem de fișiere despre care știu. Fișierele sfârșesc doar fragmentate.
Procesul de "mișcare a lucrurilor în jurul pentru a crea un spațiu suficient de lung pentru a salva ceva" se numește defragmentarea .Acest lucru nu se întâmplă când fișierele sunt scrise. Acest lucru se întâmplă atunci când executați defragmentarea discului. La edițiile mai noi ale Windows, cel puțin aceasta se întâmplă automat într-un program, dar nu este declanșată niciodată prin scrierea unui fișier.
A fi capabil să evite evitarea mutarea lucrurilor în jurul valorii de acest lucru este cheia pentru performanța sistemului de fișiere și de aceea se întâmplă fragmentarea și de ce defragmentarea există ca un pas separat.
"Cât spațiu gol trebuie să las liber pe un hard disk?"
Aceasta este o întrebare mai dificilă de răspuns( și acest răspuns a devenit deja o carte mică).
Reguli de bază:
1. Pentru toate tipurile de unități:
- Cel mai important, lăsați suficient spațiu liber pentru pentru a vă folosi calculatorul în mod eficient .Dacă vă lipsiți de spațiu pentru a lucra, veți dori o mișcare mai mare.
- Multe instrumente de defragmentare a discului necesită o cantitate minimă de spațiu liber( cred că cea cu Windows necesită 15%, cel mai rău caz) pentru a lucra. Ei folosesc acest spațiu liber pentru a păstra temporar fișierele fragmentate, deoarece alte lucruri sunt rearanjate.
- Lăsați spațiu pentru alte funcții ale sistemului de operare. De exemplu, dacă mașina dvs. nu are o mulțime de memorie RAM fizică și aveți activată memoria virtuală cu un fișier de pagină cu dimensiune dinamică, veți dori să lăsați suficient spațiu pentru dimensiunea maximă a fișierului paginii. Sau dacă aveți un laptop pe care îl puneți în modul de hibernare, veți avea nevoie de suficient spațiu liber pentru fișierul de stare de hibernare. Lucruri de genul acela.
2. Specific SSD:
- Pentru o fiabilitate optimă( și într-o măsură mai mică performanță), SSD-urile necesită un spațiu liber care, fără a intra în prea multe detalii, utilizează pentru împrăștierea datelor în jurul unității pentru a evita scrierea constantăîn același loc( care le poartă).Acest concept de a lăsa spațiul liber se numește supra-provizionare. Este important, , dar în multe SSD-uri, spațiul obligatoriu supra-rezervat există deja .Asta este, driverele au adesea câteva duzini de GB mai mult decât le raportează OS.Unitățile de ultimă generație necesită adesea să părăsiți manual spațiul nepartiționat, dar pentru unitățile cu OP obligatoriu, nu trebuie să lăsați niciun spațiu liber .Un lucru important este faptul că spațiul supra-provizionat este adesea luat doar din spațiul nepartiționat .Deci, dacă partiția dvs. va prelua întreaga dvs. unitate și veți lăsa un spațiu liber pe ea, acest lucru nu înseamnă întotdeauna număr. De multe ori, supra-provizionarea manuală vă impune să micșorați partiția dvs. pentru a fi mai mică decât dimensiunea unității. Verificați manualul de utilizare SSD pentru detalii. TRIM, colectarea deșeurilor și altele asemenea au efecte, dar acestea nu intră în sfera acestui răspuns.
Personal, de obicei apuc un drive mai mare atunci când am aproximativ 20-25% spațiu liber rămas. Acest lucru nu este legat de performanță, este doar că atunci când ajung la acest punct, mă aștept că probabil voi fi în curând spațiu pentru date în curând și este timpul pentru a obține o unitate mai mare.
Mai important decât a viziona spațiul liber este să vă asigurați că defragmentarea programată este activată acolo unde este cazul( nu pe SSD-uri), astfel încât să nu ajungeți niciodată în punctul în care devine destul de groaznic să vă afecteze.
Există un ultim lucru care merită menționat. Unul dintre celelalte raspunsuri mentionate aici a mentionat ca modulul semi-duplex SATA previne citirea si scrierea in acelasi timp. Deși este adevărat, acest lucru este mult prea simplificat și nu are legătură cu problemele de performanță discutate aici. Ce înseamnă, pur și simplu, că datele nu pot fi transferate în ambele direcții pe firul în același timp. Cu toate acestea, SATA are o specificație destul de complexă, care implică dimensiuni mici de blocuri( aproximativ 8kB per bloc pe fir, cred), citește și scrie cozi de operare etc, și nu exclude scrierea bufferelor care se întâmplă în timp ce citirile sunt în desfășurare, intercalateoperațiuni etc.
Orice blocare care se produce ar fi datorată concurenței pentru resursele fizice, de obicei atenuate de o mulțime de cache. Modul duplex al SATA este aproape în întregime irelevant aici.
( A) "Slow down" este un termen larg. Aici îl folosesc pentru a se referi la lucruri care sunt legate de I / O( adică dacă computerul dvs. este așezat acolo cu numerele de ronțăit, conținutul hard disk-ului nu are nici un impact) sau CPU-legat și care concurează cu lucruri legate tangențial, Utilizarea CPU( adică software anti-virus scanând tone de fișiere).SSD-urile
( B) sunt afectate de fragmentarea în care accesul secvențial viteze sunt în general mai rapid decât cu acces aleator, în ciuda SSD-urile nu se confruntă cu aceleași limitări ca un dispozitiv mecanic( chiar și atunci, lipsa de fragmentare nu garantează accesul secvențial din cauza uzurii de nivelare,etc).Cu toate acestea, în aproape orice scenariu de utilizare generală, aceasta este o problemă non-problemă.Diferențele de performanță datorate fragmentării pe SSD-uri sunt în mod obișnuit neglijabile pentru lucruri precum încărcarea aplicațiilor, pornirea computerului etc.
( C) Dacă presupunem un sistem de fișiere normal care nu fragmentează fișierele în mod intenționat.
Asigurați-vă că ați citit restul discuțiilor pline de viață la SuperUser prin intermediul link-ului de mai jos!
Trebuie să adăugați ceva la explicație? Sunați în comentarii. Doriți să citiți mai multe răspunsuri de la alți utilizatori de tehnologie Stack Exchange? Check out discuția completă aici.