Kāpēc diska vietas iztukšošana paātrina datorus?
Kad uzzināsiet vairāk par datoriem un to, kā viņi strādā, jūs reizēm pāriet kaut ko, kas nešķiet saprātīgs. Paturot to prātā, vai diska vietas iztukšošana faktiski paātrina datorus? Šodienas SuperUser Q&A postenim ir atbilde uz neskaidru lasītāja jautājumu.
Šodienas jautājumu un atbilžu sesija mums dod pieklājību no SuperUser-Stack Exchange apakšnodaļas, kas ir kopienas orientēta Q & A tīmekļa vietņu grupa.
Ekrānuzņēmums pieklājīgi no nchenga (Flickr).
Jautājums
SuperUser lasītājs Remi.b vēlas uzzināt, kāpēc diska vietas iztukšošana, šķiet, paātrina datoru:
Es skatījos daudz video un tagad saprotu, kā datori darbojas nedaudz labāk. Es saprotu, kas ir RAM, par gaistošu un nepastāvīgu atmiņu, un maiņas procesu. Es arī saprotu, kāpēc RAM palielināšana paātrina datoru.
Tas, ko es nesaprotu, ir iemesls, kāpēc diska vietas tīrīšana, šķiet, paātrina datoru. Vai tas patiešām paātrina datoru? Ja jā, tad kāpēc tā to dara?
Vai tai ir kaut kas saistīts ar atmiņas vietas meklēšanu, lai saglabātu lietas vai pārvietotu lietas, lai pietiekami ilgi saglabātu vietu, lai kaut ko saglabātu? Cik daudz brīvas vietas jāatstāj cietajā diskā?
Kāpēc diska vietas iztukšošana paātrina datoru?
Atbilde
SuperUser ieguldītājam Jason C ir atbilde:
"Kāpēc diska vietas iztukšošana paātrina datorus?"
Tas vismaz nav pats par sevi. Tas ir patiešām izplatīts mīts. Iemesls, kāpēc tas ir izplatīts mīts, ir tas, ka jūsu cietā diska aizpildīšana bieži notiek vienlaikus ar citām lietām, kas tradicionāli varētu palēnināt datoru (A). SSD veiktspēja mēdz pasliktināties, kad tie aizpildās, bet tas ir salīdzinoši jauns jautājums, kas ir unikāls SSD, un tas nav īsti pamanāms nejaušiem lietotājiem. Parasti zema brīvā diska vieta ir tikai sarkana siļķe.
Piemēram, tādas lietas kā:
1. Failu fragmentācija. Failu fragmentācija ir problēma (B), bet brīvas vietas trūkums, lai gan noteikti viens no daudzajiem veicinošajiem faktoriem, nav vienīgais tā cēlonis. Daži galvenie punkti šeit:
- Faila fragmentācijas iespējas ir ne ir atkarīgs no brīvās vietas daudzuma, kas palicis uz diska. Tie ir saistīti ar lielākās brīvās vietas blakusesošā bloka izmēru (t.i., brīvas vietas "caurumi"), ko brīvās vietas apjoms ir notiek augšējā robeža. Tie ir arī saistīti ar to, kā failu sistēma apstrādā failu piešķiršanu (tālāk tālāk). Apsveriet: Diskā, kas ir 95% pilna ar visu brīvo vietu vienā blakusesošajā blokā, ir nulles procentuālā iespēja sadrumstalot jaunu failu (C) (un iespēja sasaistīt pievienoto failu ir neatkarīga no brīvās vietas). Diskdziņam, kas ir pieci procenti, bet ar datiem, kas vienmērīgi sadalīti pa disku, ir ļoti liela sadrumstalotība.
- Paturiet prātā, ka failu fragmentācija ietekmē tikai veiktspēju, kad piekļūst fragmentāriem failiem. Apsveriet: Jums ir jauks, defragmentēts disks, kurā joprojām ir daudz brīvu "caurumu". Kopīgs scenārijs. Viss darbojas nevainojami. Galu galā jūs nokļūsiet līdz punktam, kur vairs nav lielas brīvas vietas bloki. Jūs lejupielādējat milzīgu filmu, un fails beidzas ar nopietnu sadrumstalotību. Tas neļaus palēnināt jūsu datoru. Visi jūsu lietojumprogrammu faili un tādi, kas iepriekš bija soda naudas, pēkšņi nebūs sadrumstaloti. Tas var padarīt filmu ilgāk ielādēt (lai gan tipiskie filmu bitu pārraides ātrumi ir tik zemi, salīdzinot ar cieto disku nolasīšanas ātrumu, ka tas, visticamāk, nebūs pamanāms), un tas var ietekmēt I / O saistīto veiktspēju, kamēr filma tiek ielādēta, bet nekas nemainās.
- Lai gan failu sadrumstalotība noteikti ir problēma, bieži vien efektus mazina OS un aparatūras līmeņa buferizācija un kešatmiņa. Aizkavēta rakstīšana, lasīšana uz priekšu, stratēģijas, piemēram, prefetcher Windows, utt., Palīdz samazināt fragmentācijas ietekmi. Jūs parasti to nedarāt faktiski piedzīvo ievērojamu ietekmi, kamēr sadrumstalotība kļūst smaga (es pat gribētu teikt, ka tikmēr, kamēr jūsu mijmaiņas fails nav sadrumstalots, jūs, iespējams, nekad nepamanīsiet).
2. Vēl viens piemērs ir meklēšanas indeksēšana. Sakiet, ka jums ir ieslēgta automātiska indeksācija un operētājsistēma, kas to neapstrādā. Saglabājot vairāk un vairāk indeksējamu saturu datoram (dokumenti un tādi), indeksēšana var aizņemt ilgāku laiku un var sākties ietekmēt datora uztveramo ātrumu, kamēr tā darbojas, gan I / O, gan CPU lietošanā . Tas nav saistīts ar brīvu vietu, tas ir saistīts ar jūsu indeksējamā satura apjomu. Tomēr brīvas vietas izbeigšana iet roku rokā ar vairāk satura glabāšanu, tāpēc tiek veidots nepareizs savienojums.
3. Pretvīrusu programmatūra (līdzīga meklēšanas indeksēšanas piemēram). Sakiet, ka jums ir antivīrusu programmatūra, kas izveidota, lai veiktu jūsu diska fona skenēšanu. Tā kā jums ir vairāk un vairāk skenējamu saturu, meklēšana aizņem vairāk I / O un CPU resursu, iespējams, traucējot jūsu darbam. Atkal, tas ir saistīts ar jums pieejamo skenējamo saturu. Vairāk satura bieži vien ir mazāk brīvas vietas, bet brīvas vietas trūkums nav iemesls.
4. Instalēta programmatūra. Sakiet, ka jums ir instalēta daudz programmatūras, kas ielādē jūsu datora zābakus, tādējādi palēninot starta laiku. Tas palēninās, jo tiek ielādēta daudz programmatūras. Tomēr instalētā programmatūra aizņem cietā diska vietu. Tāpēc cietā diska brīvā telpa samazinās tajā pašā laikā, kad tas notiek, un atkal var izveidot nepareizu savienojumu.
5. Daudzi citi piemēri šajā virzienā ir kopīgi, parādās cieši saistīt brīvas vietas trūkumu ar zemāku veiktspēju.
Iepriekš redzams cits iemesls tam, ka tas ir tik izplatīts mīts: lai gan brīvas vietas trūkums nav tiešs palēnināšanās iemesls, dažāda veida lietojumprogrammu atinstalēšana, indeksa vai skenēta satura atdalīšana utt. (Bet ne vienmēr; šī atbilde atkal palielina veiktspēju tādu iemeslu dēļ, kas nav saistīti ar atlikušās brīvās vietas apjomu. Bet tas arī dabiski atbrīvo cietā diska vietu. Tāpēc atkal var izveidot acīmredzamu (bet nepareizu) saikni starp „vairāk brīvas vietas” un “ātrāku datoru”.
Apsveriet: Ja jums ir mašīna, kas darbojas lēni, pateicoties daudzai instalētajai programmatūrai, utt., Klonējiet cieto disku (tieši) uz lielāku cieto disku, pēc tam paplašiniet savas starpsienas, lai iegūtu vairāk brīvas vietas, mašīna maģiski netiks paātrināta. Tādas pašas programmatūras ielādes, tie paši faili joprojām ir sadrumstaloti tādā pašā veidā, tas pats meklēšanas rādītājs joprojām darbojas, nekas nemainās, neraugoties uz brīvāku vietu.
“Vai tai ir kaut kas saistīts ar atmiņas vietas meklēšanu, lai glābtu lietas?”
Nē, tas nav. Ir vērts atzīmēt divas ļoti svarīgas lietas:
1. Cietais disks nepieprasa, lai atrastu vietas, kur ievietot lietas. Jūsu cietais disks ir stulbs. Tas ir nekas. Tā ir liela adrešu krātuve, kas akli liek lietām, kur jūsu OS to stāsta, un lasa visu, kas tiek prasīts no tā. Mūsdienu diskdziņiem ir sarežģīti kešatmiņas un buferizācijas mehānismi, kas paredzēti, lai prognozētu to, ko operētājsistēma pieprasīs, pamatojoties uz laika gaitā gūto pieredzi (daži diskdziņi pat zina par tiem esošo failu sistēmu), bet būtībā domā par savu braukt kā tikai lielu mēmu glabāšanas ķieģeli ar neregulārām bonusa veiktspējas funkcijām.
2. Arī jūsu operētājsistēma nepieprasa vietas, kur ievietot lietas. Nav meklēšanas. Daudz pūļu ir risinājuši šīs problēmas risināšanā, jo tas ir ļoti svarīgi failu sistēmas darbībai. To, kā dati tiek reāli organizēti jūsu diskā, nosaka jūsu failu sistēma. Piemēram, FAT32 (vecie DOS un Windows datori), NTFS (jaunākie Windows izdevumi), HFS + (Mac), ext4 (dažas Linux sistēmas) un daudzi citi. Pat „faila” un “direktorijas” koncepcija ir tikai tipisku failu sistēmu produkti - cietie diski neko nezina par noslēpumainajiem zvēriem, kurus sauc par failus. Sīkāka informācija neattiecas uz šo atbildi. Taču būtībā visām kopējām failu sistēmām ir iespējas izsekot, kur disks ir pieejams, lai brīvās vietas meklēšana normālos apstākļos (t.i., labas veselības failu sistēmas) būtu nevajadzīga. Piemēri:
- NTFS ir galvenā datņu tabula, kas ietver īpašos failus $ Bitmap, uc, un daudz meta datu, kas raksturo disku. Būtībā tā seko līdzi, kur ir nākamie brīvie bloki, lai jaunos failus varētu rakstīt tieši brīvos blokos bez nepieciešamības skenēt disku katru reizi.
- Vēl viens piemērs: Ext4 ir tas, ko sauc par bitmap sadalītāju, uzlabojums salīdzinājumā ar ext2 un ext3, kas būtībā palīdz tieši noteikt, kur brīvie bloki ir brīvo bloku saraksta skenēšanas vietā. Ext4 atbalsta arī novēlota piešķiršana, tas nozīmē, ka operētājsistēma pirms datu uzrakstīšanas uz disku operētājsistēmā RAM veic datu uzkrāšanu, lai labāk pieņemtu lēmumus par to, kur to samazināt, lai samazinātu sadrumstalotību..
- Daudzi citi piemēri.
„Vai arī, pārvietojot lietas apkārt, lai padarītu pietiekami ilgu nepārtrauktu telpu, lai saglabātu kaut ko?”
Nē. Tas nenotiek, vismaz ne ar jebkuru failu sistēmu, par kuru es zinu. Faili ir tikai fragmentēti.
Tiek saukts process, kas „pārvieto lietas apkārt, lai izveidotu pietiekami ilgu telpu, lai saglabātu kaut ko” defragmentēšana. Tas nenotiek, ja tiek rakstīti faili. Tas notiek, palaižot diska defragmentētāju. Jaunākajos Windows izdevumos vismaz tas notiek automātiski grafikā, bet to nekad neizmanto, rakstot failu.
Spēja izvairīties tādu lietu pārvietošana, kā tas ir, ir atslēga failu sistēmas veiktspējai, un tāpēc sadrumstalotība notiek un kāpēc defragmentācija pastāv kā atsevišķs solis.
"Cik daudz brīvas vietas jāatstāj cietajā diskā?"
Tas ir sarežģītāks jautājums, uz kuru jāatbild (un šī atbilde jau ir kļuvusi par nelielu grāmatu).
Īkšķa noteikumi:
1. Visiem diskdziņiem:
- Vissvarīgākais, atstājiet pietiekami daudz brīvas vietas jūs efektīvi izmantojat datoru. Ja jums ir daudz vietas, lai strādātu, jūs vēlaties lielāku disku.
- Daudzi diska defragmentēšanas rīki pieprasa minimālu brīvas vietas daudzumu (domāju, ka ar Windows ir nepieciešams 15 procenti, sliktākajā gadījumā), lai strādātu. Viņi izmanto šo brīvo vietu, lai īslaicīgi turētu sadrumstalotus failus, jo citas lietas tiek pārkārtotas.
- Atstājiet vietu citām OS funkcijām. Piemēram, ja jūsu iekārtai nav daudz fizisku RAM, un jums ir iespējota virtuālā atmiņa ar dinamiski izmēra lapas failu, jūs vēlaties atstāt pietiekami daudz vietas lapas faila maksimālajam izmēram. Vai arī, ja jums ir klēpjdators, ko ievietojat hibernācijas režīmā, hibernācijas stāvokļa failam būs nepieciešams pietiekami daudz brīvas vietas. Tādas lietas.
2. SSD:
- Lai nodrošinātu optimālu uzticamību (un mazākā mērā arī veiktspēju), SSD ir nepieciešama brīva telpa, kas, nepārkāpjot pārāk daudz detalizācijas, izmanto datu izplatīšanai ap disku, lai izvairītos no nepārtrauktas rakstīšanas uz to pašu vietu (kas tos nodod) . Šo brīvās telpas atstāšanas koncepciju sauc par pārmērīgu nodrošinājumu. Tas ir svarīgi, bet daudzos SSD ir obligāta pārmērīga rezerve. Tas nozīmē, ka diskus bieži vien ir vairāki desmiti GB nekā tie ziņo operētājsistēmai. Apakšējie diskdziņi bieži liek jums manuāli atstāt neatdalīts vietas, bet gan diskus ar obligātu OP, jums nav nepieciešams atstāt brīvu vietu. Šeit ir svarīgi atzīmēt Pārāk nodrošināta telpa bieži tiek ņemta tikai no nesadalītas vietas. Tātad, ja jūsu nodalījums aizņem visu disku un jūs atstājat brīvu vietu, tas nenotiek vienmēr skaits. Daudzas reizes, manuāla pārmērīga nodrošināšana liek jums samazināt jūsu nodalījumu, lai tā būtu mazāka par diska lielumu. Detalizētu informāciju skatiet SSD lietotāja rokasgrāmatā. TRIM, atkritumu savākšana un tādas sekas arī ir, bet tās nav šīs atbildes darbības jomā.
Personīgi es parasti paņemu lielāku disku, kad man ir apmēram 20-25 procenti brīvas vietas. Tas nav saistīts ar sniegumu, tas ir tikai tas, ka tad, kad es nonākšu līdz šim punktam, es ceru, ka drīz drīz tiks iztukšots datu apjoms, un ir pienācis laiks iegūt lielāku disku.
Svarīgāka nekā brīvas vietas skatīšanās ir pārliecināties, ka plānotā defragmentācija ir iespējota, ja tas ir nepieciešams (nevis SSD), lai jūs nekad nenonāktu līdz vietai, kur tas ir tik grūti, lai jūs ietekmētu.
Ir vēl viena vērts pieminēt. Viena no šeit minētajām atbildēm minēja, ka SATA pusdupleksais režīms neļauj vienlaikus lasīt un rakstīt. Lai gan tas ir patiesi, tas ir ļoti vienkāršots un lielākoties nav saistīts ar šeit apspriestajiem veiktspējas jautājumiem. Tas vienkārši nozīmē, ka datus nevar pārsūtīt abos virzienos uz vadu tajā pašā laikā. Tomēr SATA ir diezgan sarežģīta specifikācija, kas ietver nelielus maksimālos bloku izmērus (aptuveni 8 kB uz bloku uz vadu, es domāju), lasīšanas un rakstīšanas operāciju rindas utt., Un neizslēdz iespēju rakstīt uz buferiem, kas notiek, kamēr notiek lasīšana darbības utt.
Jebkura bloķēšana, kas notiek, būtu saistīta ar konkurēšanu par fiziskiem resursiem, ko parasti mazina daudz kešatmiņas. SATA dupleksais režīms šeit gandrīz nav būtiski.
(A) “Palēnināt” ir plašs termins. Šeit es to izmantoju, lai atsauktos uz lietām, kas ir saistītas ar I / O-saistībām (ti, ja jūsu dators tur sēž skaitļus, cietā diska saturam nav ietekmes) vai ar CPU saistītu un konkurē ar tangenciāli saistītām lietām, kurām ir augsts CPU izmantošana (ti, pretvīrusu programmatūras skenēšana tonnas failu).
(B) SSD ietekmē sadrumstalotība, jo secīgie piekļuves ātrumi parasti ir ātrāki par nejaušu piekļuvi, neskatoties uz to, ka SSD nav tādi paši ierobežojumi kā mehāniskajai ierīcei (pat tad sadrumstalotības trūkums negarantē pakāpenisku piekļuvi nolietojuma dēļ utt.). Tomēr praktiski visos vispārējās lietošanas scenārijos tas nav jautājums. Darbības atšķirības, kas rodas SSD fragmentācijas dēļ, parasti ir niecīgas lietām, piemēram, ielādējot lietojumprogrammas, startējot datoru utt.
(C) Pieņemot sane failu failu sistēmu, kas nav sadrumstalota failus pēc mērķa.
Pārliecinieties, ka izlasiet pārējo dzīvo diskusiju SuperUser, izmantojot tālāk norādīto saiti!
Vai kaut kas jāpievieno paskaidrojumam? Skaņas izslēgšana komentāros. Vai vēlaties lasīt vairāk atbildes no citiem tehnoloģiju gudriem Stack Exchange lietotājiem? Apskatiet pilnu diskusiju pavedienu šeit.