C, PHP, VB, .NET

Дневникът на Филип Петров


* Оптимизиране на система със SSD диск

Публикувано на 06 февруари 2011 в раздел Общи работи.

Компютърът ми вкъщи започна да се „влачи“ сериозно напоследък и ставаше все по-дразнещо. Нищо чудно, след като вече е на няколко години, а новия софтуер не прощава на производителността. Бях изправен пред дилемата да направя „голям ъпгрейд“ (което означава ново дъно, процесор и рам, защото старите са неизползваеми) или да направя нещо „по-хитро“. И мисля, че го направих – купих си ето този SSD хард диск:

Предимствата на SSD дисковете пред нормалните HDD са очевидни – по-дълъг живот, изключително по-бързи, напълно тихи, почти 0ms достъп до данните и по-студени. Естествено безплатен обяд няма и имат един голям недостатък – цената. На цената на този 60GB SSD на Corsair можех да си взема два обикновени HDD по терабайт. В случая обаче целта не беше увеличаване на дисковото пространство, а бързодействие. И беше постигната!

Тук искам да отбележа някои важни неща, които ще ви помогнат „да изтискате максималното“ от вашата система. Особено ако използвате като мен стар Windows (XP), то SSD диска стандартно няма да е толкова бърз, колкото би трябвало да е. Затова ето няколко важни съвета (повечето са валидни и за по-нови версии Windows). Следвайте инструкциите на свой собствен риск (за оплаквания от типа „ти ми прецака Windows-а“ не нося отговорност):

1. Включете AHCI преди инсталиране на Windows

Не казвайте, че не съм предупредил – проверете дали диска ви използва максималния възможен трансфер на SATA II порта, на който сте го включили. На по-старите BIOS това е опцията „enhanced“. На по-новите би трябвало да си има избор на AHCI. Ако не направите това, то Windows ще се инсталира използвайки стандартен ATA100/133 драйвер и после усилията ви да го смените (независимо какво е сложено в BIOS) ще бъдат големи и неприятни (най-лесното като, че ли е преинсталация).

2. Инсталирайте Windows и всички програми на SSD диска

Разумно е да сложите файловете си (филми, музика, документи) на стария HDD диск, а софтуера на SSD диска. Причината естествено е в големината на устройството (не сте решили да давате хиляди левове за огромен SSD диск, нали?). От SSD диска вие ще спечелите главно от изключително бързия достъп до файловете и високата скорост на четене. Това е важно при стартиране на програми и малко по-маловажно при четене на друга съхранена информация.

3. Направете си RAM Drive за temp файлове

SSD дисковете имат слаба производителност при запис на много и малки файлове (пак е по-бърз от HDD, но с малко). Поради тази причина е добре да преместите част от файловете на системата си на HDD или още по-добре на RAM Drive. Второто е препоръчително ако имате поне 2GB RAM или повече. Има всякакви програми за правене на RAM Drive – потърсете в търсачката. Отделете например 512MB (обикновено ще ви бъдат достатъчни). След това:

3.1. Преместете „temp“ директориите на Windows на RAM диска: дайте „properties“ на My Computer и после Advanced > Environment variables. На „temp“ и „tmp“ под „User variables“ сложете като стойност директория от RAM диска (например при мен R:\Temp). Направете същото за „temp“ и „tmp“ директориите от „System variables“;

3.2. Temporarily internet files (за Internet Explorer): отворете IE, отидете на Tools > Internet Options > Settings (под „Browsing History“). Натиснете на „Move Folder“ и изберете RAM диска. Задайте някаква разумна стойност от например 200MB. Имайте предвид, че използването на Temporarily Files за IE е НЕУДОБНО ВЪРХУ RAM DISK!!! Причината е, че ще бъдат изтривани всичките ви cookies при рестартиране на системата. Ако използвате активно IE (защо го правите?), то е добре да ги сложите на HDD диска, а не на RAM диска;

3.3. Cache файловете на Firefox: отворете Firefox и отидете на адрес „about:config“. С десен бутон дайте New > String, дайте име „browser.cache.disk.parent_directory“ и стойност „R:\temp“ или където и да е директорията на RAM диска. При Firefox го няма негативния ефект на изтриване на cookies (те се пазят другаде), затова поставянето на кеша на рам диска е чудесно решение.

Имайте все пак предвид, че при рестартиране на системата всичко от RAM диска ще бъде изтрито! Затова той е подходящ само и единствено за ненужни и временни файлове!

4. Преместете SWAP файла на HDD

Windows swap файла е един от традиционните „убийци“ на производителност на SSD дисковете. Затова е препоръчително да го преместите на HDD диска. Това се прави лесно – Properties на My Computer > Advanced > Settings (под Performance) > Advanced. Първо поставете „Memory Usage“ на „System Cache“ (това е друга добра оптимизация за SSD и го казвам сега, за да не се връщате пак на същото място). После натиснете „Change“. За SSD диска сложете „No paging file“. На HDD диска задайте някакви разумни фиксирани стойности (каквито ви препоръчва Windows обикновено са добър избор).

Някои хора преместват и swap файла на RAM диск, но това имайте предвид, че е изключително глупаво решение! Причината е, че swap файл се използва тогава, когато няма RAM памет. Да заделяте от RAM паметта, за да пишете в swap файл в RAM паметта е напълно безсмислено и всъщност забавящо действие!

5. Спрете prefetch

Това става по подразбиране в Windows 7, но не и в XP. Prefetch е оптимизация, която позволява по-бързо зареждане на системата, както и определени най-често използвани програми. За целта Windows записва много малки файлчета в C:\Windows\Prefetch директорията. Не само, че не помагат, а при SSD диск вредят! За целта отворете registry editor със Start > Run > regedit и отидете на:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters

Изберете EnablePrefetcher и го модифицирайте на REG_DWORD със стойност 0. После изтрийте файловете в директория C:\Windows\Prefetch.

6. Спрете defrag

Фрагментацията на файловете не е абсолютно никакъв проблем за SSD дисковете (причина – моменталния достъп до който и да е адрес от паметта). Поради тази причина програми като Defrag са напълно излишни. Особено ако по случайност са пуснати „да оптимизират“ системата ви автоматично. Така, че отидете в regedit и сложете следните настройки:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction\
Име: Enable
Тип: REG_SZ
Стойност: N

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OptimalLayout
Име: EnableAutoLayout
Тип: REG_DWORD
Стойност: 0

Defrag няма повече да тормози диска ви. Това ще ви спести още едно огромно главоболие от липсата на trim команда в XP и честата нужда от „почистване“, но затова по-надолу.

7. В Windows XP няма trim – какво да правя?

Да, липсата на trim е едно сериозно неудобство. Тя става налична от Windows 7, но софтуерно не се поддържа от по-старите (и типично по Microsoft-ски няма никога да се поддържа при тях). Така, че можете да очаквате, че след известно време на ползване бързодействието на хард диска ви ще спадне значително. По-точно – тогава, когато сте записвали общо повече от 60GB (ако сте с такъв диск като моя). Независимо, че вие сте изтрили файлове, те физически не са „почистени“ с trim от SSD диска. Затова практически контролера на диска не „знае“, че те са изтрити. Почистването ще започне тогава, когато има нужда от нов запис на файл, а пространството е свършило (според контролера). А той ще почиства точно толкова, колкото му трябва. И системата ще е малко по-бавна завинаги защото нямате „trim“…

… освен ако не направите един трик. На първо място се сдобийте с програмката MyDefrag. Когато усетите, че хард диска ви е намалил бързодействието си (паднал е от 230-250 MB/s на 160-180MB/s примерно), то с нея направете „Consolidate free space“ (няма нужда от пълен defrag!!!). След това изтеглете FreeSpaceCleaner, отбележете „with FF“ и натиснете на „Clean“ бутона. Ще трябва да почакате малко (в зависимост колко свободно място имате на диска). Програмката ще направи един гигантски файл на устройство C: (с име cleaner.dat), който ще заеме цялото дисково пространство и после… ще го изтрие. Елементарно и ефикасно. При следващо записване на файл на устройството garbage collector на контролера ще изтрие този файл и бързодействието на диска ще бъде върнато. Можете да правите тази операция примерно веднъж месечно. Всичко зависи как товарите системата.

8. Спрете System Restore

Направете това ако нямате навика да си „прецаквате системата“ сами. System Restore не е от най-добрите приятели на SSD диска. Всъщност моят плах опит показва, че при „прецакване на системата“ до състояние да не може да се оправи в нормалната си среда, то и System Restore не помага особено добре. Обикновено се стига до преинсталация.

За да изключите System Restore отидете на properties на My Computer > System Restore и изключете за всички дискове или поне за SSD диска.

9. Спрете Windows Search Service

На първо време се опитайте да НЕ инсталирате Windows Search 4.0 ако някой ви го предложи (например Windows Update сайта). Ако все пак сте се прецакали и сте го инсталирали – махнете го, той не ви помага на SSD диска. Всъщност пречи и то не малко.

Освен това допълнително отидете на My Computer и с десен бутон натиснете „Properties“ на SSD диска. Премахнете отметката „Allow indexing service to index this disk for fast file searching“. Да, това не ви трябва. Махнете отметките на всички дискове в системата. Вие колко пъти годишно използвате Start > Search? И да има индексиране при SSD диска няма да кой знае колко по-бързо.

А за най-сигурно отидете на Control Panel > Administrative Tools > Services и на „Indexing Service“ дайте „Disable“ и „Stop“. Това отменя нуждата от предишните действия в тази точка :)

10. Изключете „last accessed“

Гледате ли някога кога за последно сте отваряли даден файл, или просто го отваряте и виждате какво има в него? Е, ако не гледате датата на „last accessed“ на файловете, то можете лесно да го изключите. Отидете на „start > run“, напишете „cmd“ и натиснете OK. В командния ред напишете следната команда:

FSUTIL behavior set disablelastaccess 1

Натиснете Enter и всичко ще е готово.

11. Заключение

Всички операции направени по-горе са обратими! Ако не знаете как – записвайте си „какво е било“ и после връщайте в обратен ред ако нещо не ви хареса. А колкото до бързодействието – ето заключението от benchmark, който говори само за себе си:

Скоростите са малко по-ниски от нормалните за съвременни машини, но и в този вариант са ми предостатъчни. Практически максималното очаквано е с по 20MB/s повече при големите файлове. При такива скорости това си е направо пренебрежимо. Реално няма да повярвате колко бързо работи общо цялата система по този начин. Впрочем за сравнение ето резултатите от нормалния ми SATA II хард диск на 7200rpm:

П.С. Важно уточнение за хора, които евентуално биха си купили SSD диск на Corsair: НЕ купувайте M-серията. Те са стари, бавни и без trim, освен това с много „бъгове“ и без официален firmware update за тях. Купувайте само от F-серията или по-нови. Освен това не е зле да си проверите версията на firmware и да я обновите. Към момента най-новата за F-серията е 2.0. Дискове от F-серията произведени преди ноември 2010 идват с firmware 1.1 или 1.0.

 



14 коментара


  1. Страхотна статия, благодаря! :)

    А в случай с хибриден диск (4гб ssd + 320гб 7200rpm) кое би препоръчал като най-важно?

  2. 4GB SSD буквално за нищо не стига. Можеш да си инсталираш най-често използваните програми на този диск и това е максимума на полезност.

  3. Ясно. А как вървят цените на тези дискове?

  4. mertol каза:

    Хибриден означава че има 4гб кеш, а не да си инсталираш ОС на него. Харда прехвърля информацията от кеша когато е почти пълен. При нормална работа когато трябва многократно да се използват едни и същи файлове, те си стоят в кеша и все едно си със SSD.

  5. На мен ми излезе с 20 лева повече от 320гб на 7200 без SSD :)

  6. Значи си заслужава със сигурност! А относно оптимизация – едва ли има значително какво да се направи. Ако кешът не се „почиства“ при рестартиране/изключване на системата, то ще работи прекрасно.

  7. Валери каза:

    Благодаря, чудесна статия, актуална дори години след като е написана!

  8. Галин Добрев каза:

    Благодаря за хубавата статия :)
    Само една забелжка от мен,не местете темп файловете на уина в рамдиска. Поне при мен има негативен ефект, не може да се инсталират нови програми и скайпа не може да се логне. Иначе тези на браузърите много добре се чувстват на рамдиска :D

  9. Галин – само програми, които са с обем над капацитета на рам диска няма да могат да се инсталират. Ако рамдиска е достатъчно голям, няма проблем.

    За скайп не знам.

  10. Ако си дал много малък размер на ram drive-а, няма място да се разархивират програмите, които инсталираш.

  11. Галин Добрев каза:

    Незнам защо е така,с уин 7 съм. Но когато сложих папките темп на рамдиска и не можех да инсталирам нищо :( Скайпа не можах да го проумея,пробвах като истрих всичките му папки без инсталационата. Не искаше да се логне и това е. Предполагам че записва нещо и в тепм папките на уина за да се получи така.

  12. Галин Добрев каза:

    1 гигабайт мисля че не е малко. Може аз да бъркам нещо,но не ми се занимава пак да експерементирам. Сега държа в рамдиска само времените файлове на браузърите,пак е помощ. :)

  13. Не знам къде е бъга. При мен работи. Всъщност работеше, защото при последния ъпгрейд машината тъй или иначе си е супер бърза и зарязах правенето на ramdisk.

  14. Галин Добрев каза:

    И мойта машина е бърза,но така поне не драска по диска за времените файлове на браузерите :)Иначе ефект от зареждането на страниците видим няма,може би е някакви микросекунди които човек не може да усети.

Добави коментар

Адресът на електронната поща няма да се публикува


*