Как мне установить DTrace?

20

Поиск в Google предполагает, что DTrace доступен в Linux, но я не могу найти инструкции, как его установить.

DTrace - это комплексная система динамического отслеживания. Он предназначен для предоставления оперативной информации, позволяющей пользователям настраивать и устранять неполадки приложений и самой ОС. Особое внимание было уделено тому, чтобы сделать его безопасным для использования в производственной среде. Например, при трассировке наблюдается минимальный эффект зонда, и никакого влияния на производительность, связанного с любым отключенным зондом, нет; это важно, поскольку есть десятки тысяч зондов DTrace, которые могут быть включены.

вовремя
источник

Ответы:

15

Используйте git или загрузите несколько версий dtrace здесь . Я нашел эти инструкции по установке :

git clone "https://github.com/dtrace4linux/linux.git" dtrace
cd dtrace
tools/get-deps.pl
make all 
make install
sudo make load

Комментарий: Комментарий к мозговому штурму утверждает, что вы можете сделать то же самое с этими 3:

Rinzwind
источник
интересный вопрос - эта веб-ссылка говорит о том, что dtrace недоступна для "debian" (он же ubuntu?) - он более актуален, чем ваша связанная инструкция. webcache.googleusercontent.com/…
fossfreedom
Смотрите последний комментарий по поводу мозгового штурма здесь: brainstorm.ubuntu.com/idea/4971 Деба нет, но его можно использовать в Ubuntu.
Rinzwind
хорошо - надеюсь, что ОП проверит это - +1 от меня.
fossfreedom
Я также нашел этот brainstorm.ubuntu.com/idea/11463 ptrace, utrace и systemtap, отредактированный в качестве альтернативы (не пробовал это слишком кстати;))
Rinzwind
, build / config.sh; \ mkdir -p "" / usr / lib / dtrace / $ CPU_BITS; \ rm -f "" /usr/lib/dtrace/types.d; \ mkdir -p "" / usr / sbin /; \ install -m 4755 -o root build / dtrace "" / usr / sbin / dtrace; \ install -m 644 -o root build / drti.o "" /usr/lib/dtrace/$CPU_BITS/drti.o mkdir: невозможно создать каталог '/ usr / lib / dtrace': установка запрещена: невозможно создать обычный файл «/ usr / sbin / dtrace»: установка запрещена: невозможно создать обычный файл. «/usr/lib/dtrace/64/drti.o»: не существует такой файл или каталог makefile: 110: не удалось создать рецепт для целевой «установки» make: *** [установить] Ошибка 1
gtzinos
14

1

Я нашел пакет sytemtap-sdt-dev. Из типа терминала:

sudo apt-get install systemtap-sdt-dev

Этот пакет предоставляет dtrace.

Обратите внимание, что хотя он назван dtraceпо причине, он не совсем совпадает с оригиналом Solaris. Вы, вероятно, можете сделать что-то, но не все.

2

Если вы не возражаете против компиляции, более полнофункциональная версия dtrace- это порт Пола Фокса:
ftp://crisp.dyndns-server.com/pub/release/website/dtrace/

Это довольно легко построить, см. README.

3

Там также Oracleпорт. Но я не проверял и не рекомендовал бы это. По-видимому, он имеет только около 0,1 процента зондов порта Пола Фокса.

$ dtrace -l | wc -l
394267

Что иронично, потому что Oracleкуплено Sun, оригинальными авторами dtraceдля Solaris.

4

Обратите внимание, что в Linux-dtrace отсутствуют некоторые функции пользовательского пространства, которые предоставляет (оригинальный) Solaris-dtrace. Поэтому некоторые варианты использования dtrace, такие как профилирование Node.js, будут сложными, если не невозможными, с использованием клонирования, разветвления или имитации dtrace.

Redsandro
источник
5
Действительно, версия в "systemtap-sdt-dev" не поддерживает опцию "-n"
Erel Segal-Halevi