Ubuntu nu are SSD-uri TRIM Implicit De ce nu și cum să-l activați singur
Ubuntu dorește să activa implicit TRIM pentru SSD-uri în Ubuntu 14.04. Cu alte cuvinte, Ubuntu nu utilizează deja TRIM, deci SSD-ul dvs. încetinește în timp. Dar de ce Ubuntu nu utilizează deja TRIM?
Această știre va fi probabil o surpriză pentru mulți oameni, care au presupus că Ubuntu și alte distribuții Linux au folosit deja TRIM. TRIM împiedică încetinirea SSD-urilor în timp și este o parte necesară a întreținerii SSD.
De ce TRIM este important
Am analizat de ce TRIM este important înainte. Când ștergeți un fișier de pe o unitate hard disk veche, computerul pur și simplu marchează acest fișier ca fiind șters. Datele fișierelor se blochează pe unitatea hard disk - de aceea pot fi recuperate fișierele șterse. În cele din urmă, computerul va suprascrie fișierele șterse când suprascrie sectoarele lor cu date noi.
Solid-state drives (SSD) funcționează diferit. Ori de câte ori scrieți un fișier pe un SSD, computerul trebuie mai întâi să ștergă toate datele din sectoarele în care scrie datele. Nu poate doar "suprascrie" sectoarele într-o singură operație - trebuie să le clarifice mai întâi, apoi să scrie în sectoarele goale.
Aceasta înseamnă că un SSD va încetini în timp. Scrierea în sectoarele SSD va fi rapidă pentru prima oară. După ce ștergeți unele fișiere și încercați să le scrieți din nou, va dura mai mult. Aceasta este o mare parte din motivul pentru care versiunea originală Nexus 7 de la Google a încetinit atât de mult în timp. Google a rezolvat această problemă implementând TRIM în Android 4.3. (Android folosește și kernel-ul Linux).
Cu TRIM activat, sistemul de operare îi spune SSD de fiecare dată când șterge un fișier. Unitatea poate șterge apoi sectoarele care conțin conținutul fișierului, așadar scrierea către sectoare va fi rapidă în viitor.
Cu alte cuvinte, dacă nu utilizați TRIM, SSD va încetini în timp. De aceea, sistemele moderne de operare, inclusiv Windows 7+, Mac OS X 10.6.8+ și Android 4.3+ folosesc TRIM. TRIM a fost implementat în Linux în decembrie 2008, însă Ubuntu nu o folosește în mod implicit.
De ce nu rulează Ubuntu TRIM implicit?
Motivul real pentru care Ubuntu nu are în mod prestabilit SSD-urile TRIM este că implementarea kernel-ului Linux a TRIM este lentă și are ca rezultat o performanță slabă în utilizarea normală.
Pe Windows 7 și 8, Windows trimite o comandă TRIM de fiecare dată când șterge un fișier, spunând unității să ștergă imediat biții din fișier. Linux acceptă acest lucru când sistemele de fișiere sunt montate cu opțiunea "aruncă". Cu toate acestea, Ubuntu - și alte distribuții - nu fac acest lucru implicit din motive de performanță.
Wiki-ul OpenSUSE conține informații detaliate de la un dezvoltator care este mai familiarizat cu kernel-ul Linux decât suntem. Este un pic datat, dar probabil este încă adevărat atunci când vine vorba de performanță:
"Implementarea kernel-ului în timp real în 11.2, 11.3 și 11.4 nu este optimizată. Spec. solicită o versiune care să susțină o listă vectorizată de intervale de decupare, dar din momentul trimestrului kernel 3.0 este invocată doar de kernel cu o singură gamă de aruncare / decupare și cu SSD-urile din mijlocul anului 2011 acest lucru sa dovedit a provoca o degradare a performanței în loc de o creștere a performanței. Există puține motive să utilizați suportul kernel-urilor în timp real, cu ajutorul kernel-urilor pre-3.1. Nu se știe când funcțiile de eliminare a kernelurilor vor fi optimizate pentru a funcționa eficient cu SSD-urile de generație actuale. "[Source]
Cu alte cuvinte, kernel-ul Linux manipulează astfel de comenzi TRIM în timp real într-un mod lent, neoptimizat. Activarea TRIM similară cu modul în care funcționează Windows - adică folosind opțiunea "arunca" - are ca rezultat faptul că sistemul devine mai lent decât dacă TRIM nu ar fi fost deloc folosit. Ubuntu și alte distribuții Linux nu permit "eliminarea" în mod prestabilit pentru sistemele de fișiere și nu ar trebui să fie nici una.
Există o altă cale
Deoarece operația TRIM în timp real a sistemului kernel Linux nu funcționează bine, majoritatea distribuțiilor Linux - inclusiv Ubuntu - nu utilizează automat TRIM. Android, de asemenea, nu a folosit TRIM până la Android 4.3.
Dar există o altă modalitate de a utiliza TRIM. În loc să emiteți comanda TRIM de fiecare dată când este șters un fișier, se poate utiliza caracteristica FITRIM. Acest lucru se întâmplă prin comanda fstrim. În esență, comanda fstrim analizează sistemul de fișiere și informează unitatea despre blocurile care nu mai sunt necesare, astfel încât unitatea să le poată arunca. Aceasta transformă TRIM dintr-o operație în timp real într-o sarcină programată. Cu alte cuvinte, fstrim poate efectua TRIM ca un job cron. Nu există niciun motiv să nu faceți acest lucru. Nu va încetini nimic; este doar o altă sarcină de curățare pe care sistemul trebuie să o îndeplinească într-un program.
De fapt, aceasta este abordarea pe care Google a luat-o cu Android 4.3. Android pur și simplu execută o sarcină fstrim ocazional pentru a TRIM sistemul de fișiere, rezolvând problema care a încetinit toate cele Nexus 7 originale.
Ubuntu se uită, de asemenea, la activarea TRIM în mod automat prin faptul că sistemul rulează regulat fstrim. Acest lucru va fi, sperăm, parte din Ubuntu 14.04, astfel încât utilizatorii Ubuntu nu vor fi forțați să se ocupe de degradarea performanțelor SSD sau să ruleze fstrim pe cont propriu.
Cum se activează TRIM
Nu recomandăm montarea sistemelor de fișiere cu operațiunea "aruncați", deoarece acest lucru va duce probabil la o performanță mai lentă în timpul utilizării normale. Cu toate acestea, puteți folosi TRIM-ul dvs. prin executarea ocazională a comenzii fstrim sau crearea propriului cronjob care rulează fstrim pe un program.
Pentru a TRIM SSD-ul pe Ubuntu, deschideți pur și simplu un terminal și rulați următoarea comandă:
sudo fstrim -v /
Puteți rula comanda de mai sus ocazional pentru a preveni degradarea performanțelor pe SSD-uri. Cât de des trebuie să o executați depinde de cât de des sunt șterse fișierele din SSD. Veți vedea o eroare dacă încercați să executați comanda cu o unitate care nu acceptă TRIM.
Dacă doriți să rulați regulat TRIM, puteți să creați pur și simplu un cronjob care execută comanda fstrim pentru dvs. Iată cum să faceți o lucrare cu barebones cron care va face acest lucru automat.
Mai întâi, executați următoarea comandă pentru a deschide editorul de text nano cu permisiuni root:
sudo nano /etc/cron.daily/fstrim
Introduceți în fișier următorul cod:
#! / Bin / sh
fstrim /
Salvați fișierul apăsând Ctrl + O și apăsați Enter pentru a confirma. Apăsați Ctrl + X pentru a închide nano după salvarea fișierului.
În cele din urmă, executați următoarea comandă pentru a crea scriptul executabil:
sudo chmod + x /etc/cron.daily/fstrim
Ubuntu va rula acum fstrim la un program, la fel ca și alte sarcini de întreținere a sistemului.
Rețineți că TRIM este acceptat numai pe sisteme de fișiere moderne, deci veți avea nevoie de ceva de genul ext4 și nu ext3 sau ext2. Dacă nu știți ce sistem de fișiere folosești, nu vă faceți griji - ext4 este selectat în mod implicit.
O mare parte din acest sfat se aplică și în cazul altor distribuții Linux. În timp ce Linux a implementat suportul TRIM în nucleu cu mult timp în urmă, suportul său TRIM pare să nu fi fost activat în mod implicit pentru utilizatorii tipici din distribuțiile Linux.
Credit de imagine: Mace Ojala pe Flickr (tăiat)