Выпуск систСмы динамичСской ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ SystemTap 5.0

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Ρ€Π΅Π»ΠΈΠ· систСмы динамичСской трассировки SystemTap 5.0, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Linux срСдства ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Π½Π° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ DTrace. SystemTap позволяСт ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ доскональноС наблюдСниС Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ Linux-систСмой, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ сбор статистики ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ². Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ производится Ρ‡Π΅Ρ€Π΅Π· интСрфСйс ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π‘ΠΈ-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ язык сцСнариСв. БистСма совмСстима с ядрами Linux начиная с вСрсии 3.10 ΠΈ заканчивая 6.6-rc0.

Π’ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΊΠ°ΠΊ Red Hat, IBM, Intel, Hitachi ΠΈ Oracle. Π’ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² прСдставлСно Π±ΠΎΠ»Π΅Π΅ 190 скриптов Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ случаи ΠΆΠΈΠ·Π½ΠΈ, подходящиС для слСТСния Π·Π° распрСдСлСниСм памяти, Π²Π²ΠΎΠ΄ΠΎΠΌ/Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ, дисковыми опСрациями, сСтСвым Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°Π½Π°Π»ΠΈΠ· Ρ€Π°Π±ΠΎΡ‚Ρ‹ NFS), Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° Π·Π°Π΄Π°Ρ‡, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, использованиСм систСмных Π±ΡƒΡ„Π΅Ρ€ΠΎΠ², установкой Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ сигналов ΠΈ Ρ‚.ΠΏ.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ измСнСния:

  • ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Π΅Ρ‚ΠΊΠΈ ядра 2.6.32, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π² RHEL6. ВСстированиС SystemTap Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ производится с ядрами 3.10 (RHEL7), 4.18 (RHEL8 + CentOS Stream 8), 5.14.0 (RHEL9 + CentOS Stream 9), 6.4 (Fedora 38), 6.5 (Fedora 39) ΠΈ 6.6-rc (Fedora rawhide).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° процСсса debuginfod для динамичСского получСния ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ± установлСнных исполняСмых Ρ„Π°ΠΉΠ»Π°Ρ….
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ DWARF5, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ print_ubacktrace_fileline().
  • Π’ΠΎ фронтэндС (ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ stap) ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ сСрвСров debuginfod Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования масок ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ†Π΅Π»Π΅Π²Ρ‹Ρ… процСссов, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, stap -e ‘probe debuginfod.process(«/usr/*/curl»).begin { log(«hi»)}’. Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° дСтализация ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ процСссах Π² спискС, Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΠΌ ΠΏΡ€ΠΈ использовании ΠΎΠΏΡ†ΠΈΠΈ «-L» Π² сочСтании с нСсколькими «-v».
  • Π’ бэкСндС ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ рСгистрации uprobe ΠΈ ускорСн запуск модуля ядра. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π±ΠΎΠ»Π΅Π΅ быстрая ΠΈ надёТная систСма ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний ΠΌΠ΅ΠΆΠ΄Ρƒ ядром ΠΈ пространством ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π²ΠΎ врСмя выполнСния макросы: STP_TIMING_NSECS для получСния свСдСний ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π² наносСкундах ΠΈ STP_FORCE_STDOUT_TTY для пСрСопрСдСлСния STP_STDOUT_NOT_ATTY.

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