标签: dtrace

我的 ZFS ARC 和 L2ARC 缓存中有什么?

我在家里有一个简单的 ZFS 设置,四个磁盘镜像,8GB 内存和 120GB 英特尔 X25-M SSD 用于 L2ARC。我运行zpool add poolname cache cXtXdX然后生成负载并通过运行zpool iostat -v mypool. 几个小时后,L2ARC 已满,但究竟缓存了什么?

我可以窥视一下我的 ARC/L2ARC 中有什么吗?我知道某些块会映射到多个文件系统(由于快照、克隆或重复数据删除),但我仍然想对以下统计数据进行采样:

  • 缓存的块类型:元数据。iSCSI,数据。等等。
  • 年龄:每个区块在 L2ARC 中存在多长时间
  • 哪些文件:缓存了部分内容的目录
  • 文件系统细分:每个文件系统缓存 GB
  • 块的非易失性副本的位置(驱动器/vdev)

我想 zdb 和/或 dtrace 将是日常工具,但真的不知道从哪里开始。

solaris zfs dtrace ssd zfs-l2arc

8
推荐指数
2
解决办法
8900
查看次数

Centos/Fedora 上的 DTrace 受限

我想在 Centos 6 机器上解决一个问题。我运行了 dtrace 但它失败了。它不接受-n-l-P或任何命令行选项。它声称只接受-h-G-C-I-s,和-o。我想这一定是 Centos 的一些奇怪的东西,所以我去 Fedora 22 机器上进行验证。同样的问题。它只接受数量非常有限的命令行选项。我去尝试了一个 Oracle box,它非常像 Centos 和 Fedora 的 RedHat。它工作得很好。我能够运行dtrace并获得所有命令行选项的长列表。我回到 Centos 和 Fedora。当我输入时dtrace,输出是Usage /bin/dtrace [--help] [-h | -G] [-C [-I<Path>]] -s File.d [-o <File>]. 所以,经过一个小时的谷歌搜索,我放弃了。如何让 dtrace 在 Centos/Fedora 上正常工作?我已经以 root 和用户身份尝试过。我搜索了软件包以增加功能。我试过删除并重新安装 dtrace。剩下的唯一事情就是删除软件包并从源代码安装 dtrace。

fedora dtrace centos

8
推荐指数
1
解决办法
5446
查看次数

如何找到在一段时间内在 OS X (Leopard) 上运行的进程(带有 args)?

我试图找出特定进程在 OS X 机器上执行的进程(包括参数)。我之前没有使用过 DTrace,但认为它应该是微不足道的。环顾四周后,我发现了这个,它看起来和我想要的完全一样:

$ sudo dtrace -n 'proc:::exec-success { trace(curpsinfo->pr_psargs); }'
Run Code Online (Sandbox Code Playgroud)

只是,它不能正常工作。列出该命令的站点之一具有看起来很完美的示例输出,但是当我尝试在 OS X 上运行它时,我得到以下信息:

dtrace: description 'proc:::exec-success ' matched 2 probes
CPU     ID                    FUNCTION:NAME
  0  18616         posix_spawn:exec-success 
             0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f  0123456789abcdef
         0: 6d 64 77 6f 72 6b 65 72 00 73 6b 00 00 00 00 00  mdworker.sk.....
        10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
Run Code Online (Sandbox Code Playgroud)

dtrace mac-osx

5
推荐指数
1
解决办法
1624
查看次数

在 Mac OS X 上启用没有 sudo 的 dtrace?

如何使用户能够在 Mac OS X 上使用 dtrace。我正在尝试在 Linux 上执行与 strace 等效的操作,但我不喜欢以提升的权限运行应用程序。

更新

好吧,我能说的最好。防止恶意应用程序通过调试破坏系统的唯一方法是。

  1. 在单独的控制台中附加到进程
  2. 使用 sudo 两次

以便:

sudo dtruss sudo -u myusername potentially_harmful_app
Run Code Online (Sandbox Code Playgroud)

我用这个简短的程序验证了这一点:

#include <iostream>
#include <unistd.h>
int main()
{
  std::cout << "effective euid " << geteuid() << "\n";
}
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅此讨论:

http://discussions.apple.com/message.jspa?messageID=6430877

mac dtrace mac-osx sudo

5
推荐指数
1
解决办法
5228
查看次数

如何在 solaris 上使用 dtrace 跟踪文件访问

我想了解如何在 Solaris 上跟踪(显示)文件访问。我已经找到了dtrace 工具包,希望voptrace能满足要求。我运行它,voptrace -t /my/path如果我lscat该路径下的文件不产生任何输出。我看错工具了吗?有人可以建议另一个人找到解决方案吗?

更新
@bahamat

好的,它给出了这样的错误消息:

dtrace: error on enabled probe ID 3 (ID 126: syscall::openat:entry): invalid address (0xffd19652) in predicate at DIF offset 28

重定向 stderr 后,它似乎实际上与我想要的非常接近。

solaris dtrace

5
推荐指数
1
解决办法
3523
查看次数

标签 统计

dtrace ×5

mac-osx ×2

solaris ×2

centos ×1

fedora ×1

mac ×1

ssd ×1

sudo ×1

zfs ×1

zfs-l2arc ×1