Ubuntu хоче включити TRIM для SSD за замовчуванням в Ubuntu 14.04. Іншими словами, Ubuntu ще не використовує TRIM, тому ваш SSD сповільнюється з часом. Але чому Ubuntu вже не використовує TRIM?
Ця новина, швидше за все, стане несподіванкою для багатьох людей, які припустили, що Ubuntu та інші дистрибутиви Linux вже використовують TRIM. TRIM запобігає уповільненню твердотільних накопичувачів з часом і є необхідною частиною обслуговування SSD.
Чому TRIM важливий
Ми розглянули чому TRIM важливий раніше. Коли ви видаляєте файл на старому магнітному жорсткому диску, комп'ютер просто позначає цей файл як видалений. Дані файлу залишаються на жорсткому диску - ось чому можна відновити видалені файли . Зрештою комп’ютер перезапише видалені файли, коли перезапише їхні сектори новими даними.
Твердотільні накопичувачі (SSD) працюють по-різному . Щоразу, коли ви пишете файл на SSD, комп’ютер повинен спочатку стерти всі дані в секторах, куди вони записують дані. Він не може просто “перезаписати” сектори за одну операцію - він повинен спочатку очистити їх, а потім записати в порожні сектори.
Це означає, що SSD з часом сповільнюється. З першого разу запис у сектори SSD буде швидким. Після того, як ви видалите деякі файли та спробуєте записати їх знову, це займе більше часу. Це велика частина причини, чому оригінальний Nexus 7 від Google настільки сповільнився з часом. Google виправив це, застосувавши TRIM в Android 4.3. (Android також використовує ядро Linux.)
Якщо увімкнено функцію TRIM, операційна система повідомляє SSD щоразу, коли видаляє файл. Потім накопичувач може стерти сектори, що містять вміст файлу, тому запис у сектори буде швидким у майбутньому.
Іншими словами, якщо ви не використовуєте TRIM, ваш твердотільний диск з часом сповільниться. Ось чому сучасні операційні системи, зокрема Windows 7+, Mac OS X 10.6.8+ та Android 4.3+, використовують TRIM. TRIM було впроваджено в Linux ще в грудні 2008 року, але Ubuntu не використовує його за замовчуванням.
ПОВ'ЯЗАНІ: Що таке твердотільний накопичувач (SSD) і чи потрібен він мені?
Чому Ubuntu не обробляється за замовчуванням?
Справжньою причиною того, що Ubuntu за замовчуванням не обробляє твердотільні накопичувачі, є те, що реалізація ядра Linux TRIM відбувається повільно і призводить до низької продуктивності при звичайному використанні.
У Windows 7 і 8 Windows щоразу, коли видаляє файл, надсилає команду TRIM, вказуючи диску негайно видалити біти файлу. Linux підтримує це, коли файлові системи монтуються з опцією "відкинути". Однак Ubuntu - та інші дистрибутиви - не роблять цього за замовчуванням з міркувань продуктивності.
Вікі OpenSUSE містить детальну інформацію від розробника, який більше знайомий з ядром Linux, ніж ми. Він трохи застарілий, але, ймовірно, все ще відповідає дійсності:
“Реалізація ядра в режимі реального часу обрізки в 11.2, 11.3 та 11.4 не оптимізована. Специфікація закликає до trim, що підтримує векторизований список діапазонів trim, але станом на ядро 3.0 trim викликається ядром лише з одним діапазоном скидання / trim, а на поточних твердотільних накопичувачах середини 2011 року це, як доведено, спричиняє погіршення продуктивності замість підвищення продуктивності. Є кілька причин використовувати підтримку відмови від ядер у реальному часі з ядрами до 3.1. Невідомо, коли функціональність відмови від ядер буде оптимізована для вигідної роботи з твердотільними накопичувачами поточного покоління ». [ Джерело ]
Іншими словами, ядро Linux обробляє такі команди TRIM в режимі реального часу повільним, неоптимізованим способом. Увімкнення TRIM, подібне до того, як це робить Windows, тобто використання опції «відкинути», призводить до того, що система фактично стає повільнішою, ніж якби TRIM взагалі не використовувався. Ubuntu та інші дистрибутиви Linux за замовчуванням не вмикають функцію "відхилити" для ваших файлових систем, і ви не повинні цього робити.
Є інший шлях
Оскільки операція TRIM ядра Linux в режимі реального часу «відкидає» не працює належним чином, більшість дистрибутивів Linux, включаючи Ubuntu, не використовують TRIM автоматично. Android також не використовував TRIM до Android 4.3.
Але є інший спосіб використання TRIM. Замість того, щоб просто видавати команду TRIM кожного разу, коли файл видаляється, можна використовувати функцію FITRIM. Це відбувається за допомогою команди fstrim. По суті, команда fstrim аналізує файлову систему та інформує накопичувач, які блоки більше не потрібні, тому накопичувач може їх відкинути. Це перетворює TRIM з операції в режимі реального часу в заплановане завдання. Іншими словами, fstrim може виконувати TRIM як роботу cron. Немає причин не робити цього. Це нічого не сповільнить; це просто чергове завдання з прибирання будинку, яке система повинна виконувати за розкладом.
ПОВ'ЯЗАНІ: Чому мій Nexus 7 такий повільний? 8 способів прискорити це знову
Насправді, такий підхід Google застосував до Android 4.3. Android просто періодично запускає завдання fstrim, щоб обрізати файлову систему, виправляючи проблема, яка загальмувала всі ці оригінальні Nexus 7 .
Ubuntu також розглядає можливість увімкнення TRIM автоматично, регулярно запускаючи систему fstrim. Сподіваємось, це буде частиною Ubuntu 14.04, тому користувачі Ubuntu не будуть змушені мати справу з погіршенням продуктивності твердотільного накопичувача або запускати fstrim самостійно.
Як увімкнути TRIM
Ми не рекомендуємо монтувати файлові системи за допомогою операції "відкинути", оскільки це, швидше за все, призведе до зниження продуктивності при звичайному використанні. Однак ви можете використовувати TRIM самостійно, періодично запускаючи команду fstrim або створюючи власний cronjob, який запускає fstrim за розкладом.
Щоб обрізати SSD на Ubuntu, просто відкрийте термінал і запустіть таку команду:
судо фстрім -в /
Ви можете іноді запускати вищезазначену команду, щоб запобігти погіршенню продуктивності твердотільних накопичувачів. Як часто вам потрібно його запускати, залежить від того, як часто файли видаляються з вашого SSD. Ви побачите помилку, якщо спробуєте запустити команду з диска, який не підтримує TRIM.
Якщо ви хочете регулярно запускати TRIM, ви можете просто створити cronjob, який запускає для вас команду fstrim. Ось як зробити роботу без головної кістки, яка зробить це автоматично.
Спочатку запустіть таку команду, щоб відкрити текстовий редактор нано з правами root:
Судона / Etc / c Рон. Щоденний / перший обід
Введіть у файл такий код:
#! / bin / sh
fstrim /
Збережіть файл, натиснувши Ctrl + O і натисніть Enter для підтвердження. Натисніть Ctrl + X, щоб закрити nano після збереження файлу.
Нарешті, виконайте таку команду, щоб зробити сценарій виконуваним:
sudo chmod + x /etc/cron.daily/fstrim
Тепер Ubuntu буде запускати fstrim за розкладом, як і інші завдання з обслуговування системи.
Зауважте, що TRIM підтримується лише в сучасних файлових системах, тому вам знадобиться щось на зразок ext4, а не ext3 чи ext2. Якщо ви не знаєте, якою файловою системою ви користуєтесь, не хвилюйтеся - за замовчуванням вибрано ext4.
Значна частина цих порад стосується також інших дистрибутивів Linux. Хоча Linux давно реалізував підтримку TRIM в ядрі, її підтримка TRIM, здається, ніколи не була включена за замовчуванням для типових користувачів у дистрибутивах Linux.
Кредит зображення: Мейс Оджала на Flickr (обрізано)