Alexvnder. Postat Februarie 23 Postat Februarie 23 [ROOT@CPU_ISOLATION] CPU Shielding: Zero Interference # Izolarea nucleelor la nivel de GRUB pentru latență deterministă Salut! Ai observat că uneori ai lag chiar dacă procesorul nu este la 100%? Asta se întâmplă pentru că restul proceselor de sistem (daemons, loggers) se "bat" pe aceleași nuclee cu jocul tău. Astăzi învățăm cum să spunem Linux-ului: "Nucleele 2 și 3 sunt proprietate privată. Nu te atinge de ele!". 1. Alegerea nucleelor pentru izolare Verifică structura procesorului tău cu lscpu -e. Pentru acest exemplu, vom izola ultimele două nuclee ale unui procesor quad-core (nucleele 2 și 3). sudo nano /etc/default/grub 2. Editarea parametrilor de Boot Caută linia GRUB_CMDLINE_LINUX_DEFAULT și adaugă parametrul isolcpus. Acesta va împiedica scheduler-ul Linux să trimită task-uri pe acele nuclee: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash isolcpus=2,3 rcu_nocbs=2,3" * rcu_nocbs mută și callback-urile kernel-ului de pe acele nuclee, lăsându-le complet libere. sudo update-grub și apoi reboot. 3. Lansarea jocului pe nucleele "Sfinte" După restart, vei vedea că nucleele 2 și 3 stau la 0% utilizare. Acum lansăm jocul forțându-l să folosească doar acea putere rezervată: taskset -c 2,3 ./start_server.sh DE CE ESTE UNIC ACEST TUTORIAL? Majoritatea adminilor folosesc doar `taskset` pe un sistem deja încărcat. Diferența aici este izolarea la boot. Prin `isolcpus`, Linux nici nu "știe" că are voie să folosească acele nuclee pentru altceva. Rezultatul? Un proces de joc care rulează într-un mediu complet izolat, cu 0 context-switching, oferind cel mai stabil ping și framerate posibil pe care tehnologia actuală îl permite. CPU_SHIELD_V1.0 // LEAGUECS.RO
Postări Recomandate