Тут я написав книгу випадково. Спочатку попити кави.
Чому спорожнення дискового простору пришвидшує комп'ютери?
Це не так, принаймні, не самостійно. Це дійсно поширений міф. Причина, по якій це загальний міф, полягає в тому, що заповнення вашого жорсткого диска часто відбувається одночасно з іншими речами, які традиційно можуть сповільнити † ваш комп'ютер. Продуктивність SSD має тенденцію до погіршення в міру заповнення накопичувача , але це відносно нова проблема, унікальна для SSD, і не дуже помітна для випадкових користувачів. Як правило, мало вільного місця на диску - просто червона оселедець .
Наприклад, такі речі:
Фрагментація файлів. Фрагментація файлів - це проблема †kl , але нестача вільного простору, хоча, безумовно, один із багатьох факторів, що сприяють, не є єдиною причиною цього. Деякі ключові моменти тут:
Шанси фрагментації файлу не пов'язані з кількістю вільного місця, що залишилося на диску. Вони пов'язані з розміром найбільшого суміжного блоку вільного простору на накопичувачі (наприклад, "отвори" вільного простору), на який кількість вільного простору ставиться верхньою межею . Вони також пов'язані з тим, як файлова система обробляє розподіл файлів (докладніше нижче). Поміркуйте: накопичувач, заповнений на 95% із усім вільним простором в одному суміжному блоці, має 0% шансів фрагментації нового файлу †clock (і шанс фрагментації доданого файлу не залежить від вільного простору). Накопичений накопичувач на 5%, але при рівномірному розподілі даних по диску, дуже шанси фрагментації.
Майте на увазі, що фрагментація файлів впливає на продуктивність лише тоді, коли доступ до фрагментованих файлів . Подумайте: у вас хороший дефрагментований привід, у якому все ще багато вільних «дірок». Загальний сценарій. Все працює без проблем. Зрештою, все ж, ви потрапите до точки, коли більше великих блоків вільного простору не залишилося. Ви завантажуєте величезний фільм, і кінець файлу сильно фрагментований. Це не сповільнить ваш комп’ютер. Усі ваші файли додатків і такі, які раніше були чудовими, раптом не будуть фрагментовані. Це може зробити фільмзавантажувати потрібно більше часу (хоча типова швидкість передачі фільму настільки низька порівняно зі швидкістю читання на жорсткому диску, що, швидше за все, це буде непомітно), і це може вплинути на продуктивність, пов’язану з входом / виводом під час завантаження фільму , але крім цього, нічого не змінюється.
Хоча фрагментація файлів, безумовно, є проблемою, часто наслідки пом'якшуються буферизацією та кешуванням рівня ОС та апаратного забезпечення. Затримка запису, заздалегідь прочитане, такі стратегії, як префетер у Windows тощо, - всі допомагають зменшити ефекти фрагментації. Ви , як правило , НЕ на насправді відчувають значний вплив до тих пір , поки фрагментація стає серйозним (я б навіть ризикнув сказати , що до тих пір , як файл підкачки НЕ фрагментований, ви , ймовірно , не помітите).
Індексація пошуку - ще один приклад. Скажімо, у вас увімкнено автоматичну індексацію та ОС, яка не справляється з цим витончено. Оскільки ви зберігаєте на своєму комп’ютері все більше вмісту, що підлягає індексуванню (документи тощо), індексація може зайняти більше часу і може почати впливати на сприйняту швидкість роботи комп'ютера під час його роботи, як при введенні / виведенні, так і в процесорі . Це не пов’язано з вільним простором, воно пов’язане з кількістю вмісту, який можна індексувати. Однак втрата вільного місця йде рука об руку зі збереженням більше вмісту, отже, з’являється помилковий зв’язок.
Антивірусне програмне забезпечення. Аналогічно прикладу пошукової індексації. Скажімо, у вас встановлено антивірусне програмне забезпечення для фонового сканування вашого накопичувача. Оскільки у вас все більше вмісту, який можна сканувати, пошук забирає більше ресурсів вводу / виводу та процесора, можливо, заважаючи вашій роботі. Знову ж таки, це пов’язано з кількістю вмісту, який ви можете сканувати. Більше вмісту часто дорівнює менше вільного місця, але нестача вільного місця не є причиною.
Встановлене програмне забезпечення. Скажімо, у вас встановлено багато програмного забезпечення, яке завантажується, коли комп'ютер завантажується, тим самим сповільнюючи час запуску. Це уповільнення трапляється через те, що завантажується багато програмного забезпечення. Однак встановлене програмне забезпечення займає місце на жорсткому диску. Тому вільний простір на жорсткому диску зменшується в той же час, коли це відбувається, і знову помилкове з'єднання можна легко встановити.
- Багато інших прикладів по тих напрямках, які, якщо взяти разом, здається, тісно пов'язують брак вільного простору з низькою продуктивністю.
Вищезазначене ілюструє ще одну причину, що це такий поширений міф: хоча брак вільного простору не є прямою причиною сповільнення, видалення різних програм, видалення індексованого чи сканованого вмісту тощо, інколи (але не завжди; поза межами цього відповідь) знову збільшує продуктивність з причин, не пов'язаних із кількістю вільного місця. Але це також природно звільняє місце на жорсткому диску. Тому знову можна зробити очевидний (але помилковий) зв’язок між "більш вільним простором" та "швидшим комп'ютером".
Подумайте: Якщо у вас машина працює повільно через велику кількість встановленого програмного забезпечення тощо, і ви точно клонуєте свій жорсткий диск на більший жорсткий диск, тоді розширюйте свої розділи, щоб отримати більше вільного місця, машина не буде магічною швидкістю вгору Ті ж завантаження програмного забезпечення, ті ж файли все ще фрагментовані однаковими способами, той самий індексатор пошуку все ще працює, нічого не змінюється, незважаючи на те, що більше вільного місця.
Чи пов’язано це з пошуком місця в пам'яті, де зберігати речі?
Ні, це не є. Тут варто відзначити дві дуже важливі речі:
Ваш жорсткий диск не шукає навколо, щоб знайти місця для розміщення речей. Ваш жорсткий диск дурний. Нічого. Це великий блок адресного сховища, який сліпо ставить речі там, де ваша ОС каже, і читає все, що про це просять. Сучасні накопичувачі мають складні механізми кешування та буферизації, розроблені навколо прогнозування того, що ОС запитає на основі досвіду, який ми набули з часом (деякі диски навіть знають про файлову систему, яка на них є), але по суті, подумайте про ваш привід як просто великий тупий сховище з випадковими бонусними характеристиками.
Ваша операційна система також не шукає місць для розміщення речей. Немає "пошуку". Багато зусиль було спрямовано на вирішення цієї проблеми, оскільки це важливо для роботи системи. Те, як фактично організовуються дані на вашому диску, визначається вашою файловою системою. Наприклад, 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 Припускаючи здорову файлову систему, яка не фрагментує файли за призначенням.