Компания Oracle объявила о доступности для загрузки первой стабильной реализации системы динамической отладки DTrace для Linux, пригодной для повседневного использования. Ранее пакеты с DTrace находились на стадии бета-тестирования и позиционировались только для предварительного ознакомления. Пакеты с поддержкой DTrace пока доступны только для ядра Unbreakable Enterprise Kernel 2, поддерживаемого для дистрибутива Oracle Linux. Исходные тексты DTrace для Linux распространяются под лицензией CDDL и доступны для загрузки из поддерживаемого компанией Oracle Git-репозитория.

Изначально технология DTrace была разработана для операционной системы Solaris для решения задач по динамической трассировке ядра системы и конечных приложений, давая пользователю возможность детально отслеживать поведение системы и в режиме реального времени производить диагностику проблем. В варианте DTrace для Oracle Linux число интегрированных в ядро контрольных вызовов сильно урезано по сравнению с реализациями для Solaris и Mac OS X. Тем не менее он предоставляет пользователю базовые функции и даёт возможность выполнять такие действия как анализ производительности, выявление узких мест и изучение внутренней работы системы. В процессе отладки DTrace не влияет на работу исследуемых приложений и никак не отражается на их производительности, что позволяет организовать анализ работающих систем на лету.

Из доступных для Linux провайдеров DTrace можно отметить: SDT (Statically Defined Tracing), позволяющий выполнять статическую трассировку приложений, используя серию контрольных вызовов (probes) внутри ядра Linux; proc для проверки на стадии создания/завершения (fork, exec, exit, fault) процессов и легковесных процессов (LWP), отправки и приёма сигналов; profile, позволяющий сбрасывать статистику через указанные промежутки времени.

Распространение кода компонентов DTrace под лицензией CDDL из-за несовместимости с лицензией GPLv2 мешает интеграции проекта в состав основного ядра Linux. Кроме того, реализация сильно завязана на контрольные вызовы (probes), добавленные в ядро Unbreakable Enterprise Kernel 2 и требует дополнительного портирования для штатного ядра Linux. Интерес к подобному портированию невысок, так как в состав Fedora и RHEL уже входит похожая по возможностям система SystemTap, код которой доступен под лицензией GPL, а разработку курируют компании Red Hat, IBM, Hitachi и Oracle. Как и DTrace, SystemTap позволяет организовать доскональное наблюдение за работающей системой, производить сбор статистики о работе приложений, выполнять профилирование, контролировать работу системных вызовов. Кроме того, в рамках проекта CRiSP с 2008 года группой независимых энтузиастов активно развивается порт DTrace для Linux, работающий в виде обособленного модуля ядра.

Источник: http://www.opennet.ru/opennews/art.shtml?num=35586