Alexvnder. Postat Februarie 23 Postat Februarie 23 [ROOT@NET_IRQ_TUNING] Network IRQ Affinity # Distribuirea procesării pachetelor pe nuclee CPU dedicate Salutare! Ai observat că atunci când serverul e plin, un singur nucleu de procesor (de obicei CPU0) stă în 100% în timp ce restul sunt libere? Aceasta este limita „întreruperilor de rețea”. Dacă pachetele de la jucători sunt procesate de același nucleu care se ocupă și de sistem, apare lag-ul. Astăzi învățăm să direcționăm traficul de rețea spre nuclee specifice. 1. Identificarea IRQ-ului Plăcii de Rețea Trebuie să aflăm ce ID de întrerupere are placa ta de rețea (eth0, enp3s0, etc.): grep eth0 /proc/interrupts | awk '{print $1}' | sed 's/://' 2. Oprirea serviciului IRQBalance Linux are un serviciu care mută întreruperile automat, dar pentru gaming acesta este ineficient deoarece le mută prea des. Îl oprim pentru a prelua controlul manual: sudo systemctl stop irqbalance sudo systemctl disable irqbalance 3. Setarea Affinity-ului (Smp_Affinity) Vom mapa IRQ-ul plăcii de rețea pe nucleul 1 (valoarea hexazecimală "2"). Acest lucru forțează procesorul să folosească nucleul 1 doar pentru pachetele de rețea: # Înlocuiește IRQ_ID cu numărul găsit la pasul 1 echo "2" | sudo tee /proc/irq/IRQ_ID/smp_affinity * Valori HEX: 1 (CPU0), 2 (CPU1), 4 (CPU2), 8 (CPU3). DE CE ESTE UNIC ACEST TUTORIAL? Majoritatea utilizatorilor de Linux cred că sistemul știe singur să împartă treaba. În realitate, pentru aplicații de tip „real-time” cum sunt serverele de joc, context-switching-ul (mutarea task-ului între nuclee) este inamicul stabilității. Prin legarea plăcii de rețea de un nucleu fix, elimini latența de procesare a pachetelor, oferind jucătorilor un "registry" al gloanțelor mult mai precis. NETWORK_AFFINITY_V1.0 // LEAGUECS.RO
Postări Recomandate