dtrace 可以打印人类可读的大小吗?

dtrace 可以打印人类可读的大小吗?

有没有办法让 DTrace printf 以人类可读的格式(GB、TB……)输出字节?

例如这里:

#!/usr/sbin/dtrace -s

#pragma D option quiet

dtrace:::BEGIN
{
        trace("Tracing... Hit Ctrl-C to end.\n");
}

nfsv3:::op-read-done
{
        @readbytes[args[1]->noi_curpath] = sum(args[2]->res_u.ok.data.data_len);
}


nfsv3:::op-write-done
{
        @writebytes[args[1]->noi_curpath] = sum(args[2]->res_u.ok.count);
}

dtrace:::END
{
        printf("\n%12s %12s  %s\n", "Rbytes", "Wbytes", "Pathname");
        printa("%@12d %@12d  %s\n", @readbytes, @writebytes);
}

来源http://wikis.sun.com/display/DTrace/nfsv3+Provider

答案1

我不知道 dtrace,但查看该 wiki 页面表明它内置了基本的数学运算符。因此,没有理由不能在打印之前将数字相乘。

相关内容