Na Linuxe som si nastavil RAM disk jedným riadkom kódu a moje aplikácie sa nikdy nenačítavali rýchlejšie


Po rýchlej inštalácii Linuxu sa môj systém stále cítil trochu nepríjemne. Nešlo o pády programov ani o obvyklé chyby, ktoré očakávate pri čerstvej inštalácii. Veci boli jednoducho o niečo pomalšie, než by som chcel. Inštalácie sa zdali zamotané a pri bežných úlohách som zaznamenal menšie oneskorenia. Bolo to trochu mätúce, pretože využitie RAM bolo nízke a môj SSD bol v poriadku.

Takže som sa rozhodol zmeniť spôsob, akým môj systém spracováva neustále malé čítania a zápisy, a to prechodom na RAM disk, čo si vyžadovalo jediný záznam v fstab a presmerovanie niektorých vysokoaktívnych priečinkov. Je to najrýchlejšie, ako som kedy videl systém prejsť zo zaváhania na rýchlosť.

Kde RAM disk skutočne robí rozdiel

Nejde o všetko—ide o správny druh pracovnej záťaže






Keď používate RAM disk, efektívne zaobchádzate s časťou svojej pamäte ako s úložným diskom. Nie je to len technika na zlepšenie surovej rýchlosti. V skutočnosti to dramaticky znižuje latenciu, najmä pri pracovných procesoch, ktoré vyžadujú časté čítanie a zápis malých súborov.

Moderné SSD disky môžu byť veľmi rýchle a s vylepšenou technológiou, ako sú NVMe SSD, môžu byť dokonca ešte lepšie. Napriek tomu však môžete zaznamenať určité oneskorenie, keď musia zvládnuť tisíce malých operácií. Práve toto je presný scenár, kde môže RAM disk urobiť rozdiel, a presunutie ktoréhokoľvek z nižšie uvedených typov súborov môže priniesť najväčšie úžitky:

  • Cache prehliadača (najvýraznejšie zlepšenie)
  • Adresáre kompilácie a zostavenia
  • Dočasné alebo aplikáciou intenzívne využívané údaje

Vyhýbam sa zahrnutiu trvalých súborov, na ktorých mi záleží, a veľkých médií alebo dát náročných na úložisko do môjho RAM disku. Tu je pravidlo: systémy, ktoré vykonávajú malé opakujúce sa I/O operácie, fungujú na RAM disku dobre.

Typ pracovného zaťaženia

Úroveň prínosu

Medzipamäť prehliadača

Veľmi vysoký

Kompilácia/stavby

Vysoký

Dočasné/prehodené súbory

Vysoký

Ukladanie veľkých súborov

None

Jednoradový setup, ktorý jednoducho funguje

Presný záznam v fstab a čo každá jeho časť robí

Nastavenie RAM disku na mojom systéme Linux Mint vyžaduje tento jeden riadok v /etc/fstab:

tmpfs /mnt/ramdisk tmpfs defaults,noatime,nosuid,nodev,size=2G 0 0

Súbor fstab môžete otvoriť a upraviť spustením tohto príkazu vo vašom Linuxovom termináli: sudo nano /etc/fstab

Týmto ste pripravení a toto sú časti tohto kódu, ktoré skutočne záležia:

  • tmpfs: Hovorí Linuxu, aby používal súborový systém založený na RAM
  • /mnt/ramdisk: Kde bude pripojený
  • noatime: Zabráni zbytočným zápisovým operáciám
  • veľkosť=2G: Caps koľko RAM môže použiť

Na RAM disku aktualizácie atime generujú zápisy metadát pri čítaní; noatime tieto aktualizácie zakáže, čím sa znižuje zbytočné zaťaženie zápisom.

Veľkosť, ktorú používate, je skôr praktická než teoretická. Na tomto systéme mám 16 GB RAM, takže môžem bezpečne alokovať medzi 1 a 4 GB. Nakoniec chcete alokovať dosť, aby to bolo užitočné, ale nie toľko, že by to sťažovalo fungovanie bežiacich aplikácií.

Pred reštartovaním systému otestujte RAM disk spustením tohto príkazu:

sudo mount -a

Potom použite tento príkaz na potvrdenie, že je aktívny:

df -h | grep ramdisk

Teraz by mal byť váš súborový systém rýchly a pripravený na použitie, aj keď ho momentálne nič nepoužíva.

Krok, ktorý skutočne robí rozdiel

Vytváranie symbolického odkazu na priečinok vyrovnávacej pamäte vašej aplikácie

Namontovaný RAM disk nič nerobí, kým naň aplikácie nezačnú zapisovať. Musíte naň nasmerovať konkrétne priečinky. Najlepší spôsob, ako to dosiahnuť, je použiť symbolické odkazy, a je to dvojkrokový proces:

  1. Presuňte existujúci priečinok cache na svoj RAM disk
  2. Vytvorte symbolický odkaz smerujúci späť na pôvodné umiestnenie

Pre Chrome, napríklad, budú dva kroky spustenie nasledujúcich príkazov:

mv ~/.cache/google-chrome /mnt/ramdisk/Default/Cache /mnt/ramdisk/chrome-cache
ln -s /mnt/ramdisk/chrome-cache ~/.cache/google-chrome/Default/Cache

Kým tieto príkazy sú ekvivalentom pre Firefox:

mv ~/.cache/mozilla /mnt/ramdisk/
ln -s /mnt/ramdisk/mozilla ~/.cache/mozilla

Po spustení týchto príkazov sa všetky čítania/zápisy cache Chrome a Firefoxu budú teraz vykonávať v RAM a nie na tradičných diskoch. Ale pretože RAM disky sa po reštarte vymažú, musíte si tieto veci uvedomiť:

  • Pamäťové priečinky bude potrebné znovu vytvoriť
  • Symbolické odkazy musia stále ukazovať na platnú lokalitu

Toto je opakujúca sa úloha, ktorú môžete automatizovať na Linuxe. Osobne rád používam malý spúšťací skript, ale nástroj ako profile-sync-daemon môže byť elegantnejším spôsobom, ako spravovať profilov prehliadača v RAM.

Niektoré veci sa stali okamžitými — iné sa vôbec nepohli

Keď som urobil túto zmenu, môj prehliadač sa okamžite zdal rýchlejší. A nešlo len o rýchlosť spustenia, ale o všetko ostatné, vrátane obnovovania záložiek, načítavania stránok z vyrovnávacej pamäte a prepínania medzi reláciami. Časoval som niekoľko úloh, aby som zistil, či je rozdiel hmatateľný:

Úloha

Pred

Po

Spustenie prehliadača

~3-4 sekundy

Obnovenie karty

~2 sekundy

Takmer okamžitý

Inštalácia balíka

Pomalší píše

Rýchlejšie dokončenie

Proces zostavovania

I/O pauzy

Plynulejší beh

Pokiaľ niečo silne záviselo od cache alebo dočasných zápisov, videl som skutočné zlepšenia. Dokonca som zaznamenal rýchlejšiu inštaláciu, pretože operácie s metadátami a malými súbormi boli dokončované efektívnejšie. Aj procesy zostavovania boli hladšie a konzistentnejšie, hoci nie nevyhnutne rýchlejšie. Zaznamenával som menej prestávok a čakacích dôb medzi krokmi.

Avšak, skôr než prejdete na RAM disk, mali by ste vedieť, že vymieňa trvalosť za rýchlosť, takže pád alebo vypnutie zariadenia zmaže údaje. Odporúčam začať s malou kapacitou (1-2 GB). Tiež sa vyvarujte zahrnutiu čohokoľvek, čo si nemôžete dovoliť stratiť. Dobre nakonfigurovaný RAM disk je praktický spôsob, ako získať lepší výkon na vašom zariadení.

Súvisiace články