Hjemmeside » hvordan » Ubuntu TRIM ikke SSD'er som standard, hvorfor ikke og hvordan du aktiverer det selv

    Ubuntu TRIM ikke SSD'er som standard, hvorfor ikke og hvordan du aktiverer det selv

    Ubuntu ønsker at aktivere TRIM for SSD'er som standard i Ubuntu 14.04. Med andre ord bruger Ubuntu ikke allerede TRIM, så din SSD er langsommere. Men hvorfor bruger Ubuntu ikke allerede TRIM?

    Denne nyhed vil sandsynligvis komme som en overraskelse for mange mennesker, der antog, at Ubuntu og andre Linux-distributioner allerede bruger TRIM. TRIM forhindrer SSD'er i at bremse ned over tid og er en nødvendig del af SSD-vedligeholdelse.

    Hvorfor TRIM er vigtigt

    Vi har afdækket hvorfor TRIM er vigtig før. Når du sletter en fil på en gammel magnetisk harddisk, markerer computeren blot den pågældende fil som slettet. Filens data stikker rundt på harddisken - det er derfor, at slettede filer kan hentes. Computeren vil til sidst overskrive de slettede filer, når den overskriver deres sektorer med nye data.

    Solid state drives (SSD'er) fungerer forskelligt. Når du skriver en fil til en SSD, skal computeren først slette data i de sektorer, hvor dataene skrives til. Det kan ikke bare "overskrive" sektorerne i en operation - det skal først rydde dem og derefter skrive til de tomme sektorer.

    Det betyder, at en SSD vil sænke over tid. At skrive til SSD's sektorer vil være hurtig første gang. Når du har slettet nogle filer og forsøgt at skrive til det igen, vil det tage længere tid. Dette er en stor del af grunden til, at Googles oprindelige Nexus 7 bremset så meget over tid. Google fastsatte dette ved at implementere TRIM i Android 4.3. (Android bruger også Linux-kernen.)

    Med TRIM aktiveret, fortæller operativsystemet SSD hver gang det sletter en fil. Drevet kan derefter slette de sektorer, der indeholder filens indhold, så skrivning til sektorer vil være hurtig i fremtiden.

    Med andre ord, hvis du ikke bruger TRIM, vil din SSD sænke over tid. Derfor bruger moderne operativsystemer, herunder Windows 7+, Mac OS X 10.6.8+ og Android 4.3+ TRIM. TRIM blev implementeret i Linux tilbage i december 2008, men Ubuntu bruger det ikke som standard.

    Hvorfor Ubuntu TRIM som standard ikke?

    Den egentlige grund Ubuntu er ikke TRIM SSD'er som standard, fordi Linux-kernens implementering af TRIM er langsom og resulterer i dårlig ydeevne ved normal brug.

    Windows 7 og 8 sender Windows en TRIM-kommando hver gang den sletter en fil og fortæller drevet om straks at slette bitene i filen. Linux understøtter dette, når filsystemer er monteret med "kassere" indstillingen. Ubuntu - og andre distributioner - gør det dog ikke som standard for præstationsårsager.

    OpenSUSE's wiki indeholder nogle detaljerede oplysninger fra en udvikler, der er mere bekendt med Linux-kernen end vi er. Det er lidt dateret, men det er sandsynligvis stadig sandt, når det kommer til ydeevne:

    "Kernen implementering af realtime trim i 11.2, 11.3 og 11.4 er ikke optimeret. Spec. opfordrer til at trimme understøtter en vektoriseret liste over trim-intervaller, men fra kernel 3.0-trimmerne er kun påberåbt af kernen med et enkelt udkast / trim-område og med nuværende mellemstor 2011 SSD'er har dette vist sig at medføre en ydelsesforringelse i stedet for en præstationsforøgelse. Der er få grunde til at bruge kernenes realtime discard-support med pre-3.1 kerner. Det vides ikke, hvornår kernefjerning funktionaliteten vil blive optimeret til at fungere gavnligt med nuværende generation SSD'er. "[Kilde]

    Med andre ord håndterer Linux-kernen sådanne TRIM-kommandoer i realtid på en langsom, uoptimeret måde. Aktivering af TRIM ligner hvordan Windows gør - det vil sige ved hjælp af "kassere" -alternativet - resulterer i, at systemet rent faktisk bliver langsommere, end hvis TRIM slet ikke blev brugt. Ubuntu og andre Linux-distributioner aktiverer ikke "kassere" som standard for dine filsystemer, og du bør heller ikke.

    Der er en anden vej

    Fordi Linux kerneens realtids "discard" TRIM-operation ikke fungerer godt, bruger de fleste Linux-distributioner - herunder Ubuntu - ikke automatisk TRIM. Android brugte heller ikke TRIM til Android 4.3.

    Men der er en anden måde at bruge TRIM på. I stedet for at udstede TRIM-kommandoen hver gang en fil slettes, kan FITRIM-funktionen bruges. Dette sker via kommandoen fstrim. I det væsentlige analyserer fstrim-kommandoen filsystemet og informerer drevet, hvilke blokke der ikke længere er nødvendige, så drevet kan kassere dem. Dette gør TRIM fra en realtidsoperation til en planlagt opgave. Fstrim kan med andre ord udføre TRIM som et cronjob. Der er ingen grund til ikke at gøre dette. Det vil ikke bremse noget; det er bare en anden housecleaning opgave, systemet skal udføre på en tidsplan.

    Faktisk er dette den tilgang, som Google tog med Android 4.3. Android kører simpelthen en fstrim-opgave lejlighedsvis for at TRIM filsystemet, hvilket løser problemet, der nedsætter alle de originale Nexus 7s.

    Ubuntu ser også på at aktivere TRIM automatisk ved at have systemet løbende køre fstrim. Dette vil forhåbentlig være en del af Ubuntu 14.04, så Ubuntu-brugere vil ikke blive tvunget til at håndtere SSD-ydeevneforringelse eller køre fstrim alene.

    Sådan aktiveres TRIM

    Vi anbefaler ikke at montere dine filsystemer med "kassere" -operationen, da dette sandsynligvis vil resultere i langsommere ydeevne ved normal brug. Du kan dog selv bruge TRIM ved at lejlighedsvis køre kommandoen fstrim eller oprette din egen cronjob, der kører fstrim på en tidsplan.

    For at TRIM din SSD på Ubuntu, skal du blot åbne en terminal og køre følgende kommando:

    sudo fstrim -v /

    Du kan køre ovenstående kommando lejlighedsvis for at forhindre ydeevneforringelse på SSD'er. Hvor ofte du skal køre det afhænger af, hvor ofte filer slettes fra din SSD. Du får vist en fejl, hvis du forsøger at køre kommandoen med et drev, der ikke understøtter TRIM.

    Hvis du vil køre TRIM regelmæssigt, kan du simpelthen oprette en cronjob, der kører fstrim-kommandoen til dig. Sådan gør du et barebones cron job, der automatisk gør dette.

    Kør først følgende kommando for at åbne nano tekst editor med root tilladelser:

    sudo nano /etc/cron.daily/fstrim

    Indtast følgende kode i filen:

    #! / Bin / sh

    fstrim /

    Gem filen ved at trykke på Ctrl + O og tryk på Enter for at bekræfte. Tryk på Ctrl + X for at lukke nano efter at have gemt filen.

    Sidst, kør følgende kommando for at gøre scriptet eksekverbart:

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

    Ubuntu vil nu køre fstrim på en tidsplan, ligesom det gør andre systemvedligeholdelsesopgaver.


    Bemærk, at TRIM kun understøttes på moderne filsystemer, så du skal bruge noget som ext4 og ikke ext3 eller ext2. Hvis du ikke ved, hvilket filsystem du bruger, skal du ikke bekymre dig - ext4 er valgt som standard.

    Meget af dette råd gælder også for andre Linux-distributioner. Mens Linux implementerede TRIM-support i kernen for længe siden, synes dets TRIM-støtte aldrig at være blevet aktiveret som standard for typiske brugere i Linux-distributioner.

    Billedkredit: Mace Ojala på Flickr (beskåret)