Чому спорожнення дискового простору прискорює роботу комп'ютерів?
Дізнавшись більше про комп'ютери і як вони працюють, ви іноді стикаєтеся з тим, що не має сенсу. Маючи це на увазі, чи дійсно спорожнення дискового простору прискорює роботу комп'ютерів? Сьогоднішня посада із запитами та відповідями SuperUser має відповідь на запитання читача.
Сьогоднішня сесія запитань та відповідей приходить до нас люб'язно SuperUser - підрозділ Stack Exchange, групування веб-сайтів із запитаннями та відповідями на рівні спільноти..
Знімок вікні nchenga (Flickr).
Питання
Читач SuperUser Remi.b хоче знати, чому, здається, спорожнення дискового простору прискорює роботу комп'ютера:
Я дивлюся багато відео, і тепер я розумію, як комп'ютери працюють трохи краще. Я розумію, що таке оперативна пам'ять, про енергонезалежну і енергонезалежну пам'ять, і про процес обміну. Я також розумію, чому збільшення оперативної пам'яті прискорює роботу комп'ютера.
Що я не розумію, чому очищення дискового простору, здається, прискорює роботу комп'ютера. Це дійсно швидкість комп'ютера? Якщо так, то чому він це робить?
Чи є це щось пов'язане з пошуком простору пам'яті, щоб зберегти речі або з переміщенням речей, щоб зробити достатній довгий простір, щоб зберегти щось? Скільки порожнього простору слід залишити на жорсткому диску?
Чому спорожнення дискового простору, схоже, прискорює роботу комп'ютера?
Відповідь
Співробітник SuperUser Джейсон C має відповідь для нас:
"Чому спорожнення дискового простору прискорює роботу комп'ютерів?"
Це не відбувається, принаймні не самостійно. Це дійсно загальний міф. Причина, по якій це поширений міф, полягає в тому, що заповнення жорсткого диска часто відбувається одночасно з іншими речами, які традиційно можуть уповільнити роботу комп'ютера (A). Продуктивність SSD погіршується, оскільки вони заповнюються, але це відносно нова проблема, унікальна для SSD-дисків, і не дуже помітна для звичайних користувачів. Як правило, низький вільний дисковий простір - це лише червона оселедець.
Наприклад, такі речі:
1. Фрагментація файлу. Фрагментація файлів є проблемою (B), але відсутність вільного простору, однак, безумовно, одна з численних факторів, не є єдиною причиною цього. Деякі ключові моменти:
- Шанси фрагментованого файлу ні пов'язані з кількістю вільного місця, що залишився на диску. Вони пов'язані з величиною найбільшого суміжного блоку вільного простору на диску (тобто "отворів" вільного простору), обсяг вільного простору трапляється, що на верхній межі. Вони також пов'язані з тим, як файлова система обробляє розподіл файлів (докладніше нижче). Розгляньте: Диск, який на 95 відсотків наповнений всім вільним простором в одному безперервному блоці, має нульовий відсоток фрагментації нового файлу (C) (і шанс фрагментації доданого файлу не залежить від вільного простору). Привід, який на п'ять відсотків повний, але з рівномірно розподіленими даними на диску, має дуже високу ймовірність фрагментації.
- Майте на увазі, що фрагментація файлу впливає лише на продуктивність, коли здійснюється доступ до фрагментованих файлів. Розгляньте: У вас є хороший, дефрагментований диск, який все ще має безліч вільних "дірок" у ньому. Загальний сценарій. Все працює гладко. Зрештою, однак, ви потрапите в точку, де немає більше великих блоків вільного простору. Ви завантажуєте величезний фільм, файл закінчується серйозно фрагментованим. Це не сповільнить роботу комп'ютера. Всі ваші файли додатків і такі, які раніше були штрафу, не раптово стануть фрагментованими. Це може змусити завантажувати фільм довше (хоча типові швидкості бітів фільму настільки низькі в порівнянні з частотою читання жорсткого диска, що вони, швидше за все, будуть непомітні), і це може вплинути на продуктивність, пов'язану з I / O, коли фільм завантажується крім того, нічого не змінюється.
- Хоча фрагментація файлів, безумовно, є проблемою, часто часто ефекти зменшуються за рахунок буферизації та кешування рівня ОС та апаратного забезпечення. Затримка записів, подальше читання, стратегії, такі як prefetcher в Windows, і т.д., все це допомагає зменшити ефекти фрагментації. Ви взагалі цього не робите насправді відчути значний вплив, поки фрагментація не стане суворою (я б навіть зважився сказати, що поки ваш файл підкачки не є фрагментованим, ви, напевно, ніколи не помітите).
2. Іншим показником є індексація пошуку. Скажімо, у вас ввімкнено автоматичне індексування, а операційна система, яка не справляється з цим витончено. Зберігаючи все більше змістовного вмісту на вашому комп'ютері (документи та інше), індексація може зайняти більше часу і може почати впливати на сприйману швидкість вашого комп'ютера під час його використання, як у процесі використання, так і в процесі використання . Це не стосується вільного простору, воно пов'язане з кількістю змістовного вмісту. Тим не менш, вичерпання вільного простору йде пліч-о-пліч зі збереженням більшого вмісту, отже, притягується помилкове з'єднання.
3. Антивірусне програмне забезпечення (схоже на приклад індексації пошуку). Скажімо, у вас є антивірусне програмне забезпечення, призначене для фонового сканування вашого диска. Оскільки у вас є все більше і більше сканування вмісту, пошук займає більше ресурсів вводу-виводу і процесора, можливо, заважаючи роботі. Знову ж таки, це пов'язано з кількістю вмісту, який можна сканувати. Більше вмісту часто дорівнює менше вільного простору, але відсутність вільного простору не є причиною.
4. Встановлене програмне забезпечення. Скажімо, у вас є багато встановленого програмного забезпечення, яке завантажується під час завантаження комп'ютера, що уповільнює час запуску. Це уповільнення відбувається тому, що завантажується багато програмного забезпечення. Проте встановлене програмне забезпечення займає місце на жорсткому диску. Тому вільний простір жорсткого диска зменшується одночасно з тим, що це відбувається, і знову може бути зроблено помилкове з'єднання.
5. Багато інших прикладів уздовж цих рядків, які, якщо взяти разом, з'являться тісно пов'язати відсутність вільного простору з меншою продуктивністю.
Наведене вище пояснює ще одну причину того, що це такий загальний міф: Хоча відсутність вільного простору не є безпосередньою причиною уповільнення, видалення різних додатків, видалення індексованого або відсканованого вмісту тощо, іноді (але не завжди; ця відповідь) знову збільшує продуктивність з причин, не пов'язаних із кількістю вільного простору. Але це також природно звільняє місце на жорсткому диску. Таким чином, знову ж таки, може бути зроблено очевидне (але помилкове) з'єднання між «більшим вільним простором» і «швидшим комп'ютером».
Розгляньте: Якщо у вас повільно працює машина через велику кількість встановленого програмного забезпечення тощо, клонуйте жорсткий диск (точно) на більший жорсткий диск, а потім розгорніть розділи, щоб отримати більше вільного місця, а машина не прискорить магічно. Одне і те ж саме програмне забезпечення завантажується, однакові файли все ще фрагментуються однаковими способами, той же пошуковий індексатор все ще працює, нічого не змінюється, незважаючи на більшу кількість вільного місця.
"Чи є це щось пов'язане з пошуком простору пам'яті, щоб зберегти речі?"
Ні, це не є. Тут є дві дуже важливі речі:
1. Ваш жорсткий диск не шукає навколо, щоб знайти місця для розміщення. Ваш жорсткий диск нерозумний. Це нічого. Це великий блок адресного сховища, який сліпо поміщає речі, в яких ваша операційна система повідомляє, і читає все, що просять про це. Сучасні диски мають складні механізми кешування та буферизації, розроблені навколо передбачення того, що ОС буде просити на основі досвіду, який ми отримали з часом (деякі диски навіть знають про файлову систему, яка знаходиться на них), але по суті, думайте про свою диск, як просто великий тупий цегла зберігання з випадковими особливостями бонус продуктивності.
2. Ваша операційна система також не шукає місця для розміщення. Немає пошуку. На вирішення цієї проблеми було докладено чимало зусиль, оскільки це дуже важливо для продуктивності файлової системи. Спосіб фактично організовано на вашому диску визначається вашою файловою системою. Наприклад, FAT32 (старі комп'ютери DOS і Windows), NTFS (пізніші видання Windows), HFS + (Mac), ext4 (деякі системи Linux) і багато інших. Навіть поняття «файл» і «каталог» - це лише продукти типових файлових систем - жорсткі диски нічого не знають про таємничі звірі файлів. Деталі виходять за рамки цієї відповіді. Але, по суті, всі поширені файлові системи мають способи відстеження, де наявний простір знаходиться на диску, так що пошук вільного простору, за нормальних обставин (тобто файлових систем хорошого здоров'я), непотрібний. Приклади:
- NTFS має головну таблицю файлів, яка містить спеціальні файли $ Bitmap, і т.д., і багато метаданих, що описують диск. По суті, він відстежує, де розташовуються наступні безкоштовні блоки, щоб нові файли могли бути записані безпосередньо на вільні блоки без необхідності кожного разу сканувати диск.
- Інший приклад: Ext4 має те, що називається розподільником растрових зображень, поліпшення порівняно з ext2 і ext3, що в основному допомагає безпосередньо визначати, де вільні блоки замість сканування списку вільних блоків. Ext4 також підтримує відстроченого розподілу, тобто, буферизація даних в ОЗУ операційною системою перед записом її на диск, щоб краще приймати рішення про те, де її слід зменшити,.
- Багато інших прикладів.
"Або з переміщенням речей навколо, щоб зробити досить довгий безперервний простір, щоб зберегти щось?"
Це не відбувається, принаймні, не з будь-якою файловою системою, про яку я знаю. Файли просто розпалися.
Називається процес "переміщення речей, щоб скласти досить довготривалий простір для збереження чогось" дефрагментація. Це не відбувається, коли файли записуються. Це відбувається під час запуску дефрагментатора диска. Принаймні, у нових версіях Windows це відбувається автоматично за розкладом, але воно ніколи не спрацьовує, написавши файл.
Можливість уникнути Переміщення подій, як це, є ключем до продуктивності файлової системи, і тому відбувається фрагментація і чому дефрагментація існує як окремий крок.
"Скільки порожнього простору слід залишити на жорсткому диску?"
Це важче питання для відповіді (і ця відповідь вже перетворилася на невелику книгу).
Емпіричні правила:
1. Для всіх типів дисків:
- Найголовніше, залиште достатньо вільного місця ефективно використовувати комп'ютер. Якщо вам не вистачає місця для роботи, вам знадобиться більший привід.
- Багато інструментів дефрагментації дисків вимагають мінімального обсягу вільного простору (я думаю, що в Windows потрібно 15%, найгірший випадок) для роботи. Вони використовують цей вільний простір для тимчасового розміщення фрагментованих файлів, оскільки інші реорганізовані.
- Залиште місце для інших функцій ОС. Наприклад, якщо на вашому комп'ютері немає багато фізичної пам'яті, і у вас є віртуальна пам'ять з файлом сторінок, що динамічно розміщуються, ви хочете залишити достатньо місця для максимального розміру файлу сторінки. Або якщо у вас є ноутбук, який ви переводите в режим глибокого сну, вам буде потрібно достатньо вільного місця для файлу стану сплячого режиму. Такі речі.
2. SSD-специфічний:
- Для оптимальної надійності (і в меншій мірі, продуктивності) SSD-накопичувачі потребують вільного простору, який, не вдаючись у занадто багато деталей, використовують для розповсюдження даних навколо диска, щоб уникнути постійного запису на те ж саме місце (яке виснажує їх) . Ця концепція залишення вільного простору називається надмірною. Важливо, але в багатьох SSD-дисках вже існує обов'язковий простір. Тобто диски часто мають кілька десятків Гб, ніж вони повідомляють ОС. Диски нижнього кінця часто вимагають від вас ручного залишення без розділів простору, але для дисків з обов'язковим ОП, Вам не потрібно залишати вільний простір. Важливо відзначити, що тут надмірно виділений простір часто приймається лише з нерозділеного простору. Так що якщо ваш розділ займає весь диск, і ви залишаєте на ньому вільного місця, це не так завжди рахувати. Багато разів, ручне перерозподіл вимагає скоротити розділ на розмір менше розміру диска. Докладніше див. У посібнику користувача SSD. ТРІМ, збір сміття, таке має також наслідки, але вони виходять за рамки цієї відповіді.
Особисто я зазвичай захоплюю більший диск, коли у мене залишилося близько 20-25 відсотків вільного місця. Це не пов'язано з продуктивністю, це просто те, що, коли я доберуся до цього моменту, я очікую, що я, швидше за все, не вистачить місця для даних і прийшов час отримати більший привід.
Більш важливо, ніж перегляд вільного простору, переконайтеся, що запланована дефрагментація включена, де це доречно (не на SSD-дисках), щоб ви ніколи не дісталися до того місця, де він стає достатньо страшним, щоб вплинути на вас.
Існує ще одне, що варто згадати. Один з інших відповідей тут згадував, що напівдуплексний режим SATA запобігає одночасному читанню та запису. Хоча це правда, це значно спрощується і в основному не пов'язане з проблемами ефективності, які обговорюються тут. Це просто означає, що дані не можуть бути передані в обох напрямках на дроті в той самий час. Тим не менш, SATA має досить складну специфікацію з урахуванням мінімальних розмірів блоків (близько 8 кБ на блок на дроті, я думаю), читання і запису черг операцій і т.д., і не виключає запису в буфери, що відбуваються під час читання в процесі, чергування операцій тощо.
Будь-яке блокування, що відбувається, буде пов'язане з конкуруванням за фізичні ресурси, які, як правило, пом'якшуються великою кількістю кешу. Дуплексний режим SATA тут практично не має значення.
(A) "Уповільнення" - це широкий термін. Тут я використовую його для посилання на речі, які пов'язані з входом-виходом (тобто, якщо ваш комп'ютер сидить там, де хреститься номери, вміст жорсткого диска не впливає) або пов'язані з процесором і конкурують з тангенційно пов'язаними речами, які мають високий рівень Використання процесора (тобто сканування антивірусних програм тоннами файлів).
(B) На SSD-пристрої впливає фрагментація, оскільки швидкість послідовного доступу, як правило, швидше, ніж випадковий доступ, незважаючи на те, що SSD-пристрої не стикаються з тими ж обмеженнями, як механічний пристрій (навіть тоді, відсутність фрагментації не гарантує послідовного доступу через вирівнювання зносу тощо). Однак, практично в кожному сценарії загального користування це не є проблемою. Відмінності в продуктивності через фрагментацію на SSD-накопичувачах зазвичай незначні для таких дій, як завантаження програм, завантаження комп'ютера тощо.
(C) Припускаючи нормальну файлову систему, яка не фрагментує файли за призначенням.
Переконайтеся, що прочитали всю іншу жваву дискусію в SuperUser за посиланням нижче!
Маєте щось додати до пояснення? Звучить в коментарях. Хочете прочитати більше відповідей від інших технологічних користувачів Stack Exchange? Перегляньте повний потік обговорення тут.