Ez a hír valószínűleg sokak számára meglepő, hiszen azt feltételezik, hogy az Ubuntu és más Linux disztribúciók már használják a TRIM-et. A TRIM megakadályozza, hogy az SSD-k lassuljanak az idő múlásával, és az SSD-karbantartás szükséges része.
Miért fontos a TRIM?
Megvizsgáltuk, miért fontos a TRIM. Ha töröl egy fájlt egy régi, mágneses merevlemezen, a számítógép csak törölve jelöli meg a fájlt. A fájl adatai megakadnak a merevlemezen - ezért lehet törölni a törölt fájlokat. A számítógép végül felülírja a törölt fájlokat, amikor az új adatokkal felülírja szektorukat.
A szilárdtestalapú meghajtók (SSD-k) másképpen működnek. Amikor fájlokat ír le egy SSD-re, a számítógépnek először törölnie kell azokat az adatokat, amelyekben az adatokat írja. Ez nem csak "felülírja" az ágazatokat egy műveletben - először tisztázni kell őket, majd írni az üres szektoroknak.
Ez azt jelenti, hogy az SSD lelassul az idő múlásával. Az SSD ágazatainak írása az első alkalommal gyors lesz. Miután törölt néhány fájlt, és újból megpróbálta írni, ez hosszabb ideig tart. Ez nagy része annak a magyarázó ténynek, hogy a Google eredeti Nexus 7 lassan lassult le idővel. A Google ezt javította a TRIM Android 4.3 verziójának végrehajtásával. (Az Android a Linux rendszermagot is használja.)
A TRIM engedélyezve az operációs rendszer minden alkalommal törli az SSD-t, amikor törli a fájlt. A meghajtó ezután törölheti a fájl tartalmát tartalmazó szektorokat, így az ágazatokra való írás gyors lesz a jövőben.
Más szóval, ha nem használja a TRIM-et, akkor az SSD lassul az idő múlásával. Ezért a modern operációs rendszerek, köztük a Windows 7+, a Mac OS X 10.6.8+ és az Android 4.3+ is használják a TRIM-et. A TRIM 2008 decemberében valósult meg Linuxban, de az Ubuntu alapértelmezés szerint nem használja.
Miért nem az Ubuntu TRIM alapértelmezés szerint?
Az az igazi ok, hogy az Ubuntu alapértelmezésben nem TRIM SSD-k, mert a Linux kernel TRIM implementációja lassú, és normál használat esetén gyenge teljesítményt eredményez.
Windows 7 és 8 esetén a Windows minden alkalommal elküldi a TRIM parancsot, amikor törli a fájlt, és azt mondja a meghajtónak, hogy azonnal törölje a fájl bitjeit. A Linux ezt támogatja, ha a fájlrendszereket a "discard" opcióval szerelik fel. Azonban az Ubuntu - és más terjesztések - alapértelmezésben nem teszik ezt teljesítményért.
Az OpenSUSE wiki tartalmaz néhány részletes információt egy olyan fejlesztőtől, aki jobban ismeri a Linux kernelt, mint mi. Ez egy kicsit keltezött, de valószínűleg még mindig igaz, amikor a teljesítményről van szó:
“The kernel implementation of realtime trim in 11.2, 11.3, and 11.4 is not optimized. The spec. calls for trim supporting a vectorized list of trim ranges, but as of kernel 3.0 trim is only invoked by the kernel with a single discard / trim range and with current mid 2011 SSDs this has proven to cause a performance degradation instead of a performance increase. There are few reasons to use the kernels realtime discard support with pre-3.1 kernels. It is not known when the kernels discard functionality will be optimized to work beneficially with current generation SSDs.” [Source]
Más szóval, a Linux kernel ilyen valós idejű TRIM parancsokat lassú, nem optimalizált módon kezel. Ha a TRIM hasonlóan működik a Windows által - azaz a "visszadobás" opció használatával - akkor a rendszer valójában lassabb lesz, mintha a TRIM-t egyáltalán nem használták volna. Az Ubuntu és más Linux disztribúciók alapértelmezés szerint nem engedélyezik a "visszadobást" a fájlrendszerekben, és nem is szabad.
Van egy másik út
Mivel a Linux kernel valós idejű "eldobható" TRIM művelete nem működik megfelelően, a legtöbb Linux-terjesztés - beleértve az Ubuntut is - nem használja automatikusan a TRIM-et. Az Android szintén nem használta a TRIM-et az Android 4.3-ig.
De van még egy mód a TRIM használatára. Ahelyett, hogy egyszerűen kiadná a TRIM parancsot minden egyes fájl törlésekor, a FITRIM funkció használható. Ez a fstrim parancs segítségével történik. Lényegében a fstrim parancs elemzi a fájlrendszert, és tájékoztatja a meghajtót, hogy mely blokkokra nincs szükség, így a meghajtó eldobhatja őket. Ezzel a TRIM valós idejű műveletből egy ütemezett feladatra vált. Más szóval, a fstrim képes elvégezni a TRIM-et cron munkaként. Semmi okunk nem erre. Nem fog lassítani semmit; ez csak egy újabb takarítási feladat, amelyet a rendszernek menetrend szerint kell végrehajtania.
Valójában ez az a megközelítés, amelyet a Google az Android 4.3-mal vitt. Az Android egyszerűen fstrim feladatot futtat TRIM-hez a fájlrendszerhez, rögzítve azt a problémát, amely lelassította az összes eredeti Nexus 7-et.
Az Ubuntu automatikusan megvizsgálja a TRIM automatikus engedélyezését, mivel a rendszer rendszeresen futtat. Ez remélhetőleg része lesz az Ubuntu 14.04-nek, így az Ubuntu felhasználók nem kényszerülnek az SSD teljesítményének romlására vagy a fstrim futtatására.
A TRIM engedélyezése
Nem javasoljuk, hogy a fájlrendszereket a "visszadobás" művelettel szerelje fel, mivel ez valószínűleg lassabb teljesítményt eredményez normál használat során. Használhatod azonban a TRIM-et magaddal, ha alkalmanként fstrim parancsot futtatsz, vagy létrehozod a saját cronjob-t, amely ütemezést futtat.
Az Ubuntu SSD-jének TRIM-hez történő mentéséhez egyszerűen nyisson meg egy terminált, és futtassa a következő parancsot:
sudo fstrim -v /
Ha rendszeresen szeretné futtatni a TRIM-et, egyszerűen hozhat létre egy cronjobot, amely a fstrim parancsot futtatja.Íme, hogyan készíts egy barebones cron feladatot, amely ezt automatikusan elvégzi.
Először futtasd a következő parancsot a nano szövegszerkesztő root jogosultságokkal történő megnyitásához:
sudo nano /etc/cron.daily/fstrim
Írja be a következő kódot a fájlba:
#!/bin/sh
fstrim /
Végül futtassa a következő parancsot a parancsfájl végrehajthatóvá tételéhez:
sudo chmod +x /etc/cron.daily/fstrim
Ne feledje, hogy a TRIM-t csak a modern fájlrendszereken támogatják, ezért szüksége lesz valami ext4-re, és nem ext3-ra vagy ext2-re. Ha nem tudja, melyik fájlrendszer használja, ne aggódjon - az ext4 alapértelmezés szerint van kiválasztva.
A tanácsadás nagy része más Linux disztribúciókra is vonatkozik. Míg a Linux régóta végrehajtotta a TRIM támogatását a kernelben, a TRIM támogatása alapértelmezés szerint soha nem engedélyezett a Linux disztribúciók tipikus felhasználói számára.