Титла: Инсталация на линукс върху SD карта и увеличаване на производителността? Публикувано от: abadon в Apr 15, 2011, 09:52 Здравейте,
Вчера се заговорихме с един колега за хибридните дискове като този ($2) и затова колко увеличават производителността, също така че не могат да се намерят по нашите географски ширини. Това го казвам от личен опит тъй като вече 3 седмица чакам доставка на такъв от САЩ след поръчка при едни приятели български системни асемлатори, след като други две големи компании с добро име вече ми отказаха с мотива, че нито вносителя на Seagate в БГ, нито този за Европа има такива дискове в наличност. И затова се сетих за ето тази стара тема от преди 4 години когато флашките бяха значително по-скъпи ($2) след което да си я сложа в картовия четец на лаптопа, и върху нея да си инсталирам по нормален начин един линукс, като после ще си mount-на нормалния хард диск за storage само. Затова въпроса ми е някой правил ли е подобно нещо? Има ли ефект в производителността? Струва ли си да се вложат повече пари в такива скъпи sd карти като тези на SanDisk (които дефакто направиха този стандарт) или същата работа вършат и по евтините им събратя от същия клас 10? Как стои въпроса с дълготрайността на такива карти при такава интензивна употреба от OS. Въобще който има подобен опит ще се радвам да сподели своите наблюдения. Предварително благодаря! Eто каква е идеята ми сега да си взема една 8GB SDHC, SanDisk Extreme® ($2) или някой по-евтин събрат като тези ($2) или тази ($2) Титла: Re: Инсталация на линукс върху SD карта и увеличаване на производителността? Публикувано от: vikktor в Apr 15, 2011, 10:46 Здравей,
Относно хибридния - http://www.multirama.bg/product/8125/tvard-disk-seagate-xt-320-gb-2-5-sata.html Щом го има в онлайн каталога би трябвало да могат да го доставят(само предполагам).А за инсталацията в/у такава карта според мен е безмислено.Картата на сандиск дава максимум 30мб/с четене, което си е малко.За пример Seagate Momentus XT/7200.4 дават към 100-105мб/с четене и 80-90мб/с на запис.Според мен какъв и хард да имаш в лаптопа, ще е по-бърз от сандиска.Но може и да греша. Титла: Re: Инсталация на линукс върху SD карта и увеличаване на производителността? Публикувано от: Naka в Apr 15, 2011, 11:46 Цитат Как стои въпроса с дълготрайността на такива карти при такава интензивна употреба от OS. Много зле. Флаш паметта се износва доста бързо и много често дава проблеми и развива Bad "сектори". Обикновенно дават до около 1 милион цикъла на клетка ... ама май това производителите са си го изсмучили от пръстите. Престави си някой сектор дето стои постоянно под 'FAT'(или inode, journal...) - таблицата. Понеже ОС-а непрекъснато пише там този сектор може да навърти 1 милион цикъла доста бързо. Проблема е и че флаш паметите са организирани на банки - 128кб , 256 кб.. и т.н. И ако трябва да запишеш например само едни бит се търка целият блок. Т.е. заради един бит се износват едновреммено 256 Kbyte-а. Заради тези проблеми всички флаш устройства изполват алгоритми за разпледеляне на изосването. http://en.wikipedia.org/wiki/Wear_leveling Е предполагам че при разните по-специални флаш устройства като SSD специално е обърнато внимание на тези проблеми и те са много по-надежни да съхраняват информация. Цитат Eто каква е идеята ми сега да си взема една 8GB SDHC, SanDisk Extreme® или някой по-евтин събрат като тези или тази И аз искам да питам. Това гола плаш памет ли е? Т.е. има ли контролер който да прави Wear_leveling? И като какво се монтира такава памет. USB-? Кой ще го прави този Wear_leveling. Мисля че даже имаше в кернела и някаква специална Флаш-файлова система направена точно за това? Титла: Re: Инсталация на линукс върху SD карта и увеличаване на производителността? Публикувано от: v_badev в Apr 15, 2011, 14:07 В linux има няколко такива файлови системи (jffs2, ubifs и logfs), но както е написал vikktor, SD картите са доста по-бавни от твърдите дискове. SanDisk Extreme® са клас 10, което е около 80Mb трансфер. Това е доста под възможностите дори и на нормален твърд диск работещ на 5400 оборота.
Според мен в упражнението има смисъл само ако сглобяваш компютър в който не трябва да има движещи се части (примерно за автомобил). Титла: Re: Инсталация на линукс върху SD карта и увеличаване на производителността? Публикувано от: abadon в Apr 15, 2011, 14:33 @Victor - аз искам модела който е с 500G нормална част и 4G SSD.
[b@]Naka[/b] - Това е добър въпрос за тази 8GB SDHC, SanDisk Extreme® не знам каква е. Ще го проверя и ще пиша, че и на мен ми се стори странно скъпа двойно над събратята и. @v_badev - И моята идея беше такава да ползвам jffs2. Ще ги чекна и другите две файлови системи които не са ми известни на този етап. Иначе относно четенето/писането да и аз го мислех, че дори на нормален диск му дават по-големи стойности, но пък от друга страна флашовете имат по-бързо време за търсене или поне така показват мойте basic тестове които направих на лаптопа си със microSD картата от телефона си, която е от клас 4 значително по-бавна от клас 10 моделите. Ето какво показват те сравнено със диска на лаптопа ми: SD картата е форматирана със fat32 (просто не ми се занимава да я преформатирам) срещу дял от диска на лаптопа ми форматирана със esx4. SD card: ./seeker /dev/sdb1 Seeker v2.0, 2007-01-15, http://www.linuxinsight.com/how_fast_is_your_disk.html Benchmarking /dev/sdb1 [3772MB], wait 30 seconds.............................. Results: 584 seeks/second, 1.71 ms random access time Hard disk: ./seeker /dev/sda3 Seeker v2.0, 2007-01-15, http://www.linuxinsight.com/how_fast_is_your_disk.html Benchmarking /dev/sda3 [100000MB], wait 30 seconds.............................. Results: 64 seeks/second, 15.59 ms random access time не ми се занимава да ти пиша повече обяснения затова ти пействам output-а от конзолата ще разбереш сам: root@abadon:/home/genko# gcc -o seekmark -lpthread seekmark-0.3.c root@abadon:/home/genko# chmod +x seekmark root@abadon:/home/genko# ./seekmark -t 1 -s 1000 -f /dev/sdb1 Benchmarking against /dev/sdb1 3772 MB Spawning worker 0 to do 1000 seeks thread 0 completed, time: 1.80, 554.32 seeks/sec, 1.8ms per request total time: 1.80, time per request(ms): 1.804 554.32 total seeks per sec, 554.32 seeks per sec per thread root@abadon:/home/genko# ./seekmark -t 2 -s 1000 -f /dev/sdb1 Benchmarking against /dev/sdb1 3772 MB Spawning worker 0 to do 1000 seeks Spawning worker 1 to do 1000 seeks thread 1 completed, time: 7.36, 135.94 seeks/sec, 7.4ms per request thread 0 completed, time: 7.41, 134.93 seeks/sec, 7.4ms per request total time: 7.41, time per request(ms): 3.706 269.83 total seeks per sec, 134.92 seeks per sec per thread root@abadon:/home/genko# ./seekmark -t 1 -s 1000 -f /dev/sda3 Benchmarking against /dev/sda3 100000 MB Spawning worker 0 to do 1000 seeks thread 0 completed, time: 14.79, 67.63 seeks/sec, 14.8ms per request total time: 14.79, time per request(ms): 14.787 67.63 total seeks per sec, 67.63 seeks per sec per thread root@abadon:/home/genko# ./seekmark -t 2 -s 1000 -f /dev/sda3 Benchmarking against /dev/sda3 100000 MB Spawning worker 0 to do 1000 seeks Spawning worker 1 to do 1000 seeks thread 1 completed, time: 27.90, 35.84 seeks/sec, 27.9ms per request thread 0 completed, time: 28.00, 35.72 seeks/sec, 28.0ms per request total time: 28.00, time per request(ms): 13.998 71.44 total seeks per sec, 35.72 seeks per sec per thread root@abadon:/home/genko# Пращам и програмчетата Титла: Re: Инсталация на линукс върху SD карта и увеличаване на производителността? Публикувано от: v_badev в Apr 15, 2011, 17:04 Явно си заслужава да се направи един по-обстоен бенчмарк с реално инсталирана система на sd карта (може би с Phoronix Test Suite ($2)). Ще е интересно дали доста по-малкото време за търсене на SD картите компенсира по-бавният трансфер.
Титла: Re: Инсталация на линукс върху SD карта и увеличаване на производителността? Публикувано от: abadon в Apr 15, 2011, 21:08 Ето и някой допълнителни тестове които направих с fio:
SD Micro Card Class 4: Цитат fio random-read-test.fio HDD Цитат # fio random-read-test.fio SD Micro Card Class 4: Цитат fio random-read-test-aio.fio HDD Тука нещо ми fail-на но не можах да разбера защо :( Цитат fio random-read-test-aio.fio Ще разгледам и за технологиите които е писано по-нагоре, като примерно Wear leveling-а. Това си мисля ако wear leveling-а не може да се подкара дали няма да се забърза работата, ако се премести журнала на файловата система на флашката на tmpfs в RAM-а примерно и си направи човек едно скриптче което когато си гаси компютъра да му синква нещата от tmpfs на флашката. Също така интересен ми е въпроса какво би станало ако журнала на файловата система се загуби, тъй като не съм изпадал в такава ситуация. Титла: Re: Инсталация на линукс върху SD карта и увеличаване на производителността? Публикувано от: radolin в Apr 15, 2011, 23:22 Относно wear leveling-a няма какво да се притесняваш. Всички USB флашки или SD карти имат вграден контролер, който се грижи за това. Тези JFFS, UBIFS и т.н. се ползват само когато работиш директно с гол флаш чип, или т.нар MTD (Memory technology devices).
За файлова система ext3/ext4 е ОК. Вече ако искаш може да мислиш някакви варианти за намаляне на писанията изобщо, като монтиранe с noatime и изключване на журнала. Слагането на журнала в РАМ диск е обезмисля неговата функция, така че ако толкова гониш бързодействие по-добре просто го изключи. За тестовете ти със seek time - ами при флаш паметта реално няма такъв. Това е времето през което хард диска позиционира главата на точното място и изчаква плочата да се завърти за да прочете даден сектор. Титла: Re: Инсталация на линукс върху SD карта и увеличаване на производителността? Публикувано от: Naka в Apr 16, 2011, 15:30 Цитат Това си мисля ако wear leveling-а не може да се подкара дали няма да се забърза работата, ако се премести журнала на файловата система на флашката на tmpfs в RAM-а примерно и си направи човек едно скриптче което когато си гаси компютъра да му синква нещата от tmpfs на флашката. Това да се премести журнала на друго устройство е изключително важно. И аз съм се замислял много сериозно за това. Обикновенно каквото съм чел по форумите препоръчват флаш памет да се монтира само като EXT2 или FAT защото няма журнал. noatime е също изключелно важно. Цитат Всички USB флашки или SD карти имат вграден контролер, който се грижи за това За USB-флашките да всичките имат. Но не съм сигурен как стои въпроса с SD карти-те и кой го прави. Има ли изобщо? Изобщо не мисля че много по-добрият seek time ще ускори работите. Много по важен е суровият постояннен трансфер. Sustained transfer при хардовете. Имаше много голяма разлика в производителнотта когато хардовете бяха около 30 Mbyte/sec .. след това станаха 60-80 Mbyte/sec а сега са 120 Mbyte/sec. Много е забележимо. Титла: Re: Инсталация на линукс върху SD карта и увеличаване на производителността? Публикувано от: abadon в Apr 16, 2011, 19:26 Относно wear leveling-a няма какво да се притесняваш. Всички USB флашки или SD карти имат вграден контролер, който се грижи за това. Сега се порових из нета и установявам, че май само най-новите SD карти от клас UHS-I ($2) го имат. За този клас разбрах едва сега като почнах да търся повече информация и ревюта на SDHC, SanDisk Extreme® ($2) От това което прочетох от предния линк и от още няколко места едно от които официална сайта на SanDisk разбирам, че тази карта има само ESP Technology (Enhanced Super-Parallel Processing Technology) правеща това: Цитат Yoram Cedar, SanDisk's senior vice-president of engineering, said, "SanDisk has developed a new ESP (Enhanced Super-Parallel Processing) technology that gives our new SanDisk Extreme III line its performance advantages. ESP technology is a major technology breakthrough that combines our in-house design of both NAND flash memory chips and controller chips using advanced 32-bit RISC processing and leading edge algorithms. Our engineers worked closely with major camera manufacturers in developing our new ESP technology." А вече при по-новия събрат SanDisk Extreme® Pro™ SDHC™ UHS-I ($2) се споменава за това: Цитат Extreme reliability and endurance, the SanDisk Extreme® Pro™ SDHC™ UHS-I Power Core™ Controller’s firmware increases endurance through wear leveling. The Power Core controller’s advanced Error Correction Code (ECC) engine improves overall data integrity and reliability of the card during read and write. Друго нещо което не мога да разбера ясно са тези скорости х ето примерно тази Kingston SDHC UHS-I UltimateXX ($2) пищат Цитат Performance: 233x – up to 60MB/sec. read, and 35MB/sec. write а при по-стария модел SanDisk Extreme® SDHC™ ($2) оферират Цитат Extreme speed at up to 30MB/second read/write (200X)* Тук съм объркан вече колко е 1х не е ли равно на 150Kb? Иначе от това което намерих в нета за целта на бързодействието май най-добре е да се ползва тази карта Delkin Elite 633X UHS-I SDHC ($2) която ми изглежда най-нов модел и която според производителя има скорост от "633X, което ще рече до 95MB/s скорост на четене и до 80MB/s скорост на запис." и която има Error Correction Code (ECC) и Wear Leveling, Цитат на: Naka Изобщо не мисля че много по-добрият seek time ще ускори работите. Много по важен е суровият постояннен трансфер. Sustained transfer при хардовете. А този трансфер няма ли да падне заради по-високия seek time ако имаш фрагментация и/или няколко паралелни запитвания за четене/писане? Друго нещо което се сетих е как би се отразило ползването на SD карта на батерията на лаптопа? Примерно аз когато съм на работа почти не ползвам нищо от запаметената информация на хард диска а си ползвам основно инсталирания софтуер като ssh, remote desktop и браузър. В такива моменти SD картата няма ли да ползва по-малко енергия от стандартен хард? Също така ако няма заявки към харда той дали няма да си паркира главите и да ползва по-малко енергия? Титла: Re: Инсталация на линукс върху SD карта и увеличаване на производителността? Публикувано от: Naka в Apr 16, 2011, 21:22 Сетих се още нещо.
Флаш паметите работят много лошо заради I/O_scheduler-a който е по дефаулт в кърнела (заради стандартните хард дискове). Просто при тях няма глави и няма какво да се оптимизира. Най добре работеха при Deadline scheduler или без scheduler. Имаше някъде един пост тук, дето бях писал всичко относно scheduler-а и флаш паметите. Относно това ESP (Enhanced Super-Parallel Processing) technology мисля си че много от рекламираните като бързи флаш устройства правят нещо подобно. Т.е. не е кой знае каква революционна технология. Вместо да има само един чип флаш памет има няколко и контролера чете едновременно и от всичките. Тогава скоростта на трансфер няма да е колкото е ограничението на 1 чип а ще е X броя на чиповете. Нещо подобно е на ускортението което се получва при RAID масивите. Титла: Re: Инсталация на линукс върху SD карта и увеличаване на производителността? Публикувано от: abadon в Apr 17, 2011, 13:40 Прочетох ти поста тук ($2) което ме накара да се позамисля за Линукс I/O scheduler-ите и намерих тази статия ($2) която много добре обяснява работата на Linus Elevator (който беше в Linux 2.4 kernels), Deadline и Anticipatory. Не можах да намеря хубава статия синтезираща на куп всичко около Noop scheduler-a ($2) и cfq scheduler-a ($2)
Ето какво показват тестовете на всички scheduler-и със въпросната ми SD card-та class 4 от фото апарата ми. Първия тест пише 256МВ файл на нея. Втория тест прочита предния новосъздаден файл. Третия тест прочита всички 456 снимки намиращи се на тази карта. Ето какво показват: Noop scheduler: Цитат root@abadon:/mnt# echo noop > /sys/block/sdb/queue/scheduler Anticipatory scheduler: Цитат root@abadon:/mnt# echo anticipatory > /sys/block/sdb/queue/scheduler Deadline scheduler: Цитат root@abadon:/mnt# echo deadline > /sys/block/sdb/queue/scheduler Cfq scheduler: Цитат root@abadon:/mnt# dd if=/dev/zero of=file bs=1M count=256 Въпреки че в нета пишат, че със SSD дискове е най-добре да се ползва Noop scheduler аз мисля, че най-добре е за SD карти и flash-ки да се ползва Anticipatory scheduler-а, който се справя най-бързо с писането, както се вижда от направените резултати. |