Ubuntu не TRIM SSD по подразбиране: Защо не и как да го активирате

Съдържание:

Ubuntu не TRIM SSD по подразбиране: Защо не и как да го активирате
Ubuntu не TRIM SSD по подразбиране: Защо не и как да го активирате

Видео: Ubuntu не TRIM SSD по подразбиране: Защо не и как да го активирате

Видео: Ubuntu не TRIM SSD по подразбиране: Защо не и как да го активирате
Видео: Home Wireless Network Setup: Not like your friends! - YouTube 2024, Може
Anonim
Ubuntu иска да активира TRIM за SSD по подразбиране в Ubuntu 14.04. С други думи, Ubuntu още не използва TRIM, така че SSD се забавя с течение на времето. Но защо Ubuntu вече не използва TRIM?
Ubuntu иска да активира TRIM за SSD по подразбиране в Ubuntu 14.04. С други думи, Ubuntu още не използва TRIM, така че SSD се забавя с течение на времето. Но защо Ubuntu вече не използва TRIM?

Тази новина вероятно ще бъде изненада за много хора, които приемаха, че Ubuntu и други дистрибуции на Linux вече използват TRIM. TRIM предотвратява забавянето на SSD в течение на времето и е необходима част от поддръжката на SSD.

Защо TRIM е важно

Покрихме защо TRIM е важно преди. Когато изтриете файл на стар магнитен твърд диск, компютърът просто отбелязва този файл като изтрит. Данните на файла се задържат на твърдия диск - затова изтритите файлове могат да бъдат възстановени. Компютърът в крайна сметка ще презапише изтритите файлове, когато презаписва секторите си с нови данни.

Solid-state drives (SSD) работят по различен начин. Всеки път, когато пишете файл в SSD, компютърът трябва първо да изтрие всички данни в секторите, в които пише данните. Той не може просто да "презапише" секторите в една операция - първо трябва да ги изчисти, след това да напише в празните сектори.

Това означава, че SSD ще се забави с течение на времето. Писането в секторите на SSD ще бъде бързо за първи път. След като изтриете някои файлове и се опитате да го напишете отново, това ще отнеме повече време. Това е голяма част от причината, поради която първоначалният Nexus 7 на Google се е забавил с течение на времето. Google определи това, като приложи TRIM в Android 4.3. (Android също използва ядрото на Linux.)

При активиране на TRIM операционната система съобщава на SSD всеки път, когато изтрива файл. Устройството може да изтрие секторите, съдържащи съдържанието на файла, така че писането в секторите ще бъде бързо в бъдеще.

С други думи, ако не използвате TRIM, SSD ще се забави с течение на времето. Ето защо съвременните операционни системи, включително Windows 7+, Mac OS X 10.6.8+ и Android 4.3+, използват TRIM. TRIM бе внедрен в Linux през декември 2008 г., но Ubuntu не го използва по подразбиране.

Защо не Ubuntu TRIM по подразбиране?

Истинската причина, поради която Ubuntu не е TRIM SSD по подразбиране, е, че изпълнението на TRIM на Linux ядрото е бавно и води до лоша производителност при нормална употреба.

При Windows 7 и 8 Windows изпраща команда TRIM всеки път, когато изтрива файл, като казва на диска да изтрие незабавно бита на файла. Linux поддържа това, когато файловите системи се монтират с опцията "изхвърляне". Въпреки това, Ubuntu и други дистрибуции не го правят по подразбиране поради причини, свързани с производителността.

Уикито на OpenSUSE съдържа подробна информация от разработчик, който е по-запознат с ядрото на Linux, отколкото ние сме. Това е малко датирано, но вероятно е истина, когато става въпрос за изпълнение:

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

С други думи, Linux ядрото обработва команди TRIM в реално време по бавен, неоптимизиран начин. Активирането на TRIM подобно на начина, по който Windows прави - т.е. използвайки опцията "отхвърляне" - води до факта, че системата всъщност става по-бавна, отколкото ако TRIM изобщо не бяха използвани. Ubuntu и другите дистрибуции на Linux не позволяват по подразбиране да се "отхвърлят" файловите ви системи и не би трябвало да ги използвате.

Image
Image

Има и друг начин

Тъй като операцията TRIM в реално време на "ядрото" на Linux ядрото не работи добре, повечето Linux дистрибуции - включително Ubuntu - не използват TRIM автоматично. Android също не използва TRIM до Android 4.3.

Но има друг начин да използвате TRIM. Вместо просто да издавате командата TRIM при всяко изтриване на файл, може да се използва функцията FITRIM. Това става чрез командата fstrim. По същество командата fstrim анализира файловата система и информира диска кои блокове вече не са необходими, така че устройството може да ги изхвърли. Това превръща TRIM от операция в реално време в планирана задача. С други думи, fstrim може да изпълни TRIM като cron задача. Няма причина да не правите това. Това няма да забави нищо; това е просто още една задача за почистване на дома, която системата трябва да изпълнява по график.

Всъщност, това е подходът, който Google предприе с Android 4.3. Android просто изпълнява задача fstrim от време на време да TRIM файловата система, като поправи проблема, който забави всички оригинални Nexus 7s.

Убунту също така разглежда възможността за автоматичното изпълнение на TRIM, като системата редовно работи. Това се надяваме да бъде част от Ubuntu 14.04, така че потребителите на Ubuntu няма да бъдат принудени да се справят с деградацията на SSD или да работят fstrim сами.

Как да активирате TRIM

Не препоръчваме монтирането на файловите системи с операцията "изхвърляне", тъй като това вероятно ще доведе до по-бавно изпълнение при нормална употреба. Можете обаче да използвате TRIM себе си, като от време на време изпълнявате командата fstrim или създавате свой собствен cronjob, който работи fstrim по график.

За да TRIM SSD на Ubuntu, просто отворете терминал и изпълнете следната команда:

sudo fstrim -v /

Можете да стартирате горепосочената команда от време на време, за да предотвратите деградация на производителността на SSD. Колко често трябва да го стартирате зависи от това колко често файловете се изтриват от SSD. Ще видите грешка, ако се опитате да изпълните командата с устройство, което не поддържа TRIM.
Можете да стартирате горепосочената команда от време на време, за да предотвратите деградация на производителността на SSD. Колко често трябва да го стартирате зависи от това колко често файловете се изтриват от SSD. Ще видите грешка, ако се опитате да изпълните командата с устройство, което не поддържа TRIM.

Ако искате да стартирате TRIM редовно, можете просто да създадете cronjob, който изпълнява командата fstrim за вас.Ето как да направите работа с barebones cron, която ще направи това автоматично.

Първо, изпълнете следната команда, за да отворите нано текстовия редактор с коренни разрешения:

sudo nano /etc/cron.daily/fstrim

Въведете следния код в файла:

#!/bin/sh

fstrim /

Запазете файла, като натиснете Ctrl + O и натиснете Enter, за да потвърдите. Натиснете Ctrl + X, за да затворите нано, след като сте запазили файла.
Запазете файла, като натиснете Ctrl + O и натиснете Enter, за да потвърдите. Натиснете Ctrl + X, за да затворите нано, след като сте запазили файла.

Накрая изпълнете следната команда, за да направите скрипта изпълним:

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

Сега Ubuntu ще стартира fstrim по график, точно както и други задачи по поддръжката на системата.
Сега Ubuntu ще стартира fstrim по график, точно както и други задачи по поддръжката на системата.

Обърнете внимание, че TRIM се поддържа само от съвременни файлови системи, така че ще ви трябва нещо като ext4, а не ext3 или ext2. Ако не знаете каква файлова система използвате, не се безпокойте - стандартно е избрано ext4.

Голяма част от този съвет се отнася и за други дистрибуции на Linux. Докато Linux внедрява поддръжка на TRIM в ядрото отдавна, подкрепата му TRIM изглежда никога не е била разрешена по подразбиране за типичните потребители в Linux дистрибуциите.

Препоръчано: