Sobes.tech
Middle+

Papaskink apie sudėtingiausią techninę užduotį, su kuria susidūrei dirbdamas projekte.

sobes.tech AI

Atsakymas iš AI

Viena iš sudėtingiausių užduočių buvo optimizuoti didelio apkrovimo paslaugą, kuri apdorodavo milijonus užklausų per sekundę. Problema buvo ta, kad dėl dažnų užraktų ir išteklių konkurencijos atsirasdavo vėlavimai ir pralaidumas mažėjo.

Sprendimui reikėjo:

  • Atlikti CPU ir atminties profilį naudojant pprof.
  • Identifikuoti susiaurėjimo vietas sinchronizacijoje, pakeisti mutexus efektyvesnėmis struktūromis, pvz., atominių operacijų.
  • Perrašyti kritines kodo dalis, sumažinti užraktus.
  • Naudoti goroutine baseiną, kad kontroliuotų vienu metu veikiančių užduočių skaičių.

Galų gale pavyko žymiai sumažinti vėlavimus ir pagerinti paslaugos stabilumą, kas teigiamai paveikė naudotojo patirtį.