DTrace giới hạn trên Centos / Fedora


8

Tôi muốn giải quyết vấn đề trên hộp Centos 6. Tôi đã chạy dtrace và nó đã thất bại. Nó không chấp nhận -nhoặc -lhoặc -Phoặc bất kỳ tùy chọn dòng lệnh. Nó tuyên bố chỉ chấp nhận -h, -G, -C, -I, -s, và -o. Tôi nghĩ rằng đây phải là một số điều kỳ lạ của Centos, vì vậy tôi đã đi xác minh trên hộp Fedora 22. Cùng một vấn đề. Nó chỉ chấp nhận một số lượng rất hạn chế các tùy chọn dòng lệnh. Tôi đã đi thử một hộp Oracle, rất giống RedHat như Centos và tương tự như Fedora. Nó hoạt động tốt. Tôi đã có thể chạy chỉ dtracevà nhận được một danh sách dài tất cả các tùy chọn dòng lệnh. Tôi đã trở lại Centos và Fedora. Khi tôi nhập dtrace, đầu ra làUsage /bin/dtrace [--help] [-h | -G] [-C [-I<Path>]] -s File.d [-o <File>]. Vì vậy, sau một giờ của Google, tôi đã bỏ cuộc. Làm thế nào để bạn có được dtrace để hoạt động đúng trên Centos / Fedora? Tôi đã thử cả root và người dùng. Tôi đã tìm kiếm các gói để tăng chức năng. Tôi đã thử gỡ bỏ và cài đặt lại dtrace. Điều duy nhất còn lại là gỡ bỏ gói và cài đặt dtrace từ nguồn.


Trên máy Oracle, chạy một cái gì đó giống như dtrace -n BEGINhoạt động (hiển thị dấu vết). Trên các máy Centos / Fedora, tôi gặp lỗi Sử dụng vì -n không được hỗ trợ. Hầu như không có tùy chọn dòng lệnh nào được hỗ trợ.
kainaw

Câu trả lời:


8

Dtrace bạn tìm thấy trên Oracle Linux không phải là dtrace đi kèm với systemtap Linux và bạn sẽ tìm thấy trên mọi bản phân phối Linux khác.

Thay vào đó, nó là một cổng của Solaris dtrace do Oracle cung cấp và chỉ có sẵn trên Oracle Linux.

Hai lệnh hoàn toàn khác nhau và có mục đích khác nhau.

Công cụ theo dõi hạt nhân Linux tiêu chuẩn được gọi là systemtap và dtrace của Oracle chỉ là một trình bao bọc độc quyền về điều đó. Bạn luôn có thể sử dụng systemtap trực tiếp .


4

Các dtracekịch bản mà đến ngày phi Oracle Linux distro là một công cụ nhỏ từ systemtapdự án. Nó chỉ cung cấp <sys/sdt.h>chức năng xây dựng tệp đối tượng / tiêu đề liên quan của solaris dtrace. Nó ánh xạ nó tới các cấu trúc dữ liệu systemtap, vì vậy stap -L 'process("a.out").mark("*")các đầu dò sẽ liệt kê các thiết bị.


3

Bây giờ bạn có thể sử dụng BPFtrace!

https://github.com/aguisor/bpftrace

BPFtrace is a high-level tracing language for Linux enhanced Berkeley Packet Filter (eBPF) available in recent Linux kernels (4.x). BPFtrace uses LLVM as a backend to compile scripts to BPF-bytecode and makes use of BCC for interacting with the Linux BPF system, as well as existing Linux tracing capabilities: kernel dynamic tracing (kprobes), user-level dynamic tracing (uprobes), and tracepoints. The BPFtrace language is inspired by awk and C, and predecessor tracers such as DTrace and SystemTap. BPFtrace was created by Alastair Robertson.

các loại đầu dò bpftrace

Câu trả lời cũ:

You can install the Linux port of Sun/Oracle dtrace from source here: https://github.com/dtrace4linux/linux

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.