Начална » как да » Ubuntu не TRIM SSDs по подразбиране Защо не и как да го активирате сами

    Ubuntu не TRIM SSDs по подразбиране Защо не и как да го активирате сами

    Ubuntu иска да активира TRIM за SSD по подразбиране в Ubuntu 14.04. С други думи, Ubuntu вече не използва TRIM, така че SSD се забавя с течение на времето. Но защо Ubuntu вече не използва TRIM?

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

    Защо е важно TRIM

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

    Твърди устройства (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 SSDs по подразбиране е, че изпълнението на 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 и други дистрибуции на Linux не позволяват „отхвърляне“ по подразбиране за вашите файлови системи, но и не трябва.

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

    Тъй като 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.

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

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

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

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

    sudo fstrim -v /

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

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

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

    sudo nano /etc/cron.daily/fstrim

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

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

    fstrim /

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

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

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

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


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

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

    Кредит за изображението: Mace Ojala на Flickr (изрязано)