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