Ubuntu TRIM ikke SSDs som standard: Hvorfor ikke og hvordan du aktiverer det selv

Innholdsfortegnelse:

Ubuntu TRIM ikke SSDs som standard: Hvorfor ikke og hvordan du aktiverer det selv
Ubuntu TRIM ikke SSDs som standard: Hvorfor ikke og hvordan du aktiverer det selv

Video: Ubuntu TRIM ikke SSDs som standard: Hvorfor ikke og hvordan du aktiverer det selv

Video: Ubuntu TRIM ikke SSDs som standard: Hvorfor ikke og hvordan du aktiverer det selv
Video: Upgrading our WORST Wifi Setup - NETGEAR Nighthawk Pro Gaming Router Showcase - YouTube 2024, April
Anonim
Ubuntu ønsker å aktivere TRIM for SSD som standard i Ubuntu 14.04. Ubuntu bruker med andre ord ikke allerede TRIM, slik at SSD senker seg over tid. Men hvorfor bruker Ubuntu ikke allerede TRIM?
Ubuntu ønsker å aktivere TRIM for SSD som standard i Ubuntu 14.04. Ubuntu bruker med andre ord ikke allerede TRIM, slik at SSD senker seg over tid. Men hvorfor bruker Ubuntu ikke allerede TRIM?

Denne nyheten vil trolig komme som en overraskelse for mange mennesker, som antok at Ubuntu og andre Linux-distribusjoner allerede brukte TRIM. TRIM forhindrer SSDs fra å bremse ned over tid og er en nødvendig del av SSD vedlikehold.

Hvorfor TRIM er viktig

Vi har dekket hvorfor TRIM er viktig før. Når du sletter en fil på en gammel, magnetisk harddisk, markerer datamaskinen bare den filen som slettet. Filens data stikker rundt på harddisken - derfor kan slettede filer bli gjenopprettet. Datamaskinen vil etter hvert overskrive de slettede filene når den overskriver sine sektorer med nye data.

Solid State-stasjoner (SSD-er) fungerer annerledes. Når du skriver en fil til en SSD, må datamaskinen først slette data i sektorene den skriver dataene til. Det kan ikke bare "overskrive" sektorene i en operasjon - det må først rydde dem og skrive til de tomme sektorene.

Dette betyr at en SSD vil bremse over tid. Skrive til SSDs sektorer vil være rask første gang. Når du har slettet noen filer og prøver å skrive til det igjen, vil det ta lengre tid. Dette er en stor del av grunnen til at Googles opprinnelige Nexus 7 bremset så mye over tid. Google fikserte dette ved å implementere TRIM i Android 4.3. (Android bruker også Linux-kjernen.)

Med TRIM aktivert, forteller operativsystemet SSD hver gang det sletter en fil. Disken kan deretter slette sektorene som inneholder filens innhold, så skriving til sektorene vil være rask i fremtiden.

Med andre ord, hvis du ikke bruker TRIM, vil SSD din sakte over tid. Derfor bruker moderne operativsystemer, inkludert Windows 7+, Mac OS X 10.6.8+ og Android 4.3+ TRIM. TRIM ble implementert i Linux tilbake i desember 2008, men Ubuntu bruker det ikke som standard.

Hvorfor ikke Ubuntu TRIM som standard?

Den virkelige grunnen til at Ubuntu ikke er TRIM SSD-er som standard, er at Linux-kjernens implementering av TRIM er sakte og resulterer i dårlig ytelse ved normal bruk.

Windows 7 og 8 sender Windows en TRIM-kommando hver gang den sletter en fil, og forteller stasjonen for å umiddelbart slette biter av filen. Linux støtter dette når filsystemer er montert med "kaste" -alternativet. Ubuntu - og andre distribusjoner - gjør det imidlertid ikke som standard for ytelsesårsaker.

OpenSUSEs wiki inneholder detaljert informasjon fra en utvikler som er mer kjent med Linux-kjernen enn vi er. Det er litt datert, men er sannsynligvis fortsatt sant når det gjelder ytelse:

“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]

Med andre ord håndterer Linux-kjernen slike sanntids-TRIM-kommandoer på en langsom, uoptimert måte. Aktiverer TRIM likt hvordan Windows gjør det - det vil si ved å bruke "kaste" -alternativet - resulterer i at systemet faktisk blir langsommere enn om ikke TRIM ble brukt i det hele tatt. Ubuntu og andre Linux-distribusjoner aktiverer ikke "kaste" som standard for filsystemene dine, og du bør heller ikke.

Image
Image

Det er en annen måte

Fordi Linux-kjernens realtids "kaste" TRIM-operasjon ikke fungerer bra, bruker de fleste Linux-distribusjoner - inkludert Ubuntu - ikke TRIM automatisk. Android brukte heller ikke TRIM til Android 4.3.

Men det er en annen måte å bruke TRIM på. I stedet for å bare utstede TRIM-kommandoen hver gang en fil slettes, kan FITRIM-funksjonen brukes. Dette skjer via fstrim-kommandoen. I hovedsak analyserer fstrim-kommandoen filsystemet og informerer stasjonen hvilke blokker ikke lenger er nødvendig, slik at stasjonen kan kaste dem bort. Dette gjør TRIM fra en sanntidsoperasjon til en planlagt oppgave. Fstrim kan med andre ord utføre TRIM som en cronjobb. Det er ingen grunn til ikke å gjøre dette. Det vil ikke bremse noe; Det er bare en annen housecleaning oppgave systemet må utføre på en tidsplan.

Faktisk er dette tilnærmingen Google tok med Android 4.3. Android kjører bare en fstrim-oppgave av og til for å TRIM filsystemet, og løser problemet som reduserte alle de originale Nexus 7-ene.

Ubuntu ser også på å aktivere TRIM automatisk ved å ha systemet jevnlig å kjøre fstrim. Dette vil forhåpentligvis være en del av Ubuntu 14.04, slik at Ubuntu-brukere ikke blir tvunget til å håndtere SSD-ytelsesforringelse eller kjøre fstrim alene.

Slik aktiverer du TRIM

Vi anbefaler ikke å montere filsystemene dine med "kaste" -operasjonen, da dette vil sannsynligvis resultere i lavere ytelse ved normal bruk. Du kan imidlertid bruke TRIM selv ved å kjøre fstrim-kommandoen eller skape din egen cronjob som kjører fstrim på en tidsplan.

Å TRIM SSD på Ubuntu, bare åpne en terminal og kjør følgende kommando:

sudo fstrim -v /

Du kan kjøre kommandoen ovenfor for å forhindre ytelsesforringelse på SSD-er. Hvor ofte du trenger å kjøre det, avhenger av hvor ofte filer slettes fra SSD. Du får se en feil hvis du prøver å kjøre kommandoen med en stasjon som ikke støtter TRIM.
Du kan kjøre kommandoen ovenfor for å forhindre ytelsesforringelse på SSD-er. Hvor ofte du trenger å kjøre det, avhenger av hvor ofte filer slettes fra SSD. Du får se en feil hvis du prøver å kjøre kommandoen med en stasjon som ikke støtter TRIM.

Hvis du vil kjøre TRIM regelmessig, kan du bare lage en cronjob som kjører fstrim-kommandoen for deg.Slik gjør du en barebones cron jobb som gjør dette automatisk.

Først kjør følgende kommando for å åpne nano tekstredigeringsprogrammet med root-tillatelser:

sudo nano /etc/cron.daily/fstrim

Skriv inn følgende kode i filen:

#!/bin/sh

fstrim /

Lagre filen ved å trykke Ctrl + O og trykk Enter for å bekrefte. Trykk Ctrl + X for å lukke nano etter lagring av filen.
Lagre filen ved å trykke Ctrl + O og trykk Enter for å bekrefte. Trykk Ctrl + X for å lukke nano etter lagring av filen.

Sist, kjør følgende kommando for å gjøre scriptet kjørbart:

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

Ubuntu vil nå kjøre fstrim på en tidsplan, akkurat som det gjør andre systemvedlikeholdsoppgaver.
Ubuntu vil nå kjøre fstrim på en tidsplan, akkurat som det gjør andre systemvedlikeholdsoppgaver.

Vær oppmerksom på at TRIM kun støttes på moderne filsystemer, så du trenger noe som ext4 og ikke ext3 eller ext2. Hvis du ikke vet hvilket filsystem du bruker, ikke bekymre deg - ext4 er valgt som standard.

Mye av dette rådet gjelder også for andre Linux-distribusjoner. Mens Linux implementerte TRIM-støtte i kjernen for lenge siden, ser det ut til at TRIM-støtten aldri har blitt aktivert som standard for typiske brukere i Linux-distribusjoner.

Anbefalt: