Utilizați Zswap pentru a îmbunătăți performanța pe computerul Linux cu cantități mici de RAM

Utilizați Zswap pentru a îmbunătăți performanța pe computerul Linux cu cantități mici de RAM

⌛ Reading Time: 6 minutes

Să recunoaștem, unii dintre noi nu facem upgrade atât de des. Sau, cel puțin, ca utilizatori Linux, ne place să ne refacem laptopurile / computerele mai vechi. O mulțime de distribuții rulează confortabil pe sisteme cu cantități mici de memorie RAM (Random Access Memory). Cu toate acestea, browserele nu sunt atât de iertătoare, necesitând din ce în ce mai multă memorie pe măsură ce Internetul evoluează.

În timp ce un sistem cu mediul desktop LXDE poate dura până la 150 MB de RAM după pornire, Chromium, Chrome sau Firefox vor consuma rapid sute de megaocteți și chiar mai mulți gigaocteți de memorie RAM pe măsură ce deschidem câteva file.

Și atunci se întâmplă! Hard diskul începe să scoată acel sunet de măcinare. Muzica începe să se bâlbâie. Când trecem la o altă aplicație, durează zeci de secunde până când apare pe ecran. Chiar și cursorul mouse-ului poate începe să întârzie. Acesta este efectul zdrobirii discului.

Ce este Disk Thrashing?

În primul rând, trebuie să înțelegem schimbul. Când rămânem fără memorie RAM gratuită, datele aplicației la care sistemul de operare nu a accesat mult timp se mută în zona de swap. Acest lucru se întâmplă adesea pe un dispozitiv de stocare fizică. Procedând astfel, sistemul de operare poate elibera spațiu de memorie de care are nevoie un program acum. În acest fel, o filă din browserul nostru pe care nu am accesat-o în ultima oră poate fi schimbată pe hard disk. Acum editorul de imagini GIMP poate rula. Când îl închidem și revenim la acea filă veche, sistemul de operare îl schimbă din nou în memorie (îl citește de pe disc și îl copiază înapoi în memoria cu acces aleatoriu).

Acest mecanism funcționează bine atunci când schimbați cantități mici de date. Dar când, să spunem, doar 2 GB de RAM sunt disponibili și toate programele pe care le avem deschise au nevoie de 4 GB, sistemul de operare trebuie să se schimbe constant. Mutarea datelor din memorie pe disc, de pe disc în memorie și înapoi, în mod constant, este foarte lentă, mai ales cu hard disk-uri. Într-o astfel de situație, dispozitivul de stocare nu poate îndeplini cererile suficient de repede. Pe scurt, când apare discul, lucrurile devin foarte lente.

Unitățile SSD sunt excelente pentru swap

Există încă un mit care circulă pe Internet: „Nu configurați niciodată swap pe SSD. Îți va ucide dispozitivul! ” Asta era adevărat acum câțiva ani, dar nu mai este. De fapt, configurarea swap-ului pe o unitate SSD duce la rezultate excelente. Dacă computerul include un dispozitiv SSD care are o performanță bună de citire / scriere aleatorie (cel puțin 300 MB), configurați o partiție swap pe acesta și ignorați restul acestui articol. Când sistemul de operare trebuie să schimbe 1 GB de date, va dura mai puțin de cinci secunde, în timp ce pe un hard disk ar dura mai mult de un minut.

Cum se reduce semnificativ Disk Thrashing pe Linux

zswap-meme-compress-ram

Din fericire, majoritatea datelor stocate în RAM sunt foarte comprimabile. Aceasta înseamnă că, dacă luăm 200 MB de date stocate în memorie și le comprimăm, putem reduce dimensiunea la 100 MB. În consecință, înseamnă că sistemul va trebui să scrie mult mai puține date pe disc atunci când faceți swap.

Imaginați-vă că, în loc să așteptați treizeci de secunde pentru a trece la un program, trebuie să așteptați cincisprezece. Este o îmbunătățire palpabilă. Dar, de fapt, accelerarea este mult mai semnificativă (poate fi necesar să aștepte mai puțin de zece secunde), deoarece instrumentul pe care îl vom folosi este mai sofisticat decât atât. Trimite în mod inteligent pe disc numai biții care nu pot fi comprimați, păstrând restul într-o porțiune rezervată de memorie. Dacă doriți să citiți mai multe despre internele sale, consultați pagina oficială a kernel-ului Linux despre zswap.

O versiune simplă a beneficiilor pe care le obținem folosind zswap este că, în loc de încetiniri oribile atunci când rămânem fără memorie, avem încetiniri ușoare, tolerabile, care durează câteva secunde în loc de zeci de secunde sau chiar minute.

Cum se activează zswap la distribuțiile bazate pe Debian (Ubuntu, Linux Mint etc.)

Deschideți o aplicație terminal și executați această comandă pentru a edita fișierul de configurare a șablonului de încărcare Grub:

zswap-edit-grub-template-config

Cu tastele cursorului, navigați la linia care începe cu „GRUB_CMDLINE_LINUX_DEFAULT”. În ghilimele, adăugați următorul text:

zswap-editing-grub-template-config-2

De exemplu, o linie care a fost GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" devine GRUB_CMDLINE_LINUX_DEFAULT="quiet splash zswap.enabled=1".

Pentru a salva fișierul, apăsați Ctrl + X, urmat de „y” și apoi Enter.

Generați noile fișiere de configurare Grub conform șablonului pe care l-am editat anterior:

zswap-update-grub-finished

Reporniți și modulul zswap va fi activat automat.

Cum se activează zswap pe Fedora și OpenSUSE

Procedura de aici este similară cu cea din secțiunea anterioară, dar cu câteva răsuciri. Editați fișierul de configurare a șablonului Grub.

Adăuga zswap.enabled=1 în ghilimele, pe linia care începe cu GRUB_CMDLINE_LINUX.

zswap-editing-grub-template-fedora

presa Ctrl + X, urmat de „y” și apoi Enter pentru a salva fișierul.

În funcție de faptul dacă computerul dvs. pornește de la un sistem BIOS sau UEFI, fișierul de configurare Grub este generat pe o altă cale. Pentru a afla unde locuiește în prezent, introduceți următoarea comandă:

zswap-find-grub-cfg-on-fedora

Utilizați calea care este afișată aici în următoarea comandă. De exemplu, în cazul nostru calea găsită a fost „/boot/grub2/grub.cfg”, așa că o vom adăuga la sfârșitul următoarei comenzi după „-o”:

Reporniți computerul. După repornire, verificați dacă modulul este activ:

Dacă ieșirea este „Y”, atunci modulul funcționează corect.

Cum se activează zswap pe Arch Linux

Instalați pachetul systemd-swap:

zswap-pacman-install-systemd-swap

Faceți acest pachet să funcționeze ca magie la momentul pornirii:

Porniți-l acum, fără a reporni:

Pentru a verifica dacă totul a funcționat conform așteptărilor, verificați dacă modulul zswap este activat:

zswap-enable-systemd-swap-service

Dacă ieșirea este „Y”, înseamnă că modulul este activ.

Cum se activează zswap pe diferite distribuții

În general vorbind, activarea zswap la pornire este la fel de ușoară ca adăugarea zswap.enabled=1 la parametrii kernelului. Majoritatea distribuțiilor folosesc implicit Grub2 ca bootloader. Dacă utilizați un bootloader diferit, găsiți fișierul de configurare în care stochează parametrii kernel-ului pentru a trece la momentul de boot și adăugați zswap.enabled=1 ca parametru suplimentar.

Un alt parametru cu care vă puteți juca pentru a afla dacă îmbunătățește performanța pentru cazul dvs. de utilizare specific, este zswap.max_pool_percent=20. Puteți să-l reglați schimbând numărul la sfârșit: de exemplu, zswap.max_pool_percent=50.

Adăugați-l la aceiași parametri kernel în care adăugați zswap.enabled=1. Este recomandat să nu depășiți 50%, deoarece mai mult decât atât poate avea efecte dăunătoare asupra sistemelor cu cantități mici de RAM.

Concluzie

Dacă ați rămas frecvent fără memorie RAM pe vechiul dvs. sistem și ați experimentat efectele enervante ale discului, veți observa imediat și veți aprecia diferența de acum înainte. În loc de încetiniri oribile, veți experimenta o întârziere ușoară și temporară care durează câteva secunde (în loc de minute) când sistemul de operare trebuie să schimbe multe date pe disc. Veți putea continua să lucrați în situații în care înainte nu ați putut utiliza deloc computerul în timpul schimbării.