Вече стана въпрос за някои оптимизации на операционната система, за да работи вашия SSD по-добре и по-дълго. Нещото, което продължава да ме учудва, е все още пълната липса на настройки по подразбиране за целта в популярните десктоп-ориентирани Linux дистрибуции. Оставям настрана ОС от фамилията Windows, където се стигна дори до там, че „не се препоръчва“ (разбирай – забранява се) използуването на предстоящата 7-ма версия на notebooks/netbooks с такива дискове... Просто без какъвто и да било коментар!
Но нека се върнем у нас, в Linux. Подразбиращата се файлова система в последните издания и на Fedora и Ubuntu вече е Ext4. Скоро ще ги последват и останалите. Даже, ако инсталирате от live CD Fedora 11 просто няма да ви бъде разрешено друго ( / е задължително форматирана с ext4). Ext 4, сама по себе си е голяма крачка напред в сравнение с предишната подразбираща се файлова система. Накратко казано – би било грехота да не се възползуваме от възможностите, които ни предоставя тя, но... как да комбинираме това с особеностите на SSD ? Няма да повтарям тук всички неща, писани в предишен мой пост и които в пълна степен важат и сега. Ще допълня само следното: ext4 ни предоставя функция за премахване на журнала (и оттам „опасното“ писане по фиксирани места върху SSD). Процедурата е много проста – стартирате си някакво live CD, без значение (лично аз използувам за такива сервизни дейности GParted), влизате като root и пишете следното нещо :
tune2fs -O ^ has_jurnal /dev/sdXX
Въпросното действие трябва да се извършва само върху не-монтирана файлова система, затова ни е необходим "жив" диск.
Всъщност такава възможност имаме и в ext3, строго погледнато (blush)... Защо ли не ми е хрумнало и преди това...? Предполагам на някои ще им се стори авантюристично да изключваме журнала – снижаваме значително сигурността на файловата система. Само ще отбележа следното – не забравяйте, че става въпрос за netbooks, чиято функция е: малък преносим компютър, осигуряващ ви само функционалност за дребни ежедневни дейности (сърфиране в мрежата, слушане на музика...). Така, че такъв компромис е напълно допустим. Да не забравяме, че имате и непрекъснато включена батерия, която ви предпазва и от ситуацията "внезапно прекъсване на захранването"...
Има само едно "леко" неудобство - инструментите от групата приложения e2fsprogs, са малко "старички" и няма да прочетат UUID от такава файлова система. Иначе казано, ако сте си инсталирали по-съвременна дистрибуция, където файловата система е определена чрез UUID - етикети, а такива са и Ubuntu и Fedora, след деактивиране на журнала системата няма да може да се стартира, поради невъзможност да идентифицира кореновия дял.
Това се преодолява лесно. Необходимо е да редактираме конфигурационния файл на grub - /boot/grub/grub.conf, както и /etc/fstab и да заменим UUID-идентификаторите на твърдите дискове с имената им като блокови устройства - /dev/sdXX.
моят блог - в него се пишат разни идеи и впечатления на тема Linux и изобщо интересни неща.
Показват се публикациите с етикет SSD. Показване на всички публикации
Показват се публикациите с етикет SSD. Показване на всички публикации
сряда, 29 юли 2009 г.
понеделник, 4 май 2009 г.
Някои особености при работата със SSD в Linux
SSD (Solid State Drives)-твърдотели дискови устройства - не знам на български как би било най-правилно да се преведе, но и не мисля да го правя, защото терминът доби популярност. Та - SSD са една от интересните новости в IT индустрията през последните десетина години. Те са устойчиви на удари и сътресения, консумират по-малко енергия, отделят по-малко топлина и са с много бърз достъп. Ако имате PC оборудван със SSD, също както повечето нетбуци от фамилията Еее PC, има няколко особености за по-добра работата с тях и удължаване на живота им, тъй като съвременните операционни системи, все още не са оптимизирани по подразбиране за работа с тях (изключвам тези, които са преинсталирани от производителя). Няма да се спирам тук на въпроса, защото темата на статията не е тази, но накратко най-неприятната особеност на твърдотелите дискове (освен цената им все още) е фиксирания брой записи, които могат да осъществят преди да дефектират. За най-разпространените устройства в момента тя е около 100000 (сто хиляди) цикъла... На пръв поглед цифрата говори и много и нищо, но характерното тук е, че програмата, осъществяваща работата на самото устройство на ниско ниво, разпределя физически записваната информация по такъв начин върху елементите на диска, че те да са натоварени равномерно във времето. Доста се изписа по този въпрос, откакто SSD станаха популярно решение, но на практика "животът" им значително надвишава живота на един HDD при нормална, ежедневна работа.
И така, ето няколко съвета, които ще дадем :
1.
За файлова система на вашия SSD е най-добре да предпочетете някоя от НЕ-журналните (примерно ext2)... Поддържането на журнала в една такава ФС е свързано с писане върху фиксирани места по нея, което е в разрез със споменатото по-горе изискване за намаляване до минимум на писането по диска (правя тук забележката, че това не е общоприето мнение - в преинсталирания Xandros на Еее PC 901 user-дялът е форматиран с ext3...).
Освен това, най-добре е такова устройство да се монтира с опцията noatime. По подразбиране Linux ще записва вашите файлове с активирана опция -last accessed time. Това би намалило живота на вашия диск увеличавайки броя на записванията, тъй като независимо от това дали сте отворили даден файл само за четене, след приключване на работата по него файловата система ще обнови атрибута му за време/дата. Опцията noatime ще изключи този режим. Къде става това? Естествено във файла /etc/fstab...
2.
За да спестим допълнително писане по диска можем да си създадем рамдиск (особено тези, които имат повече от 1GB RAM) и да го посочим, като място използувано за временните файлове. Отворете пак /etc/fstab и добавете следния ред в него :
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
рестартирайте, и сега можете да проверите – при изпълнение на df в списъка на монтираните системи ще видите нещо такова :
tmpfs 513472 30320 483152 6% /tmp
3.
Firefox по подразбиране използува за кеш на временните си файлове домашната ви папка. Премествайки този кеш за съхранение във вече създадения рамдиск не само ще намалите писането по физическото устройство, но и ще ускорите работата на браузъра, понеже достъпа до RAM е доста по-бърз от този до която и да е външна памет. Отворете about:config на Firefox. С десен клик на мишката в полето създавате нов string value с име – browser.cache.disk.parent_directory и и задавате стойност /tmp.
4.
В Linux подразбиращия се режим на четене/запис на данните ( I/O scheduler) е cfg - completely fair queuing . По-общо казано това означава, че ресурсите между приложенията са разпределени по начин еквивалентен на дяла им от общото процесорно време. Този режим работи добре при обикновени HDD дискове, но досегашния опит е показал, че при SSD създава проблеми. Да кажем, при записване на голям файл, всички останали приложения ще изчакват, докато завърши тази операция, което води до неприятни увисвания на системата на моменти. Това е по-скоро недостатък, присъщ на Eee PC, защото SSD на който е личната директория на потребителя (sdb) е малко бавен, все пак е гонен нисък ценови сегмент на нетбука...
Режимът може да се промени, без да се рестартира компютъра, ето как. Първо проверете режимите, които имате на разположение:
cat /sys/block/sdb/queue/scheduler
Тук sdb може да е и друго, според случая. Обикновено имате четири възможности, като използувания режим е ограден с квадратни скоби (резултатът от предишната команда) :
noop anticipatory deadline [cfq]
Две от тях са по-добрия избор при работа със SSD: noop и deadline (при noop всички приложения се подреждат на, един вид проста опашка по реда на заявка, докато deadline прилага критерия "краен срок за приключване на I/O операция" и сортира приложенията, освен по реда на заявка и по него) . Приложенията пак ще изчакват, но само за няколко секунди докато диска е отново свободен. Не е кой знае какво, но е по-добре от cfg... Правя тук уговорката, че давам доста елементарни определения за режимите на scheduler в една Linux-система, доколкото е необходима известна яснота за какво става дума.
Ето как да зададем нов режим :
echo deadline > /sys/block/sda/queue/scheduler
Отбелязвам, че тази промяна трябва за се извърши само като root, при това не чрез sudo... Още нещо – за да остане това в сила при обновление на ядрото, защото повечето дистрибуции презаписват повечето такива настройки ще направим още нещо. Във файла menu.lst в /boot/grub/ има един ред с параметри, които се пазят при ъпгрейд – редът kopt... изглежда така:
# kopt=root=UUID=6722605f-677c-4d22-b9ea-e1fb0c7470ee ro
В никакъв случай не махайте знака за коментар !!! Само в края на реда добавете следното :
elevator=deadline
Запазете и затворете файла, след това не забравяйте update-grub...
Ако случайно сте любопитни да узнаете колко е бърз вашия SSD, може да направите следния тест :
sudo hdparm -t /dev/sdb
Абонамент за:
Публикации (Atom)