If-Koubou

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

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

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 поддържа това, когато файловите системи се монтират с опцията "Äúdiscard". Въпреки това, Ubuntu и други дистрибуции не го правят по подразбиране поради причини, свързани с производителността.

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

, "Изпълнението на ядрото в реално време в 11.2, 11.3 и 11.4 не е оптимизирано. Спецификацията. призовава за подреждане, подкрепящо векторен списък на интервалите на подреждане, но тъй като ядрото 3.0 е извикано само от ядрото с единичен обхват на изхвърляне / изрязване, а с настоящите SSD от средата на 2011 г. това доказано води до деградация на производителността вместо увеличаване на производителността. Има няколко причини да използвате ядрото в реално време, изхвърлете поддръжка с ядра преди 3.1. Не е известно кога функционалността на изхвърлянето на ядки ще бъде оптимизирана, за да работи успешно с настоящите поколения SSD. "[Източник]

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

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

Тъй като операцията 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

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

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

sudo fstrim -v /

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

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

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

sudo nano /etc/cron.daily/fstrim

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

#! / Хамбар / од

fstrim /

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

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

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

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

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

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

Image Credit: Mace Ojala на Flickr (изрязан)