Netflix ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» ΠΊΠΎΠ΄ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ bpftop

Компания Netflix прСдставила ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ bpftop, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ интСрфСйс для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π·Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ eBPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² ядрС Linux, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π² стилС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ top. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° CPU ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ eBPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ построСниС Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² для ΠΎΡ†Π΅Π½ΠΊΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΈ измСнСния характСристик выполнСния Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Код bpftop написан Π½Π° языкС Rust ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ возмоТности:

  • ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ списка Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… eBPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΈΡ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², Ρ‚ΠΈΠΏΠ° ΠΈ ΠΈΠΌΠ΅Π½ΠΈ.
  • Показ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° ΠΈ ΠΎΠ±Ρ‰Π΅Π³ΠΎ срСднСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния ΠΊΠ°ΠΆΠ΄ΠΎΠΉ eBPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
  • Расчёт для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ eBPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° CPU ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… событий Π² сСкунду.
  • Π“Ρ€Π°Ρ„ΠΈΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния, событий Π² сСкунду ΠΈ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° CPU Π² 10-сСкундныС ΠΎΡ‚Ρ€Π΅Π·ΠΊΠΈ.
  • ЕТСсСкундноС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ списка.

Одной ΠΈΠ· Ρ†Π΅Π»Π΅ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ bpftop называСтся ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ eBPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ динамичСского наблюдСния Π·Π° ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ Ρ‚Π΅Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² eBPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…. Для получСния статистики Π² bpftop ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ систСмный Π²Ρ‹Π·ΠΎΠ² BPF_ENABLE_STATS ΠΈ сбор ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ сСкунду. Для сниТСния Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов статистика собираСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹.

Netflix ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» ΠΊΠΎΠ΄ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ bpftop
Netflix ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» ΠΊΠΎΠ΄ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ bpftop


Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru