9Sep

Ubuntu TRIM inte SSDs som standard: Varför inte och hur man aktiverar det själv

Ubuntu vill aktivera TRIM för SSD som standard i Ubuntu 14.04.Med andra ord använder Ubuntu inte redan TRIM, så din SSD saktar över tiden. Men varför använder Ubuntu inte redan TRIM?

Dessa nyheter kommer sannolikt att komma som en överraskning för många människor, som antog att Ubuntu och andra Linux-distributioner redan använde TRIM.TRIM hindrar SSD från att sakta ner över tiden och är en nödvändig del av SSD-underhåll.

Varför TRIM är viktigt

Vi har täckt varför TRIM är viktigt före. När du tar bort en fil på en gammal magnetisk hårddisk markerar datorn bara den filen som raderad. Filens data pinnar runt på hårddisken - det är därför att borttagna filer kan återställas. Datorn kommer så småningom att skriva över de borttagna filerna när den skriver över sina sektorer med nya data.

Solid State-enheter( SSD) fungerar olika. När du skriver en fil till en SSD måste datorn först radera data i de sektorer där data skrivs till. Det kan inte bara "skriva över" sektorerna i en operation - det måste först rensa dem och skriva sedan till de tomma sektorerna.

Detta innebär att en SSD kommer att sakta ner över tiden. Att skriva till SSD: s sektorer kommer att bli snabb första gången. När du har raderat några filer och försökt skriva till det igen tar det längre tid. Det här är en stor del av anledningen till att Googles ursprungliga Nexus 7 saktade ned så mycket över tiden. Google fastställde detta genom att implementera TRIM i Android 4.3.(Android använder också Linux-kärnan.)

Med TRIM-aktiverat, berättar operativsystemet SSD varje gång det tar bort en fil. Enheten kan sedan radera de sektorer som innehåller filens innehåll, så att skriva till sektorerna kommer att bli snabb i framtiden.

Med andra ord, om du inte använder TRIM kommer din SSD att sakta ner över tiden. Det är därför moderna operativsystem, inklusive Windows 7+, Mac OS X 10.6.8+ och Android 4.3+ använder TRIM.TRIM implementerades i Linux tillbaka i december 2008, men Ubuntu använder inte det som standard.

RELATERADE ARTIKLAR
Vad är en Solid State Drive( SSD), och behöver jag en?
Behöver jag "Optimera" min SSD med tredje parts programvara?

Varför inte Ubuntu TRIM som standard?

Den verkliga orsaken till att Ubuntu inte TRIM SSDs är som standard är att Linuxkärnans implementering av TRIM är långsam och resulterar i dålig prestanda vid normal användning.

I Windows 7 och 8 skickar Windows ett TRIM-kommando varje gång det tar bort en fil och berättar om det går att omedelbart radera bitarna i filen. Linux stöder detta när filsystem är monterade med alternativet "kassera".Ubuntu - och andra distributioner - gör dock inte detta som standard för prestationsskäl.

OpenSUSEs wiki innehåller lite detaljerad information från en utvecklare som är mer bekant med Linux-kärnan än vi är. Det är lite daterat, men det är sannolikt fortfarande sant när det gäller prestanda:

"Kärnans genomförande av realtids-trim i 11.2, 11.3 och 11.4 är inte optimerad. Spec.kräver att trim stöder en vektoriserad lista över trimområden, men från kärnan 3.0 är trimmen endast påkallad av kärnan med ett enda kasta / trim-område och med nuvarande mitten av 2011 SSD har detta visat sig orsaka en prestandadämpning istället för en prestandaförlängning. Det finns få anledningar att använda kärnans realtime-kasta support med pre-3.1 kärnor. Det är inte känt när kärnans kasta funktionalitet kommer att optimeras för att fungera fördelaktigt med nuvarande generations SSD. "[Källa]

Med andra ord hanterar Linux-kärnan sådana realtids TRIM-kommandon på ett långsamt, ooptimerat sätt. Aktivera TRIM på samma sätt som Windows gör - det vill säga med alternativet "kasta bort" - resulterar i att systemet faktiskt blir långsammare än om inte TRIM användes alls. Ubuntu och andra Linux-distributioner aktiverar inte "kassera" som standard för dina filsystem, och du borde inte heller.

Det finns ett annat sätt

Eftersom Linux-kärnans realtid "kasta" TRIM-operation inte fungerar bra, använder de flesta Linux-distributioner, inklusive Ubuntu, inte automatiskt TRIM.Android använde inte heller TRIM till Android 4.3.

Men det finns ett annat sätt att använda TRIM.I stället för att bara utfärda TRIM-kommandot varje gång en fil raderas kan FITRIM-funktionen användas. Detta händer via kommandot fstrim. I huvudsak analyserar fstrim-kommandot filsystemet och informerar den enhet som block inte längre behövs, så enheten kan kassera dem. Detta gör TRIM från en realtidsoperation till en schemalagd uppgift. Fstrim kan med andra ord utföra TRIM som ett cronjobb. Det finns ingen anledning att inte göra detta. Det kommer inte att sakta ner någonting;Det är bara en annan housecleaning-uppgift som systemet måste utföra på ett schema.

I själva verket är detta det sätt som Google tog med Android 4.3.Android kör helt enkelt en fstrim-uppgift ibland för att TRIM filsystemet, vilket löser problemet som bromsade alla de ursprungliga Nexus 7-enheterna.

Ubuntu ser också på att aktivera TRIM automatiskt genom att systemet regelbundet kör fstrim. Detta kommer förhoppningsvis att vara en del av Ubuntu 14.04 så att Ubuntu-användare inte kommer att tvingas ta itu med SSD-prestandaförstöring eller köra fstrim på egen hand.

Hur man aktiverar TRIM

Vi rekommenderar inte att du monterar dina filsystem med "kassera" -operationen, eftersom det troligtvis kommer att resultera i långsammare prestanda vid normal användning. Du kan dock använda TRIM själv genom att ibland köra kommandot fstrim eller skapa en egen cronjob som kör fstrim på ett schema.

För att TRIM din SSD på Ubuntu, öppna helt enkelt en terminal och kör följande kommando:

sudo fstrim -v /

Du kan köra ovanstående kommando ibland för att förhindra prestandadämpning på SSD-enheter. Hur ofta du behöver köra det beror på hur ofta filer tas bort från din SSD.Du får se ett fel om du försöker köra kommandot med en enhet som inte stöder TRIM.

Om du vill köra TRIM regelbundet kan du helt enkelt skapa en cronjob som kör fstrim-kommandot för dig. Så här gör du ett barebones cron-jobb som automatiskt gör det här.

Först kör följande kommando för att öppna nano textredigeraren med root behörigheter:

sudo nano /etc/cron.daily/ fstrim

Skriv följande kod i filen:

#!/bin/ sh

fstrim /

Spara filen genom att trycka på Ctrl + O och tryck på Enter för att bekräfta. Tryck Ctrl + X för att stänga nano efter att du har sparat filen.

Senast kör följande kommando för att göra scriptet körbart:

sudo chmod + x /etc/cron.daily/ fstrim

Ubuntu kör nu fstrim på ett schema, precis som det gör andra systemunderhållsuppgifter.

Observera att TRIM endast stöds på moderna filsystem, så du behöver något som ext4 och inte ext3 eller ext2.Om du inte vet vilket filsystem du använder, oroa dig inte - ext4 är markerat som standard.

Mycket av detta råd gäller även för andra Linux-distributioner. Medan Linux implementerade TRIM-stöd i kärnan för länge sedan, verkar dess TRIM-stöd aldrig ha varit aktiverat som standard för typiska användare i Linux-distributioner.

Bildkrediter: Mace Ojala på Flickr( beskuren)