在哪里可以找到有关 IO 在 zfs 数据集之间如何分配的统计数据?(zpool iostat 仅告诉我池正在经历多少 IO。)
所有相关数据集均通过 NFS 使用,因此我对每个导出的 NFS IO 统计数据也感到满意。
我们目前正在举办 OpenIndiana
[编辑]
似乎操作和字节计数器在 kstat 中可用
kstat -p unix:*:vopstats_???????
...
unix:0:vopstats_2d90002:nputpage 50
unix:0:vopstats_2d90002:nread 12390785
...
unix:0:vopstats_2d90002:read_bytes 22272845340
unix:0:vopstats_2d90002:readdir_bytes 477996168
...
...但奇怪的十六进制 ID 号必须从/etc/mnttab
(更好的想法?)中解析。
rpool/export/home/jkj /export/home/jkj zfs rw,...,dev=2d90002 1308471917
现在编写一个 munin 插件来使用数据......
答案1
怎么样... 在这个例子中,我有一个 ZFS 文件系统“/volumes/lab3_pool_a/data02/alpha/”,我正在使用 fsstat 获取有关它的一些基本统计数据。请注意,我获取的是整个 ZFS 和这个文件系统的统计数据。顺便说一句,fsstat 有一些不错的选项,可能正好满足您的需求。
# fsstat zfs /volumes/lab3_pool_a/data02/alpha/ 1
new name name attr attr lookup rddir read read write write
file remov chng get set ops ops ops bytes ops bytes
0 0 0 27 0 27 0 0 0 1 208 zfs
0 0 0 0 0 0 0 0 0 0 0 /volumes/lab3_pool_a/data02/alpha
答案2
补充上面 slashdot 的评论:这一行代码对所有 ZFS 数据集执行相同的操作(由 mount(1M) 输出中的设备列的模式确定):
fsstat -i `mount | awk '{if($3 ~ /^[^\/:]+\//) {print $1;}}'` 1