Jak zainstalować DTrace?

20

Googling sugeruje, że DTrace jest dostępny w systemie Linux, ale nie mogę znaleźć instrukcji, jak go zainstalować.

DTrace to kompleksowa struktura dynamicznego śledzenia. Został zaprojektowany w celu zapewnienia wglądu operacyjnego, który pozwala użytkownikom na dostrojenie aplikacji i systemu operacyjnego oraz rozwiązywanie problemów. Szczególną uwagę zwrócono na bezpieczne użytkowanie w środowisku produkcyjnym. Na przykład minimalny efekt sondy występuje w trakcie śledzenia i nie ma wpływu na wydajność w przypadku żadnej wyłączonej sondy; jest to ważne, ponieważ można włączyć dziesiątki tysięcy sond DTrace.

justintime
źródło

Odpowiedzi:

15

Użyj git lub pobierz tutaj kilka wersji dtrace . Znalazłem te instrukcje instalacji :

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

Sidenote: Komentarz do burzy mózgów twierdzi, że możesz zrobić to samo z tymi 3:

Rinzwind
źródło
ciekawe pytanie - ten link mówi, że dtrace nie jest dostępne dla „debian” (aka ubuntu?) - jest bardziej aktualne niż twoja instrukcja. webcache.googleusercontent.com/…
fossfreedom
Ostatni komentarz na temat burzy mózgów znajduje się tutaj: brainstorm.ubuntu.com/idea/4971 Brak deb, ale można go używać w systemie Ubuntu.
Rinzwind
ok - mam nadzieję, że OP to przetestuje - +1 ode mnie.
fossfreedom
Znalazłem też ten jeden brainstorm.ubuntu.com/idea/11463 ptrace, utrace i systemtap edytowane jako alternatywa (nie próbowałem zbytnio;))
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: nie można utworzyć katalogu „/ usr / lib / dtrace”: Odmowa instalacji: nie można utworzyć zwykłego pliku '/ usr / sbin / dtrace': Instalacja zabroniona: nie można utworzyć zwykłego pliku '/usr/lib/dtrace/64/drti.o': Brak takiego pliku lub katalogu makefile: 110: przepis na docelową 'instalację' nie powiódł się: *** [instalacja] Błąd 1
gtzinos
14

1

Znalazłem pakiet sytemtap-sdt-dev. Z typu terminala:

sudo apt-get install systemtap-sdt-dev

Ten pakiet zapewnia dtrace.

Pamiętaj, że chociaż nazwa pochodzi dtracez jakiegoś powodu, nie jest dokładnie taka sama jak oryginał Solaris. Prawdopodobnie możesz zrobić kilka rzeczy, ale nie wszystkie.

2)

Jeśli nie masz nic przeciwko kompilacji, bardziej kompletną wersją dtracejest port autorstwa Paula Foxa:
ftp://crisp.dyndns-server.com/pub/release/website/dtrace/

Jest dość łatwy w budowie, zobacz README.

3)

Jest też Oracleport. Ale nie przetestowałem tego i nie poleciłbym tego. Najwyraźniej ma tylko około 0,1 procent sond portu Paula Foxa.

$ dtrace -l | wc -l
394267

Co jest ironiczne, ponieważ Oraclezakupione Sun, pierwotni autorzy dtracedla Solaris.

4

Należy zauważyć, że Linux-dtrace nie posiada niektórych funkcji przestrzeni użytkownika, które zapewnia (oryginalny) Solaris-dtrace. Zatem niektóre zastosowania dtrace, takie jak profilowanie Node.js, będą skomplikowane, jeśli nie niemożliwe, przy użyciu klonowania, rozwidlenia lub imitacji dtrace.

Redsandro
źródło
5
Rzeczywiście, wersja w „systemtap-sdt-dev” nie obsługuje opcji „-n”
Erel Segal-Halevi