Отсюда http://wikis.sun.com/display/DTrace/nfsv3+Provider
на OpenIndiana
скрипты DTrace:
терпят неудачу с:
probe description nfsv3:::op-* matches an unstable set of probes
Скрипт nfsv3fileio.d работает, но одна из строк с очень большими Rbytes и Wbytes имеет Pathname как
<unknown>
Кто-нибудь знает какие-либо подробности об этих сбоях и каковы обходные пути?
Первый сценарий не работает, потому что пример неверен. Вы не можете ссылаться args[]
при подборе зонда таким образом (поскольку зонды, соответствующие шаблону, могут приходить и уходить, пока активация все еще действует, поэтому гарантии о типе args[N]
не может быть сделано). Вам нужно будет перечислить каждый nfs3-op-*
индивидуально, через запятую nfs3:::op-read-start,nfs3:::op-write-start
и т. д. для каждой интересующей вас операции.
Для nfsv3fileio.d
Rbytes и Wbytes «unknown» очень велики, потому что они являются суммой всех операций ввода-вывода на неизвестные пути (возможно, несколько, возможно, многие).
Пути <unknown>
потому что ядро только лениво хранит информацию о пути во vnode (если она присутствует, она сохраняется, но активно не ищется). И как таковой не всегда доступен. Есть уловки, которые иногда заставляют его встать на место (я припоминаю, что find
через рассматриваемый ФС должен это делать, но моя память могла подшутить).