ThinkRoot

bine ați navigat pe insula mea de pe internet

Cum am optimizat boot-ul și shutdown-ul pe Linux Mint

Linux Mint e distribuția pe care o folosesc și, în general, nu am prea multe motive de nemulțumire. Vine cu tot ce am nevoie, e stabilă și nu mă pune să configurez sistemul de la zero de fiecare dată. Totuși, la un moment dat am observat că sistemul pornește mai lent decât ar trebui și că, atunci când îl opresc, mai durează ceva până când ecranul devine negru. Problema nu era gravă, dar era deranjantă, mai ales că știam că se poate face ceva în privința asta.

De unde am început

Prima oprire a fost comanda systemd-analyze blame, care îți arată cât timp a durat fiecare serviciu să pornească. Rezultatele au fost destul de clare:

29.577s mintupdate-automation-upgrade.service
14.288s apt-daily.service
 6.373s NetworkManager-wait-online.service

Doar aceste trei servicii consumau aproape 50 de secunde din boot. Restul erau neglijabile. Practic, de fiecare dată când porneam calculatorul, sistemul verifica și instala actualizări, descărca liste de pachete și aștepta ca rețeaua să fie complet inițializată înainte să continue - toate astea blocând procesul de boot.

Dezactivarea upgrade-ului automat la pornire

mintupdate-automation-upgrade.service e un serviciu specific Linux Mint care rulează un upgrade automat la fiecare pornire a sistemului. E o idee bună în teorie, dar în practică înseamnă că de fiecare dată când pornești calculatorul, acesta poate sta 30 de secunde sau mai mult descărcând și instalând actualizări.

Am încercat să îl dezactivez cu systemctl disable, dar am primit un mesaj care spunea că unitatea nu are configurație de instalare și că timer-ul aferent rămâne activ. Soluția corectă a fost să folosesc mask în loc de disable, ceea ce creează un symlink către /dev/null și împiedică systemd să pornească serviciul în orice circumstanță:

sudo systemctl mask mintupdate-automation-upgrade.timer
sudo systemctl stop mintupdate-automation-upgrade.timer

Actualizările automate nu dispar complet - apt-daily-upgrade.timer rămâne activ și rulează complet în fundal o dată pe zi, fără nicio intervenție din partea mea. Aplicația Mint Update e doar interfața vizuală prin care pot vedea ce actualizări sunt disponibile, nu e necesară pentru ca procesul automat să funcționeze.

Mutarea verificării pachetelor după boot

apt-daily.service e responsabil pentru descărcarea listelor de pachete și rulează imediat la pornirea sistemului, adăugând 14 secunde la boot. Nu există niciun motiv pentru care această operațiune trebuie să se întâmple exact în momentul în care pornesc calculatorul - poate la fel de bine să aștepte câteva minute.

Am editat timer-ul cu sudo systemctl edit apt-daily.timer și am adăugat următoarele:

[Timer]
OnBootSec=15min
OnUnitActiveSec=1d

Astfel, verificarea pachetelor începe la 15 minute după boot, nu imediat, și se repetă o dată pe zi.

Dezactivarea NetworkManager-wait-online

NetworkManager-wait-online.service blochează procesul de boot până când conexiunea la rețea este complet stabilită. Pe un server, asta are sens - serviciile care depind de rețea nu pot porni fără ea. Pe un calculator obișnuit, însă, nu e necesar, pentru că aplicațiile se conectează singure când au nevoie.

sudo systemctl disable NetworkManager-wait-online.service

NetworkManager continuă să funcționeze normal și se conectează automat la rețea la fel ca înainte - doar că nu mai blochează boot-ul pentru a confirma că totul e gata.

Optimizarea shutdown-ului

Implicit, systemd așteaptă 90 de secunde pentru fiecare serviciu să se oprească înainte de a-l forța. Asta înseamnă că dacă un serviciu îngheață sau pur și simplu e lent, poți sta un minut și jumătate doar pentru el.

Am editat /etc/systemd/system.conf și am adăugat la final:

DefaultTimeoutStopSec=10s
DefaultTimeoutAbortSec=10s
ShutdownWatchdogSec=10s

DefaultTimeoutStopSec limitează cât așteaptă systemd după fiecare serviciu înainte să îl oprească forțat. DefaultTimeoutAbortSec face același lucru pentru serviciile care primesc SIGABRT. ShutdownWatchdogSec e un mecanism de siguranță - dacă systemd însuși îngheață în timpul shutdown-ului, hardware watchdog-ul repornește mașina forțat după intervalul setat.

Cu aceste valori setate la 10 secunde, niciun serviciu nu mai poate bloca shutdown-ul pentru o perioadă lungă de timp.

Rezultatul

Modificările sunt simple și nu afectează funcționalitatea sistemului. Actualizările tot se instalează, rețeaua tot funcționează, serviciile tot se opresc ordonat - doar că totul se întâmplă mai rapid și fără să blocheze inutile procesul de pornire sau oprire. Uneori optimizarea nu înseamnă să schimbi tot, ci doar să muți lucrurile la momentul potrivit.

⬅ The one before
Linux a trecut de 5% pe Steam

Up next ➡
Nouă calculatoare din douăzeci sunt blocate de Windows