Ghid de Optimizare a Performanței Kernel-ului: Sysctl, Swappiness, TCP BBR și Descriptori de Fișiere în Linux / Bash

Ghid complet pentru tuning de performanță în nucleul Linux: optimizarea memoriei virtuale cu vm.swappiness, activarea algoritmului de rețea TCP BBR și ridicarea limitelor de fișiere deschise (nofile).

Sintaxă comandă
sysctl -p /etc/sysctl.conf | vm.swappiness=10 | net.ipv4.tcp_congestion_control=bbr

Configurația implicită a nucleului Linux dintr-o distribuție standard este conservatoare, gândită să funcționeze acceptabil pe orice tip de hardware (de la calculatoare vechi până la servere mici). Pentru servere de producție de mare capacitate (care rulează baze de date PostgreSQL/MySQL, cache Redis sau servere web cu zeci de mii de vizitatori concurenți), reglarea parametrilor de kernel prin sysctl oferă creșteri dramatice de stabilitate și latență.

Configurația recomandată pentru /etc/sysctl.d/99-production-tuning.conf
# Aplică toate modificările cu comanda: sudo sysctl --system

# 1. OPTIMIZARE MEMORIE VIRTUALĂ (VITAL PENTRU BAZE DE DATE):
# Valoarea implicită 60 forțează mutarea paginilor de memorie pe disc (swap) mult prea devreme.
# Scăderea la 10 instruiește kernel-ul să evite folosirea swap-ului decât dacă memoria RAM este > 90% plină:
vm.swappiness = 10

# Echilibrează curățarea cache-ului de directoare/inoduri:
vm.vfs_cache_pressure = 50

# Necesar pentru Redis și baze de date cu alocare optimistă (evită erorile de fork la salvarea bazei pe disc):
vm.overcommit_memory = 1

# 2. OPTIMIZARE STIVĂ DE REȚEA TCP (PENTRU TRAFIC WEB MASIV):
# Mărește dimensiunea cozii de conexiuni în așteptare (Connection Backlog):
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535

# Permite reutilizarea rapidă a socket-urilor aflate în starea TIME_WAIT:
net.ipv4.tcp_tw_reuse = 1

# Activează algoritmul modern de control al congestiei dezvoltat de Google (TCP BBR):
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

# 3. LIMITĂ MAXIMĂ GLOBALE DE DESCRIPTORI DE FIȘIERE:
fs.file-max = 2097152

De ce algoritmul TCP BBR este o revoluție?

Algoritmii clasici de TCP (precum Reno sau Cubic) detectează congestia prin pierderea de pachete (packet loss). Când apare o pierdere minoră de pachete pe o conexiune Wi-Fi sau mobilă, Cubic reduce viteza de transfer la jumătate! TCP BBR (Bottleneck Bandwidth and RTT) măsoară viteza reală a conexiunii și timpul de dus-întors (RTT), menținând lățimea de bandă la capacitate maximă chiar și pe conexiuni instabile, reducând latența paginilor web cu până la 30%.

Ridicarea Limitelor de Fișiere Deschise (ulimit -n)

În Linux, fiecare conexiune TCP deschisă consumă un descriptor de fișier. Limita implicită per proces este adesea de doar 1024. Dacă aveți 1025 de conexiuni web concurente, Nginx va returna eroarea 502 Bad Gateway sau Too many open files!

Configurarea limitelor în /etc/security/limits.conf
# Adăugați la sfârșitul fișierului pentru toți utilizatorii (*):
* soft nofile 65535
* hard nofile 65535
root soft nofile 65535
root hard nofile 65535

# Pentru servicii gestionate de systemd (ex: Nginx, MySQL), adăugați în fișierul unității:
# [Service]
# LimitNOFILE=65535
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Ghid de Optimizare a Performanței Kernel-ului: Sysctl, Swappiness, TCP BBR și Descriptori de Fișiere

Ai o nelămurire despre utilizarea comenzii Ghid de Optimizare a Performanței Kernel-ului: Sysctl, Swappiness, TCP BBR și Descriptori de Fișiere sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.