Насколько я могу судить, реализация DTrace в Linux сдерживается лицензированием и политикой. Какие есть альтернативы в настоящее время?
Какая альтернатива DTrace в Linux?
Ответы (6)
Systemtap предназначен для решения тех же проблем, что и dtrace, и имеет аналогичный пользовательский интерфейс - пользователь пишет небольшие скрипты, которые прикрепляют действия к именованным зондам.
Он считается нестабильным, обычно он не компилируется в ваше ядро по умолчанию, но как только он заработал, у меня не возникло никаких проблем.
Вы можете увидеть его сравнение с dtrace в этой таблице на веб-сайте systemtap (может быть партизан: - )
Dtrace был частично перенесен на Linux энтузиастом Полом Фоксом и доступен для загрузки, чтобы вы могли попробовать - посмотрите ссылки на его блог.
Было сказано, что kprobes являются заменой dtrace, но я никогда не пробовал их.
SystemTap - это абстракция более высокого уровня, построенная на Kprobes. Для получения дополнительной информации о том, как работает Kprobes, вы можете прочитать мою техническую статью о LWN.
Как упоминал Алекс, Systemtap, по сути, решает ту же проблему, что и dtrace, за исключением того, что он несколько медленнее (вы можете не воспринимать это так, в зависимости от того, что вы пытаетесь с ним делать), чем dtrace, и не так отполирован или безопасен. использовать.
Чтобы установить пакет разработки SystemTap SDT, попробуйте:
yum install systemtap-sdt-devel
sysdig
- теперь отличное решение.
Вот некоторые примеры использования (в их вики есть несколько исключительно интересных примеров):
Для дискового ввода-вывода
- # P3 #
# P4 #
- # P5 #
# P6 #
- # P7 #
# P8 #
- # P9 #
# P10 #
- # P11 #
# P12 #
- # P13 #
# P14 #
- # P15 #
# P16 #
- # P17 #
# P18 #
- # P19 #
# P20 #
dtrace существует для Linux (https://github.com/dtrace4linux) и http://crtags.blogspot.com.
Oracle переносит DTrace на Linux: https://oss.oracle.com/projects/DTrace/
Не знаю, работает ли это только с их дистрибутивом Linux или с любым другим.
В Linux есть strace / ltrace (см. этот пост о strace). Но на самом деле они не эквивалентны DTrace, они просто покрывают небольшую часть того, что может делать DTrace (на самом деле, DTrace значительно превосходит все, что предлагает Linux).
strace
ближе к truss
, чем к dtrace
.
- person Mircea Vutcovici; 17.10.2014