如何让 nfsv3* DTrace 脚本在 OpenIndiana 上运行?

如何让 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 非常大,其路径名为

<unknown>

有人知道这些故障的详细信息以及解决方法吗?

答案1

第一个脚本失败,因为示例不正确。您无法args[]在以这种方式遍历探测器的同时进行引用(因为匹配模式的探测器可能会在启用仍然有效时出现和消失,因此args[N]无法保证类型)。您需要为您关心的每个操作nfs3-op-*逐一列出,以逗号分隔 等。nfs3:::op-read-start,nfs3:::op-write-start

因为nfsv3fileio.d“未知”的 Rbytes 和 Wbytes 非常大,因为它们是所有未知路径(可能是几个,也可能很多)的 I/O 的总和。

路径是<unknown>因为内核只是懒惰地将路径信息存储在 vnode 中(如果碰巧存在,则会存储,但不会主动查找)。因此,路径并不总是可用的。有时有一些技巧可以强制它到位(我似乎记得应该find通过所涉及的 FS 来实现这一点,但我的记忆可能在作怪)。

相关内容