Введення в PHP та DTrace
DTrace - це завжди доступний фреймворк трасування, що практично не споживає ресурсів. Він доступний на багатьох платформах, включаючи Solaris, macOS, Oracle Linux і BSD. DTrace може відстежувати поведінку операційної системи та запущених програм користувача. Він може показувати значення параметрів та використовується для виведення статистики продуктивності. Зонди відстежуються скриптами користувача, написаними скриптовою мовою DTrace D. Це дозволяє ефективно аналізувати зрізи даних.
Зонди PHP, які не відстежуються користувальницькими DTrace D скриптами, не містять жодного додаткового коду і, отже, під час нормальної роботи програми, ніякої деградації продуктивності не відбувається. Зонди, що відстежуються, у свою чергу, дають дуже низьку просідання продуктивності, що дозволяє використовувати їх у промислових середовищах.
PHP включає зонди "Статично визначеного трасування рівня користувача" (User-level Statically Defined Tracing, або USDT), які працюють під час виконання. Наприклад, коли D-скрипт відстежує зонд function-entry
, то щоразу при виклику функції, цей зонд запускає відповідну дію D-скрипту. Ця дія, наприклад, друкує аргументи зонда, такі як розташування цієї функції у PHP-скрипті. Або це може бути агрегація даних, таких як кількість запусків кожної з функції.
Тут описуються лише зонди PHP USDT. Для отримання інформації про те, як слідкувати за довільними функціями та відстежувати поведінку операційної системи, читайте відповідну літературу, специфічну для кожної операційної системи та зовнішню повноцінну документацію DTrace. Зауважте, що різні реалізації DTrace можуть відрізнятися набором доступного функціоналу.
Статичні зонди DTrace в PHP також можуть бути використані з SystemTap в деяких дистрибутивах Linux.