Чому спорожнення дискового простору пришвидшує комп'ютери?


191

Я переглядав купу відео і тепер трохи краще розумію, як працюють комп’ютери. Я краще розумію, що таке оперативна пам’ять, енергонезалежна і енергонезалежна пам'ять і процес заміни. Я також розумію, чому збільшення оперативної пам'яті прискорює роботу комп'ютера.

Я не розумію, чому очищення місця на диску прискорює роботу комп'ютера. Робить це? Чому так? Чи пов’язане це з пошуком наявного місця для економії речей? Або з переміщенням речей, щоб створити досить довгий безперервний простір, щоб щось заощадити? Скільки порожнього місця на жорсткому диску потрібно залишити вільним?


37
це насправді не прискорює роботу ПК, це лише зменшує шанси на фрагментацію файлів, що робить жорсткі диски повільнішими. Це один із найбільших міфів про ПК, який всі повторюють. Щоб знайти завантажувачі на ПК, відстежте їх за допомогою xperf / WPA.
magicandre1981

9
FWIW це speeds up the experience of using a PC.
edthethird

4
@ magicandre1981: Існує крихітний дорогоцінний камінь істини. Чим більше речей у кожній папці, тим повільніша траверсія файлів, яка впливає на що завгодно, використовуючи файловий шлях, а це ... все. Але це крихітно .
Mooing Duck

4
@MooingDuck Хоча це правда, це пов’язано з кількістю файлів у папці, а не з розміром файлів або кількістю місця, що залишається на диску. Цей ефект не пов'язаний із залишком місця на диску. Ефект також обмежений за обсягом лише до папки, вона не "сповільнить" весь комп'ютер. Наприклад, деякі файлові системи, ext3 / 4, використовують хешовані дерева каталогів для швидкого пошуку запитів (включаючи доступ до підпапок), тим самим ще більше обмежуючи сферу дії, наприклад, лише при переліку вмісту каталогу.
Джейсон C

4
Які відео ви точно дивилися?
Локо

Відповіді:


313

Тут я написав книгу випадково. Спочатку попити кави.

Чому спорожнення дискового простору пришвидшує комп'ютери?

Це не так, принаймні, не самостійно. Це дійсно поширений міф. Причина, по якій це загальний міф, полягає в тому, що заповнення вашого жорсткого диска часто відбувається одночасно з іншими речами, які традиційно можуть сповільнити ваш комп'ютер. Продуктивність SSD має тенденцію до погіршення в міру заповнення накопичувача , але це відносно нова проблема, унікальна для SSD, і не дуже помітна для випадкових користувачів. Як правило, мало вільного місця на диску - просто червона оселедець .

Наприклад, такі речі:

  • Фрагментація файлів. Фрагментація файлів - це проблема †kl , але нестача вільного простору, хоча, безумовно, один із багатьох факторів, що сприяють, не є єдиною причиною цього. Деякі ключові моменти тут:

    • Шанси фрагментації файлу не пов'язані з кількістю вільного місця, що залишилося на диску. Вони пов'язані з розміром найбільшого суміжного блоку вільного простору на накопичувачі (наприклад, "отвори" вільного простору), на який кількість вільного простору ставиться верхньою межею . Вони також пов'язані з тим, як файлова система обробляє розподіл файлів (докладніше нижче). Поміркуйте: накопичувач, заповнений на 95% із усім вільним простором в одному суміжному блоці, має 0% шансів фрагментації нового файлу †clock (і шанс фрагментації доданого файлу не залежить від вільного простору). Накопичений накопичувач на 5%, але при рівномірному розподілі даних по диску, дуже шанси фрагментації.

    • Майте на увазі, що фрагментація файлів впливає на продуктивність лише тоді, коли доступ до фрагментованих файлів . Подумайте: у вас хороший дефрагментований привід, у якому все ще багато вільних «дірок». Загальний сценарій. Все працює без проблем. Зрештою, все ж, ви потрапите до точки, коли більше великих блоків вільного простору не залишилося. Ви завантажуєте величезний фільм, і кінець файлу сильно фрагментований. Це не сповільнить ваш комп’ютер. Усі ваші файли додатків і такі, які раніше були чудовими, раптом не будуть фрагментовані. Це може зробити фільмзавантажувати потрібно більше часу (хоча типова швидкість передачі фільму настільки низька порівняно зі швидкістю читання на жорсткому диску, що, швидше за все, це буде непомітно), і це може вплинути на продуктивність, пов’язану з входом / виводом під час завантаження фільму , але крім цього, нічого не змінюється.

    • Хоча фрагментація файлів, безумовно, є проблемою, часто наслідки пом'якшуються буферизацією та кешуванням рівня ОС та апаратного забезпечення. Затримка запису, заздалегідь прочитане, такі стратегії, як префетер у Windows тощо, - всі допомагають зменшити ефекти фрагментації. Ви , як правило , НЕ на насправді відчувають значний вплив до тих пір , поки фрагментація стає серйозним (я б навіть ризикнув сказати , що до тих пір , як файл підкачки НЕ фрагментований, ви , ймовірно , не помітите).

  • Індексація пошуку - ще один приклад. Скажімо, у вас увімкнено автоматичну індексацію та ОС, яка не справляється з цим витончено. Оскільки ви зберігаєте на своєму комп’ютері все більше вмісту, що підлягає індексуванню (документи тощо), індексація може зайняти більше часу і може почати впливати на сприйняту швидкість роботи комп'ютера під час його роботи, як при введенні / виведенні, так і в процесорі . Це не пов’язано з вільним простором, воно пов’язане з кількістю вмісту, який можна індексувати. Однак втрата вільного місця йде рука об руку зі збереженням більше вмісту, отже, з’являється помилковий зв’язок.

  • Антивірусне програмне забезпечення. Аналогічно прикладу пошукової індексації. Скажімо, у вас встановлено антивірусне програмне забезпечення для фонового сканування вашого накопичувача. Оскільки у вас все більше вмісту, який можна сканувати, пошук забирає більше ресурсів вводу / виводу та процесора, можливо, заважаючи вашій роботі. Знову ж таки, це пов’язано з кількістю вмісту, який ви можете сканувати. Більше вмісту часто дорівнює менше вільного місця, але нестача вільного місця не є причиною.

  • Встановлене програмне забезпечення. Скажімо, у вас встановлено багато програмного забезпечення, яке завантажується, коли комп'ютер завантажується, тим самим сповільнюючи час запуску. Це уповільнення трапляється через те, що завантажується багато програмного забезпечення. Однак встановлене програмне забезпечення займає місце на жорсткому диску. Тому вільний простір на жорсткому диску зменшується в той же час, коли це відбувається, і знову помилкове з'єднання можна легко встановити.

  • Багато інших прикладів по тих напрямках, які, якщо взяти разом, здається, тісно пов'язують брак вільного простору з низькою продуктивністю.

Вищезазначене ілюструє ще одну причину, що це такий поширений міф: хоча брак вільного простору не є прямою причиною сповільнення, видалення різних програм, видалення індексованого чи сканованого вмісту тощо, інколи (але не завжди; поза межами цього відповідь) знову збільшує продуктивність з причин, не пов'язаних із кількістю вільного місця. Але це також природно звільняє місце на жорсткому диску. Тому знову можна зробити очевидний (але помилковий) зв’язок між "більш вільним простором" та "швидшим комп'ютером".

Подумайте: Якщо у вас машина працює повільно через велику кількість встановленого програмного забезпечення тощо, і ви точно клонуєте свій жорсткий диск на більший жорсткий диск, тоді розширюйте свої розділи, щоб отримати більше вільного місця, машина не буде магічною швидкістю вгору Ті ж завантаження програмного забезпечення, ті ж файли все ще фрагментовані однаковими способами, той самий індексатор пошуку все ще працює, нічого не змінюється, незважаючи на те, що більше вільного місця.

Чи пов’язано це з пошуком місця в пам'яті, де зберігати речі?

Ні, це не є. Тут варто відзначити дві дуже важливі речі:

  1. Ваш жорсткий диск не шукає навколо, щоб знайти місця для розміщення речей. Ваш жорсткий диск дурний. Нічого. Це великий блок адресного сховища, який сліпо ставить речі там, де ваша ОС каже, і читає все, що про це просять. Сучасні накопичувачі мають складні механізми кешування та буферизації, розроблені навколо прогнозування того, що ОС запитає на основі досвіду, який ми набули з часом (деякі диски навіть знають про файлову систему, яка на них є), але по суті, подумайте про ваш привід як просто великий тупий сховище з випадковими бонусними характеристиками.

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

    • NTFS має головну таблицю файлів , яка містить спеціальні файли $Bitmapтощо, та багато метаданих, що описують накопичувач. По суті, він відслідковує, де знаходяться наступні безкоштовні блоки, так що нові файли можна записувати безпосередньо у вільні блоки без необхідності кожного разу сканувати диск.

    • Інший приклад, ext4 має те, що називається "розподільником растрових карт" , покращенням над ext2 та ext3, що в основному допомагає йому безпосередньо визначити, де знаходяться вільні блоки замість сканування списку вільних блоків. Ext4 також підтримує "затримку розподілу", тобто буферизацію даних в оперативній пам'яті ОС перед тим, як виписати їх на накопичувач, щоб прийняти кращі рішення про те, куди їх розмістити, щоб зменшити фрагментацію.

    • Багато інших прикладів.

або з переміщенням речей, щоб створити досить довгий безперервний простір, щоб щось заощадити?

Ні. Цього не відбувається, принаймні, не з жодною файловою системою, про яку я знаю. Файли просто закінчуються фрагментарно.

Процес "переміщення речей, щоб створити достатньо довгий простір для збереження чогось", називається дефрагментацією . Це не відбувається, коли файли записуються. Це відбувається під час запуску дефрагментатора вашого диска. Принаймні, у нових Windows це відбувається автоматично за графіком, але це ніколи не викликається записом файлу.

Можливість уникнути переміщення подібних речей є ключовим фактором для роботи файлової системи, і тому відбувається фрагментація і чому дефрагментація існує як окремий крок.

Скільки порожнього місця на жорсткому диску потрібно залишити вільним?

Це складніше питання, на яке потрібно відповісти, і ця відповідь вже перетворилася на невелику книжку.

Емпіричні правила:

  • Для всіх типів приводів:

    • Найголовніше - залишити достатньо вільного місця для ефективного використання комп'ютера . Якщо у вас не вистачає місця для роботи, вам потрібен більший привід.
    • У багатьох інструментах дефрагментації дисків потрібна мінімальна кількість вільного місця (я думаю, що для Windows потрібен 15% найгіршого випадку). Вони використовують цей вільний простір для тимчасового зберігання фрагментованих файлів, оскільки інші речі переставляються.
    • Залиште місце для інших функцій ОС. Наприклад, якщо на вашій машині немає багато фізичної оперативної пам’яті, і у вас включена віртуальна пам’ять із файлом сторінки з динамічним розміром, вам потрібно буде залишити достатньо місця для максимального розміру файлу сторінки. Або якщо у вас є ноутбук, який ви переведете в режим сплячки, вам знадобиться достатньо вільного місця для файлу стану сплячки. Такі речі.
  • Специфічний для SSD:

    • Для оптимальної надійності (і в меншій мірі, продуктивності) SSD-дискам потрібен вільний простір, який, не вдаючись до занадто багато деталей, вони використовують для поширення даних навколо накопичувача, щоб уникнути постійного запису в одне і те ж місце (яке їх зношує). Ця концепція залишення вільного простору називається надмірним забезпеченням . Це важливо, але на багатьох SSD-дисках вже існує обов'язковий зарезервований простір . Тобто накопичувачі часто мають на кілька десятків більше ГБ, ніж вони звітують в ОС. Пристрої нижнього класу часто вимагають від вас залишити нерозподілений простір вручну , але для накопичувачів із обов'язковим режимом роботи OP не потрібно залишати вільного місця . Тут важливо зазначити, що ценадмірно забезпечений простір часто береться лише з нерозподіленого простору . Тож якщо ваш розділ займає весь диск, і ви залишаєте на ньому трохи вільного місця, це не завжди враховується. Багато разів ручне надмірне забезпечення вимагає, щоб ви зменшили розмір розділу, ніж розмір диска. Перегляньте посібник користувача SSD для отримання детальної інформації. TRIM та вивезення сміття також мають наслідки, але вони не входять до сфери цієї відповіді.

Особисто я зазвичай захоплюю великий привід, коли в мене залишається близько 20-25% вільного місця. Це не пов’язано з продуктивністю, це просто те, що, коли я дістанусь до цього моменту, я очікую, що мені, швидше за все, не вистачить місця для даних, і настав час отримати більше зусиль.

Більш важливо, ніж дивитися вільний простір, - це те, щоб планова дефрагментація була включена, де це доречно (не на SSD-дисках), щоб ви ніколи не потрапляли до тієї точки, коли вона стає досить страшною, щоб впливати на вас. Не менш важливо уникати помилкових налаштувань і дозволити вашій операційній системі робити все, наприклад , не відключати попередньо завантажувач Windows ( крім SSD ) тощо.


Є одне останнє, що варто згадати. В одній з інших відповідей тут згадувалося, що напівдуплексний режим SATA заважає одночасно читати та писати. Незважаючи на те, що це правда, це значно спрощено і здебільшого не пов'язане з проблемами ефективності, про які йдеться тут. Що це означає, просто, що дані не можуть передаватися в обох напрямках по проводам одночасно. Однак у SATA є досить складна специфікація, що включає невеликі максимальні розміри блоків (я думаю, приблизно 8 кБ на блок на дроті), черги та записи черг операцій тощо, і не перешкоджає запису в буфери, що відбуваються під час читання, перемежовується операції тощо.

Будь-яке блокування, яке відбудеться, було б пов’язане з змаганням за фізичні ресурси, зазвичай пом'якшені великою кількістю кешу. Дуплексний режим SATA тут майже повністю не має значення.


«Уповільнення» - широкий термін. Тут я використовую це для позначення речей, які пов'язані з входом / виводом (наприклад, якщо ваш комп'ютер сидить там, коли суттєві цифри, вміст жорсткого диска не впливає), або пов'язаний з процесором і конкурує з дотично пов'язаними речами, які мають високе використання процесора (наприклад, сканування антивірусного програмного забезпечення тонн файлів).

†† SSD - накопичувачі будуть схильні до фрагментації , в тому послідовного доступу до швидкості , як правило , швидше , ніж випадковий доступ, незважаючи на твердотільні накопичувачі не стикалися з тими ж обмеженнями , як механічний пристрій (навіть тоді, відсутність фрагментації не гарантує послідовного доступу, з - за зносу вирівнювання і т.д. , як в коментарях зазначає Джеймс Снелл). Однак практично у всіх сценаріях загального використання це не проблема. Різниці в продуктивності, зумовлені фрагментацією на SSD, зазвичай незначні для таких речей, як завантаження програм, завантаження комп'ютера тощо.

† 600 Kb Припускаючи здорову файлову систему, яка не фрагментує файли за призначенням.


Дуже вичерпна відповідь, дякую. Також дякую за нагадування, щоб схопити трохи кави, це було дуже вдячно.
Хашим

22

Окрім пояснення Nathanial Meek щодо жорстких дисків, для SSD існує інший сценарій.

SSD не чутливі до розсіяних даних, оскільки час доступу до будь-якого місця на SSD однаковий. Типовий час доступу до SSD становить 0,1 мс проти типового часу доступу на жорсткому диску 10–15 мс. Однак він чутливий до даних, які вже записані на SSD

На відміну від традиційних жорстких дисків, які можуть перезаписати наявні дані, для запису даних SSD потрібен повністю порожній простір. Це робиться функціями під назвою Trim and Garbage Collection, які очищають дані, позначені як видалені. Збір сміття найкраще працює в поєднанні з певною кількістю вільного місця на SSD. Зазвичай рекомендується від 15 до 25% вільного місця.

Якщо збирання сміття не може завершити свою роботу вчасно, то кожній операції запису передує очищення простору, куди слід записати дані. Це подвоює час для кожної операції запису та погіршує загальну продуктивність.

Ось відмінна стаття, яка пояснює функціонування комплектуючих «Трим та сміття»


Зауважте, що SSD-файли МОЖУТЬ записувати в частково заповнені комірки, читаючи часткові дані та записуючи їх із більш написаним, але це робить це, коли це неминуче. Це, звичайно, також досить повільно, і зазвичай вказує на те, що привід настільки сильно фрагментований, що знадобиться досить багато, щоб він коли-небудь швидко писав знову.
пухнастий

Це також буде залежати від контролера. А оскільки існує так багато варіацій, я не хотів заглиблюватися в цей рівень деталізації.
whs

15-25%, про які ви говорите, називається "надмірне забезпечення". Деякі накопичувачі мають для цього вже виділений обов'язковий простір (наприклад, 1TB EVO 840 має 9% зарезервованості та не повідомляється в ОС як про вільний), для тих, кому не потрібно залишати вільного місця. Я вважаю, що в деяких випадках надмірно закріплений простір теж повинен бути нерозподіленим, а просто залишити вільний простір у вашій файловій системі не скоротить його, вам потрібно буде фактично залишити нерозподілений простір.
Джейсон C

Перевищення резервів - це щось інше. Це нанді в режимі очікування, щоб замінити несправні палички. 15-25% потрібно для звільнення блоків (сторінок) та вирівнювання зносу. Ви можете прочитати тут для подробиць ==> thessdreview.com/daily-news/latest-buzz / ...
WHS

@whs Це не так, і стаття, на яку ви посилаєтесь, не означає, що це так. Занадто забезпечений простір (див. Також цитовані джерела в цьому розділі або Google) - це пул безкоштовних блоків, блоки в цьому пулі використовуються для збору сміття / швидкого запису, вирівнювання зносу та заміни несправних комірок. Що стосується заміни несправних комірок, то все це в одному пулі; як тільки він заповнений бракованими клітинками, ви починаєте бачити послідовні помилки. Дивіться також слайд 12 у цій презентації з LSI ; всю справу варто пройти, вона безпосередньо стосується теми.
Джейсон C

12

Десь усередині традиційного жорсткого диска знаходиться спінінг металевий блюдо, де фактично закодовані окремі біти та байти. Коли дані додаються на блюдо, дисковий контролер спочатку зберігає їх на зовнішній стороні диска. По мірі додавання нових даних використовується простір, який рухається остаточно до внутрішньої сторони диска.

Зважаючи на це, є два ефекти, які призводять до зниження продуктивності диска в міру заповнення диска: Шукайте Час і Швидкість обертання .

Шукайте Times

Для доступу до даних традиційний жорсткий диск повинен фізично перемістити голову для читання / запису у правильне положення. Для цього потрібен час, який називається "шукати час". Виробники публікують час пошуку своїх дисків, і це, як правило, всього кілька мілісекунд. Це може здатися не дуже схожим, але для комп'ютера це вічність. Якщо вам потрібно прочитати чи записати на багато різних дискових місць, щоб виконати завдання (що є загальним), ті, хто шукає часу, можуть скласти значну затримку або затримку.

Практично порожній накопичувач містить більшість своїх даних у тому ж положенні або поблизу нього, як правило, на зовнішньому краї біля положення відпочинку головки читання / запису. Це зменшує необхідність пошуку диска, значно скорочуючи витрачений час на пошук. На майже повному накопичувачі не тільки потрібно буде частіше шукати диск через більші / довші рухи, але й можуть виникнути проблеми із збереженням пов’язаних даних у тому ж секторі, що ще більше збільшує прагнення диска. Це називається фрагментованими даними.

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

Обертальна швидкість

Жорсткі диски обертаються з фіксованою швидкістю (як правило, 5400 об / хв або 7200 об / хв для вашого комп’ютера, і 10000 об / хв або навіть 15000 об / хв на сервері). Для зберігання єдиного біта також потрібна фіксована кількість місця на диску (більше або менше). Для обертання диска з фіксованою швидкістю обертання зовнішня частина диска матиме більш швидку лінійну швидкість, ніж внутрішня частина диска. Це означає, що біти біля зовнішнього краю диска переміщаються повз прочитану головку швидше, ніж біти біля центру диска, і, таким чином, голова для читання / запису може читати або записувати біти швидше біля зовнішнього краю диска, ніж внутрішній.

Майже порожній накопичувач витратить більшу частину часу на доступ до бітів біля швидшого зовнішнього краю диска. Майже повний накопичувач витратить більше часу на доступ до бітів біля повільної внутрішньої частини диска.

Знову-таки, випорожнення дискового простору може зробити комп'ютер швидшим, дозволяючи службі defrag переміщати дані до зовнішньої сторони диска, де швидше читаються і записуються.

Іноді диск насправді рухатиметься занадто швидко для голови, що читається, і цей ефект зменшується, тому що сектори біля зовнішнього краю будуть розміщені в шахматному порядку ... виписані не в порядку, щоб зчитувана голівка могла не відставати. Але в цілому це справедливо.

Обидва ці ефекти спускаються спочатку до дискового контролера, який групує дані у більш швидкій частині диска, і не використовує повільніші частини диска, поки не доведеться. По мірі заповнення диска все більше і більше часу проводиться в повільній частині диска.

Ефекти застосовуються і до нових накопичувачів. За умови рівності, новий накопичувач на 1 ТБ швидше, ніж новий накопичувач на 200 ГБ, тому що 1 ТБ зберігає біти ближче один до одного і не заповнюється до внутрішніх доріжок так швидко. Однак спроба використовувати це для інформування рішень про купівлю дуже рідко корисна, оскільки виробники можуть використовувати кілька тарілок для досягнення розміру 1 ТБ, менші тарілки для обмеження системи 1 ТБ до 200 ГБ, обмеження програмного / дискового контролера для обмеження плати 1 ТБ лише 200 ГБ місця, або продати накопичувач з частково закінченими / несправними пластинами з 1 ТБ накопичувача з великою кількістю поганих секторів, як накопичувач на 200 ГБ.

Інші фактори

Тут варто зауважити, що вищезазначені ефекти досить малі. Інженери комп’ютерної техніки витрачають багато часу, працюючи над тим, як мінімізувати ці проблеми, і такі речі, як буфери жорсткого диска, кешування Superfetch та інші системи, працюють над тим, щоб мінімізувати проблему. У здоровій системі з великою кількістю вільного простору ви, мабуть, навіть не помітите. Крім того, SSD мають абсолютно різні експлуатаційні характеристики. Однак ефекти існують, і комп'ютер законно стає повільніше, коли накопичувач накопичується. У нездоровій системі, де дискового простору дуже мало, ці ефекти можуть створити ситуацію з обробкою диска, коли диск постійно шукає туди і назад по фрагментованих даних, а звільнення дискового простору може виправити це, що призведе до більш драматичних і помітних поліпшень. .

Крім того, додавання даних на диск означає, що деякі інші операції, такі як індексація або AV-сканування та дефрагментація, просто роблять більше роботи у фоновому режимі, навіть якщо це робиться з такою швидкістю, як і раніше.

Нарешті, продуктивність диска - це величезний показник загальної продуктивності ПК в наші дні ... ще більший показник, ніж швидкість процесора. Навіть невелике падіння пропускної здатності диска дуже часто прирівнюється до реального сприйнятого загального падіння продуктивності ПК. Це особливо вірно, оскільки продуктивність жорсткого диска насправді не йшла в ногу з покращенням процесора та пам'яті; диск 7200 RPM є стандартом настільних комп'ютерів вже більше десяти років. Як ніколи, традиційний спінінг - це вузьке місце у вашому комп’ютері.


1
Шукати збільшення часу не є результатом низького вільного простору, це результатом організації даних. Звільнення місця на диску не зменшить час пошуку, якщо ваші дані вже перебувають на всьому диску. Так само, не вистачаючи місця на диску, раптом не збільшиться час пошуку непов'язаних даних, які вже були добре організовані. Що ще важливіше, будьте дуже обережні, пов’язуючи будь-яке з них із "повільним комп'ютером". Наприклад, ви не збираєтеся швидше переглядати Інтернет лише тому, що виконуваний файл вашого браузера нефрагментований і на зовнішній стороні механічного диска, а ваші MP3-файли все одно будуть грати плавно, навіть у гіршому випадку.
Джейсон C

2
@JasonC Кожен з цих моментів відповідає справжньому ізольовано, але розглядається як частина всієї системи може призвести до реальних уповільнень. Приклад може служити цим твердженням: « Freeing disk space won't decrease seek times if your data is already all over the drive.» Я не можу сперечатися , що сам по собі, але я можу вказати, служба дефрагментації тепер може перемістити ці дані в стороні передньої частини приводу, і тепер ці речі будуть покращувати час пошуку. Інші моменти у вашому коментарі мають аналогічні лічильники: не вистачає місця на диску не збільшуватиме пошуки добре організованих даних, але це робить менш ймовірним, що дані залишаються впорядкованими.
Джоел Куехорн

1
@JasonC Тим не менш, я додав пару рядків до своєї відповіді, грунтуючись на вашому коментарі, для більш прямого вирішення заголовного питання.
Джоел Куехорн

Звичайно; але мої основні моменти: 1) те, що уповільнення є наслідком чогось іншого , хоча низький вільний простір може бути одним із багатьох факторів, і 2) ви повинні бути дуже обережними з цією темою, це один із тих, кого люди зав'язують дуже швидко. Якщо випадковий користувач помічає, що їхній комп'ютер повільний, насправді це дуже незвично, скажімо, фрагментація (наприклад) є фактичною причиною. Але потім вони читають купу речей в Інтернеті, встановлюють ccleaner, 50 дефрагментаторів дисків, роблять купу поганих налаштувань реєстру тощо. Потрібно тут задовольнити масу; мудрішим не потрібні наші відповіді.
Джейсон C

Ця відповідь натякає на коротке погладжування (штучне обмеження розміру HD для збереження даних про швидші, зовнішні регіони) та деякі потенційні проблеми з цим. Мені це також подобається, оскільки він не заперечує, що в більшості випадків для більшості користувачів привід стає більш фрагментарним, оскільки він стає більш повним. Хоча варто зауважити, що вільний простір не є актуальною проблемою, безглуздо безглуздо ігнорувати загальну роботу користувачів, коли маєш справу із загальним питанням щодо користувацького досвіду.
Smithers

6

Усі інші відповіді технічно правильні - проте я завжди вважав, що цей простий приклад пояснює це найкраще.

Сортувати речі дуже просто, якщо у вас багато місця ... але важко, якщо у вас немає місця ... комп'ютери також потребують місця !

Ця класична " 15 головоломка " є складною / забирає багато часу, оскільки у вас є лише 1 вільний квадрат, щоб перетасувати плитки навколо, щоб отримати їх у правильному порядку 1-15.

важкий 15 головоломки

Однак якщо місця було набагато більше, ви зможете вирішити цю головоломку за 10 хвилин.

легкий 15 головоломки

Для всіх, хто коли-небудь грав із цією головоломкою ... розуміння аналогії, здається, природно. ;-)


2
Однак це не аналогічно жодній поведінці файлової системи. Це кілька нагадує загальний процес дефрагментації, я думаю, хоча дефрагментація, щодо цієї логічної аналогії, дозволяє видалити номери з дошки і повторно розмістити їх в будь-якому місці ви хочете , як ви її вирішуєте.
Джейсон C

2
На додаток до коментаря Джейсона вище, я хочу зазначити очевидне: ця відповідь стосується сортування (дефрагментації), але не пояснює, чому доступ до конкретної випадкової плитки (скажімо, плитки "3") був би швидшим у другій випадок, ніж у першому випадку.
CVn

Тому що ви не маєте доступу лише до "3". Ви отримуєте доступ до "1-15". Хоча я визнаю, що це не є кришталево зрозумілим у прикладі, я сприйняв це як зрозуміле. Можливо, варто конкретно зазначити щось на кшталт "ця головоломка аналогічна одному фрагментованому файлу". Чудова відповідь, робить речі досить розумово доступними!
Smithers

1
Для уточнення: Основна проблема з аналогією тут полягає в тому, що в реальній головоломці ви можете переміщати лише плитки до сусідніх порожніх просторів. Тобто, у крихітному прикладі лише 6 чи 13 можна було перемістити у порожній простір. Ось що робить головоломку складним; це сенс гри в плитку. При дефрагментації жорсткого диска ви можете перемістити, наприклад, 4 в порожній простір, 1 - це правильне місце розташування і так далі, досить легко вирішити, рівно стільки, скільки рухається, як у випадку з великою кількістю місця . Тож аналогія справді руйнується, оскільки суть головоломки не застосовується: жодна файлова система не працює таким чином.
Джейсон C

"Тому що ви не маєте доступу до" 3 ". Ви отримуєте доступ до "1-15" '- це нісенітниця. Відповідь не пояснює, чому доступ у певній випадковій плитці був би швидшим у другому випадку, ніж у першому, тому що відповідь абсолютно невірний. Дефрагментація не тільки обмежена способом головоломки, але і "хитра / трудомістка" дефрагментація не має ніякого відношення до продуктивності системи.
Джим Балтер

5

Комп’ютер, на якому було дуже мало дискового простору, на обертовому механічному жорсткому диску протягом значної кількості часу, як правило, стає повільнішим у міру зростання фрагментації файлів. Збільшення фрагментації означає повільне зчитування - дуже повільне в крайніх випадках.

Коли комп'ютер перебуває в такому стані, звільнення дискового простору фактично не виправить проблему. Вам також знадобиться дефрагментацію диска. Перед тим, як комп’ютер знаходиться в такому стані, звільнення місця не пришвидшить його; це просто знизить шанси роздроблення стати проблемою.

Це стосується лише комп'ютерів із спінінг-механічними жорсткими дисками, оскільки фрагментація має незначний вплив на швидкість читання SSD-дисків.


Гарна, чиста, проста відповідь, яка також стосується основної основної проблеми.
Smithers

4

Флеш-диски, безумовно, можуть бути повільнішими, коли вони повні або фрагментовані, хоча механізми уповільнення на відміну від будь-яких, які мали б місце на фізичному жорсткому диску. Типовий чіп флеш-пам’яті буде розділений на деяку кількість блоків стирання, кожен з яких складається з великої кількості (сотні, якщо не тисяч) сторінок запису і підтримуватиме три основні операції:

  1. Прочитайте флеш-сторінку.
  2. Запишіть на попередньо порожню флеш-сторінку.
  3. Стерти всі флеш-сторінки на блоці.

Хоча теоретично було б можливо кожне записування на флешку прочитати всі сторінки з блоку, змінити одну в буфері, видалити блок, а потім записати буфер назад на флеш-пристрій, такий підхід був би надзвичайно повільний; Це також може призвести до втрати даних, якщо втрачається живлення між часом запуску стирання та завершенням запису. Крім того, часто записувані частини диска зношуються надзвичайно швидко. Якби, наприклад, перші 128 секторів FAT зберігалися в одному флеш-блоці, наприклад, накопичувач буде мертвим після того, як загальна кількість записів у всі ці сектори сягнула близько 100 000, що не дуже багато, особливо якщо врахувати, що 128 секторів міститиме близько 16 384 записів FAT.

Оскільки вищезгаданий підхід працював би жахливо, привід призведе до того, що він визначить якусь порожню сторінку, запише туди дані і якось запише факт, що логічний сектор, про який йде мова, зберігається в цьому місці. Поки наявних достатньо порожніх сторінок, ця операція може пройти швидко. Якщо порожніх сторінок не вистачає, проте, накопичувач може знадобитися знайти блоки, що містять відносно мало "активних" сторінок, перемістити будь-які сторінки в реальному житті в цих блоках до деяких залишків порожніх і позначити старі копії як " мертвий »; зробивши це, привід зможе стерти блоки, які містять лише "мертві" сторінки.

Якщо накопичувач лише наполовину заповнений, то, безумовно, буде щонайменше один блок, який є щонайбільше наполовину живих сторінок (і цілком ймовірно буде кілька блоків, які містять мало або відсутні). Якщо кожен блок містить 256 сторінок, а найменш повний - вміст 64 активних сторінок (помірно поганий випадок), то для кожного запитуваного 192 сектору запису накопичувач повинен буде виконати 64 додаткові копії сектору та стерти один блок (так що середня вартість кожного запису сектора буде приблизно 1,34 сторінки записів і 0,005 блокових стирань). Навіть у гіршому випадку для кожного запису в 128 секторах знадобиться 128 додаткових копій сектору та стирання блоку (середня вартість запису на 2 сторінки записів та 0,01 блокових стирань)

Якщо накопичувач на 99% заповнений, а блоки з найменшим повним вмістом мають 248/256 активних сторінок, то для кожного запису в 8 секторах потрібно 248 додаткових записів сторінок та стерття блоку, таким чином, отримуючи вартість за запис 32 запису сторінки та 0,125 блоку стирання - дуже сильне уповільнення.

Залежно від того, скільки "зайвого" місця для зберігання накопичувача, він може не допустити, щоб речі стали такими поганими. Тим не менш, навіть у точці, коли накопичувач на 75% повний, найгірша продуктивність може бути більш ніж удвічі меншою, ніж у найгіршому випадку, коли вона на 50% повна.


3

Ви досить сильно це прибили. Ви можете думати про жорсткий диск SATA як напівдуплексний комунікаційний носій (тобто він може приймати або передавати дані одночасно. Не обидва.), Тому коли накопичувач тривалий час утримується, шукаючи вільне місце для запису до цього, він не може прочитати вам будь-які дані. Як правило, з цієї причини не слід завантажувати накопичувачі до 80%. Чим він повніший, тим вище, тим більше шансів на фрагментацію файлів, що спричиняє зв'язок диска під час запитів на читання (таким чином блокуючи запити запису).

Для вирішення цих питань ви можете зробити кілька речей:

  • Зменшіть кількість збережених даних та регулярно дефрагментуйте свій диск.
  • Переключиться на флеш-пам’ять.
  • Масові дані зберігаються на окремому диску з вашої ОС.
  • І так далі ...

1
При використанні флеш-накопичувача пристрій може читати або записувати (Знову ж, не обидва) майже миттєво (9 мс - це досить стандартний час пошуку на жорсткому диску, де, як правило, SSD мають "час пошуку" у царині pico та наносекунд) на будь-який розташування на диску. en.wikipedia.org/wiki/…
Nathanial Meek

7
Продовження позиціонування 2: Це те, для чого, наприклад, $Bitmapфайл призначений для NTFS або алокатор бітової карти в ext4. Тобто ця відповідь поширює серйозну дезінформацію. 3. Існує велика кількість буферизації читання та запису, що зберігається в значній мірі. Ця відповідь дещо описує наслідки фрагментації, і навіть тоді обмежуючись старими файловими системами, це, звичайно, не є точним вільним простором Wrt. Звільнення місця на диску не прискорює роботу комп'ютера.
Джейсон C

4
@JasonC, ви повинні перетворити свої коментарі у відповідь.
Целос

6
Цього не відбувається : "тому, коли накопичувач тривалий час затримується, шукаючи вільне місце для запису, він не може прочитати вам жодних даних" - це просто не відбувається. Це не так, як працюють файлові системи. Будь ласка, відредагуйте свою відповідь, щоб перестати поширювати дезінформацію.
RomanSt

2
@NathanialMeek Ви трохи змішуєте шари. :) Напівдуплексний режим SATA означає, що він може передавати дані по дроту лише в одному напрямку. Читання і запис більш високого рівня виконуються невеликими блоками (називаються FIS), у черзі операцій, визначених SATA. Вони можуть бути асинхронними, а швидке зчитування та запис можна робити в кеш-пам'ять і з борту та направляти до системної пам'яті через DMA. Контролери SATA також вільні змінювати послідовність команд для оптимізації ефективності. Суть є: Лінія не зайнята, поки закінчуються фізичні операції, а напівдуплексний режим SATA не надає ефекту, на який ви думаєте, що це робить.
Джейсон C

3

Після короткого і солодкого підходу моя надто спрощена відповідь (суворо обмежена вашою основною плутаниною):

Поки ваш

  1. ОС має достатньо (для найгірших сценаріїв) місця для виконання своїх завдань, таких як пейджинг / заміна / тощо.
  2. Інші програми також мають достатньо місця для відповідних потреб.
  3. Жорсткий диск дефрагментований.

Тоді ви не можете визначити різницю у виконанні 80% порожнього диска проти 30% порожнього диска, і вам не варто турбуватися ні про що інше, як про збереження все нових і нових даних.

Все, що потребуватиме більше сховища, призведе до низької продуктивності, оскільки зараз може виникнути дефіцит доступного місця.

Звичайно, чистка диска через інструмент хороша як:

  1. Тимчасові файли слід регулярно чистити, щоб отримати цінний простір на диску.
  2. Старі файли журналу - це не що інше, як витрата місця.
  3. Залишки встановленого / видаленого програмного забезпечення дуже неприємні.
  4. Файли cookie повинні бути очищені, якщо ви цінуєте свою конфіденційність в Інтернеті.
  5. Недійсні ярлики тощо.

Усі ці (та багато інших) причин призводять до погіршення продуктивності, оскільки всі вони продовжують плутати ОС при пошуку потрібного набору бітів для роботи.


Гідне резюме, але не таке впевнене щодо розділу "АЛЕ". Зокрема: 3) Взагалі не має помітного впливу на продуктивність, незважаючи на поширені вигадки 4) Файли cookie не є суттєвими проблемами, і незалежно від думки, конфіденційність не пов'язана з продуктивністю або простором на жорсткому диску; 5) Несправні ярлики некрасиві, але загалом інакше інше. Ніщо з цього насправді не «бентежить» жодну загальну ОС. Будьте дуже обережні щодо "підказок" та "настроїв", яких ви дотримуєтесь. Будьте обережні і до зайвих інструментів очищення, зокрема, засоби для чищення реєстрів часто ризикують заподіяти шкоду за нульову вигоду.
Джейсон C

2

Один ефект на спінінг-накопичувачі, про який я не бачив: Швидкість доступу та швидкість передачі даних відрізняються на різних частинах диска.

Диск обертається з фіксованою швидкістю. Доріжки на зовнішній стороні диска довші, тому вони можуть містити більше даних на доріжку, ніж доріжки всередині. Якщо ваш накопичувач може прочитати 100 Мб / сек із самих зовнішніх доріжок, швидкість на самих внутрішніх доріжках буде менше 50 Мб / сек.

У той же час, на зовнішніх доріжках диска є менше доріжок між 1 Гб даних, ніж між 1 ГБ даних на самих внутрішніх доріжках. Так що в середньому для даних, що зберігаються зовні, знадобиться менше руху голови, ніж для даних по самих внутрішніх доріжках.

ОС намагатиметься, якщо це можливо, використовувати найвіддаленіші доріжки. Звичайно, якщо диск наповнений, це неможливо. Видалення даних зробить простір там, де швидкість передачі вище, та зробить швидше роботу. З цієї ж причини вам слід придбати спінінгові жорсткі диски, які перевищують необхідну, якщо ви хочете швидкості (доки вона доступна), оскільки ви в кінцевому підсумку використовуєте лише найшвидші частини диска.


Додавання: en.wikipedia.org/wiki/Zone_bit_recording , яка описує це з деякою деталізацією. Варто зазначити: існуючі дані не переміщуватимуться. Це може вплинути на зберігання нових даних (залежно від місця розташування на диску, а не безпосередньо у вільному просторі), але це не "сповільнить" існуючі файли, до яких із задоволенням можна було отримати доступ до запису зсередини. Fwiw найдешевший 3,5-дюймовий накопичувач 7200RPM 3,5-дюймового диска, який я знайшов на Amazon, має середню швидкість зчитування, орієнтовану на користувача, 144 Мб / с; навіть враховуючи відмінності на внутрішній і зовнішній доріжці, це може бути не вузьким місцем під час випадкового використання.
Джейсон С

Продуктивність вводу / виводу @JasonC в частині послідовної пропускної здатності практично ніколи не викликає занепокоєння на практиці; навіть повільний привід на 4900 об / хв буде досить швидким для практично будь-якого користувача. Продуктивність вводу-виводу з точки зору операцій читання / запису в секунду стане більшою мірою вбивством; запитайте свого місцевого улюбленого sysadmin про IOPS з обертовим зберіганням у багатокористувацьких системах деякий час, якщо ви так схильні. Це велика причина, чому сьогодні практично ніхто не розгортає обертове сховище для багатокористувацьких систем; ви просто ніколи навіть не можете підходити до IOPS SSD.
CVn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.