LinkedIn je kvar feeda pronašao ondje gdje CPU ne vidi ništa
Kratki freeze prozori postaju vidljivi tek kada se prikaže vrijeme čekanja.📷 AI-generated image / TECH&SPACE
- ★LinkedInova baza za korisnički feed povremeno je postajala nedostupna pa se brzo oporavljala bez jasnih dijagnostičkih tragova.
- ★Inženjeri su koristili off-CPU profiliranje uz eBPF kako bi vidjeli gdje se sustav blokira dok procesi ne troše CPU.
- ★Slučaj pokazuje zašto klasični CPU profili nisu dovoljni za kvarove uzrokovane čekanjem, zaključavanjima i ponašanjem kernela.
Prema dostupnom kontekstu, LinkedInovi inženjeri nisu tražili samo još jedan spor upit ili opterećeni CPU. Signal je upućivao na nešto niže u stogu: na trenutke u kojima proces ne radi aktivno, nego čeka. Tu standardni profili potrošnje procesora često izgledaju prazno ili zavodljivo normalno. Ako je problem u čekanju na zaključavanje, I/O ili ponašanje kernela, CPU može biti gotovo sporedan pokazatelj.
Zato je važan izbor alata. eBPF omogućuje sigurno ubacivanje malih programa u kernel radi promatranja događaja koji su inače teško vidljivi iz aplikacijskog sloja. U ovom slučaju ključna je bila off-CPU perspektiva: ne gdje kod troši procesorske cikluse, nego gdje nestaje vrijeme dok nit ili proces stoji. To je drukčiji mentalni model dijagnostike, bliži forenzici čekanja nego lovu na vruće funkcije.
Kratki prekidi sustava za feed nisu ostavljali korisne tragove, pa su inženjeri posegnuli za off-CPU profiliranjem uz eBPF.
Off-CPU profiliranje prebacuje fokus s potrošnje CPU-a na blokirane niti.📷 AI-generated image / TECH&SPACE
Za sustave poput LinkedInova feeda ta razlika nije akademska. Feed je infrastruktura visokog prometa, s mnogo međusobno ovisnih komponenti, i kratka nedostupnost baze brzo se pretvara u korisnički vidljiv problem. Ako se incident oporavi prije nego što se uhvate klasični logovi ili metrički skokovi, tim ostaje s dokazima koji objašnjavaju posljedicu, ali ne i mehanizam.
Off-CPU profiliranje pokušava uhvatiti upravo taj mehanizam. Umjesto da prikazuje samo aktivni rad, ono mapira periode čekanja i njihove pozive u sustavu. U kombinaciji s kernel-level promatranjem, takav pristup može razdvojiti aplikacijski simptom od nižeg uzroka, primjerice zastoja oko zaključavanja. Javna dokumentacija Linux kernela o BPF-u dobro pokazuje zašto je taj sloj postao temelj moderne opservabilnosti: nalazi se dovoljno blizu sustava da vidi ono što aplikacije ne vide, ali je dizajniran tako da se može koristiti kontrolirano.
Ovdje je pouka šira od jednog LinkedInova incidenta. Velike platforme više ne mogu računati da će svaki ozbiljan kvar imati uredan zapis u logovima ili jasan vrh na grafu CPU-a. Kod kratkih, ponavljajućih zamrzavanja treba mjeriti i negativni prostor rada sustava: čekanja, blokade, zaključavanja i kernel putanje. Alati poput bcc projekta, koji se oslanja na BPF za tracing i profiliranje, već su zato postali dio ozbiljnog SRE arsenala.
Najvažniji detalj nije sama egzotičnost eBPF-a, nego promjena pitanja. Umjesto “što troši procesor?”, LinkedInov tim je morao pitati “gdje sustav nestaje dok izgleda kao da ne radi ništa?”. Za ponavljajuće freeze incidente to je često jedino pitanje koje vodi prema uzroku, a ne samo prema još jednom urednom, ali beskorisnom grafikonu.

