If-Koubou

Защо ли изпразването на дисково пространство ускорява компютрите?

Защо ли изпразването на дисково пространство ускорява компютрите? (Как да)

Когато научите повече за компютрите и как работят, понякога ще се натъкнете на нещо, което не изглежда смислено. С оглед на това, празно пространство на дисковете всъщност ускорява компютрите? Днешната публикация на SuperUser Q & A е отговорът на озадачен въпрос на читателя.

Днешната сесия за въпроси и отговори ни идва с любезното съдействие на SuperUser - подразделение на Stack Exchange - обединяване на уеб сайтове с въпроси и отговори.

Скрийншотът е предоставен от nchenga (Flickr).

Въпроса

Reader на SuperUser Remi.b иска да знае защо изпразването на дисково пространство изглежда ускорява компютъра:

Гледал съм много видеоклипове и сега разбирам как компютрите работят малко по-добре. Разбирам каква е RAM, за летливата и енергонезависима памет и за процеса на размяна. Разбирам също защо увеличаването на RAM ускорява компютъра.

Това, което не разбирам, е защо почистването на дисково пространство изглежда ускорява компютъра. Наистина ли ускорява компютър? Ако е така, защо го прави?

Има ли нещо общо с търсенето на пространство в паметта, за да се спасят нещата или да се движат неща наоколо, за да се направи достатъчно дълъг непрекъснато пространство, за да се спаси нещо? Колко празно място трябва да оставя свободно на твърдия диск?

Защо изглежда, че изпразването на дисково пространство ускорява компютъра?

Отговорът

Сътрудникът на SuperUser Джейсън С има отговора за нас:

"Защо изпразването на дисково пространство ускорява компютрите?"

Тя не е, поне не сама. Това е наистина често срещан мит. Причината за това е един общ мит е, защото запълването на твърдия ви диск често се случва едновременно с други неща, които традиционно биха могли да забавят компютъра ви (А), Изпълнението на SSD има тенденция да се разгражда, докато те запълват, но това е сравнително нов проблем, уникален за SSD, и не е забележим за обикновените потребители. Обикновено ниското свободно дисково пространство е просто червена херинга.

Например неща като:

1. Фрагментиране на файлове. Фрагментирането на файлове е проблем (В), но липсата на свободно пространство, определено един от многото допринасящи фактори, не е единствената причина за това. Тук са някои ключови моменти:

  • Шансовете за фрагментиране на файла са не свързани с размера на свободното място, оставено на устройството. Те са свързани с размера на най-големия съседен блок на свободното пространство на устройството (т.е. "отворите" на свободното пространство), които количеството свободно пространство ще се появи горна граница, Те също така са свързани с това как файловата система обработва файловото разпределение (по-долу). Обмисли: Диск, който е 95 процента пълен с цялото свободно място в един единствен съседен блок, има нулев процент шанс за фрагментиране на нов файл (° С) (а шансът за фрагментиране на приложен файл е независим от свободното пространство). Диск, който е пет процента пълен, но с данни, разпределени равномерно върху диска, има много голям шанс за фрагментация.
  • Имайте предвид, че фрагментирането на файловете засяга само ефективността при достъп до фрагментираните файлове. Обмисли: Имате хубаво, дефрагментирано устройство, което все още има много свободни "дупки" в него. Общ сценарий. Всичко върви гладко. Накрая, обаче, достигате до точка, където няма повече големи блокове свободно пространство. Изтегляте огромен филм, а файлът се оказва силно фрагментиран. Това няма да забави компютъра ви, Всичките ви файлове и такива, които преди са били добре, няма да се разпаднат внезапно. Това може да накара филма да се зарежда по-дълго (въпреки че типичните честоти на филмовите честоти са толкова ниски в сравнение с честотите на четене на твърдия диск, които най-вероятно няма да бъдат забелязани) и може да повлияе на работата, свързана с I / O, докато се зарежда филма освен това, нищо не се променя.
  • Докато фрагментирането на файлове със сигурност е проблем, често пъти ефектите са смекчени от операционната система и хардуерното ниво на буфериране и кеширане. Забавените пише, четенето напред, стратегиите като prefetcher в Windows и т.н., всички помагат да се намалят последиците от фрагментацията. Обикновено не всъщност ще изпитате значително въздействие, докато фрагментацията стане сериозна (дори бих искал да кажа, че докато вашият суап файл не е фрагментиран, вероятно никога няма да забележите).

2. Индексът на търсене е друг пример. Кажете, че сте включили автоматично индексиране и операционна система, която не се справя изящно с това. Когато запазвате все по-интелигентно съдържание в компютъра си (документи и др.), Индексирането може да отнеме повече време и може да започне да оказва влияние върху възприеманата скорост на вашия компютър, докато работи, както при използване на I / O и CPU , Това не е свързано с свободното пространство, а е свързано с количеството на индексируемото съдържание, което имате. Обаче, изтичането на свободно пространство върви ръка за ръка със съхраняването на повече съдържание, поради което е съставена фалшива връзка.

3. Антивирусен софтуер (подобен на примерния индекс за търсене). Кажете, че сте настроили антивирусен софтуер, за да извършвате фоново сканиране на устройството ви. Тъй като имате все повече и повече съдържание за сканиране, търсенето отнема повече ресурси за входно / изходен процес и ресурси на процесора, което може да попречи на работата ви. Отново това е свързано с количеството съдържание, което можете да сканирате. Повечето съдържание често се равнява на по-малко свободно пространство, но липсата на свободно пространство не е причината.

4. Инсталиран софтуер. Кажете, че имате много инсталиран софтуер, който се зарежда, когато компютърът ви се захване, като по този начин забави стартирането. Това забавяне се случва, защото се зарежда много софтуер. Инсталираният софтуер обаче заема пространството на твърдия диск. Поради това свободното пространство на твърдия диск намалява едновременно с това, и отново може да се направи фалшива връзка.

5. Много други примери в тази насока, които, взети заедно, се появи да свързва тясно липсата на свободно пространство с по-ниска производителност.

Горното илюстрира друга причина, че това е толкова общ мит: Въпреки че липсата на свободно пространство не е пряка причина за забавяне, деинсталиране на различни приложения, премахване на индексирано или сканирано съдържание и т.н. понякога (но не винаги, извън обхвата на този отговор) увеличава отново ефективността по причини, които не са свързани с оставащото свободно място. Но това естествено освобождава пространството на твърдия диск. Следователно, отново може да се направи очевидна (но фалшива) връзка между "повече свободно пространство" и "по-бърз компютър".

Обмисли: Ако имате машина, която работи бавно, поради много инсталиран софтуер и т.н., клонирайте твърдия диск (точно) на по-голям твърд диск, след това разширете дяловете си, за да спечелите повече свободно място, машината няма да се ускори магически. Същите софтуерни зареждания, едни и същи файлове все още са разпокъсани по един и същи начин, все още работи индексът за търсене, нищо не се променя, въпреки че има повече свободно място.

"Има ли нещо общо с търсенето на място в паметта, за да се спасят нещата?"

Не не е. Има две много важни неща, които си заслужава да се отбележат тук:

1. Твърдият ви диск не търси наоколо, за да намери места, за да постави нещата. Твърдият ви диск е глупав. Нищо не е. Това е голям блок за адресирано хранилище, който сляпо поставя неща, на които вашата операционна система го казва, и чете всичко, което се иска от него. Съвременните устройства имат сложни механизми за кеширане и буфериране, предназначени да предскажат какво ще изисква операционната система на базата на опита, който сме придобили с течение на времето (някои устройства дори осъзнават файловата система, която е върху тях), но по същество мислете за вашите шофирайте като просто голяма глупава тухла за съхранение с някои бонусни характеристики.

2. Вашата операционна система също не търси места за поставяне на нещата. Няма търсене. Много усилия са положени в решаването на този проблем, тъй като е от решаващо значение за работата на файловата система. Начинът, по който данните са действително организирани на устройството ви, се определя от вашата файлова система. Например, FAT32 (стари DOS и Windows компютри), NTFS (по-късни издания на Windows), HFS + (Mac), ext4 (някои Linux системи) и много други. Дори концепцията за "файл" и "директория" са само продукти на типичните файлови системи - твърди дискове не знаят нищо за мистериозните зверове, наричани файлове, Детайлите са извън обхвата на този отговор. Но по същество всички обикновени файлови системи имат начини за проследяване на наличното пространство на диск, така че търсенето на свободно пространство е при нормални обстоятелства (т.е. файлови системи с добро здраве) ненужно. Примери:

  • NTFS има главна таблица с файлове, която включва специалните файлове $ Bitmap, и т.н., както и много мета данни, описващи устройството. По същество той проследява къде са следващите свободни блокове, така че новите файлове да могат да се записват директно на свободни блокове, без да се налага да сканират диска всеки път.
  • Друг пример: Ext4 има това, което се нарича bitmap allocator, подобрение над ext2 и ext3, което основно помага да се определи директно къде са свободните блокове, вместо да се сканира списъкът на свободни блокове. Ext4 също поддържа забавено разпределение, т.е. буфериране на данни в RAM от операционната система, преди да го напишем на устройството, за да вземем по-добри решения за това къде да го сложим, за да намали фрагментацията.
  • Много други примери.

- Или с движещи се неща наоколо, за да направим достатъчно дълго пространство, за да спасим нещо?

Не. Това не се случва, поне не с файловата система, за която съм наясно. Файловете просто свършват фрагментирани.

Процесът на "придвижване на нещата около себе си, за да се създаде достатъчно дълъг период на съседство за спасяване на нещо" се нарича дефрагментиране, Това не се случва, когато се записват файлове. Това се случва, когато стартирате дефрагментацията на диска. По-новите издания на Windows, поне това се случва автоматично по график, но никога не се задейства от написването на файл.

Да можеш да се избегне движението на нещата така е от ключово значение за производителността на файловата система и защо се случва фрагментацията и защо дефрагментацията съществува като отделна стъпка.

"Колко празно пространство трябва да оставя свободно на твърдия диск?"

Това е по-трудно зададен въпрос (и този отговор вече се е превърнал в малка книга).

Основни правила:

1. За всички видове устройства:

  • Най-важното е, оставяйте достатъчно свободно място да използвате компютъра си ефективно, Ако оставате без работа, ще искате по-голямо шофиране.
  • Много инструменти за дефрагментиране на диска изискват минимално свободно място (мисля, че тази с Windows изисква 15%, най-лошия случай), за да работят. Те използват това свободно пространство, за да държат временно фрагментирани файлове, тъй като други неща са пренаредени.
  • Оставете място за други функции на операционната система. Например, ако вашата машина не разполага с много физическа RAM и имате активирана виртуална памет с файл с динамичен размер на страницата, вие ще искате да оставите достатъчно място за максималния размер на файловия файл. Или ако имате лаптоп, който поставите в режим на хибернация, ще ви е необходимо достатъчно свободно място за файла за хибернация. Такива неща.

2. SSD-конкретни:

  • За оптимална надеждност (и в по-малка степен, производителност) SSD изисква известно свободно пространство, което, без да се навлиза в много подробности, използва за разпространение на данни около устройството, за да се избегне непрекъснато записване на същото място (което ги износва) , Тази концепция за напускане на свободното пространство се нарича презахранване. Важно е, но в много SSD вече съществува задължително свръхзарешено пространство, Това означава, че устройствата често имат няколко десетки повече GB, отколкото докладват на операционната система. Долните устройства често изискват от вас ръчно да си тръгвате неразбито на дялове пространство, но за устройства с задължителна ОП, не е нужно да оставяте свободно място, Важно е да се отбележи това свръхзареденото пространство често се взема само от неразделен пространство, Така че ако дялът ви заема целия ви диск и оставите малко свободно място, това не е така винаги броя. Много пъти, ръчното пренареждане изисква да намалите размера на дяла си, за да бъде по-малък от размера на устройството. Проверете ръководството за потребителя на SSD за подробности. TRIM, събирането на боклук и такива имат и ефекти, но те не попадат в обхвата на този отговор.

Лично аз обикновено вземам по-голямо движение, когато имам около 20-25% свободно място. Това не е свързано с ефективността, а просто, когато стигна до този момент, аз очаквам, че вероятно скоро ще изчерпвам пространството за данни и е време да постигна по-голямо желание.

По-важно, отколкото да гледате свободното пространство, е да сте сигурни, че планираното дефрагментиране е активирано, когато е уместно (а не върху SSD), така че никога да не стигнете до точката, в която тя стане достатъчно драматична, за да ви засегне.

Има едно последно нещо, което си заслужава да се спомене. Един от другите отговори тук споменава, че полудуплексният режим на SATA предотвратява четенето и писането по едно и също време. Докато е вярно, това е много опростено и най-вече не е свързано с въпросите за ефективността, които се обсъждат тук. Това просто означава, че данните не могат да се прехвърлят в двете посоки върху жицата по същото време. Въпреки това, SATA има сравнително сложна спецификация, включваща миниатюрни максимуми на блоковете (около 8kB на блок по проводника, мисля), четене и запис на операционни опашки и т.н., и не изключва писането на буфери, случващи се докато четенията са в ход, операции и др.

Всяко блокиране, което се случва, се дължи на състезание за физически ресурси, обикновено смекчено от много кеш. Двупосочният режим на SATA е почти напълно без значение тук.

(А) "Забавянето" е широк термин. Тук го използвам, за да се позова на неща, които са или I / O-обвързани (т.е. ако компютърът ви седи там с разтърсващи номера, съдържанието на твърдия диск няма никакво въздействие) или CPU-обвързани и конкуриращи се с тангенциално свързани неща, Използване на процесора (т.е. антивирусен софтуер, сканиращ тонове файлове).

(В) SSD се влияят от фрагментацията, тъй като последователните скорости на достъп обикновено са по-бързи от случаен достъп, въпреки че SSD не са изправени пред същите ограничения като механичното устройство (дори и тогава липсата на фрагментация не гарантира последователен достъп поради износване и т.н.). Въпреки това, в практически всеки сценарий за обща употреба това не е проблем. Различията в производителността, дължащи се на фрагментацията на SSD, обикновено са незначителни за неща като зареждане на приложения, зареждане на компютъра и др.

(° С) Приемайки правилната файлова система, която не раздробява файловете по предназначение.

Не забравяйте да прочетете останалата част от оживената дискусия в SuperUser чрез връзката по-долу!

Имате ли нещо, което да добавите към обяснението? Звучи в коментарите. Искате ли да прочетете повече отговори от други потребители на Stack Exchange? Вижте цялата тема на дискусията тук.