plockstat – 报告用户级锁定统计数据
该 plockstat 实用工具收集并显示用户级锁定统计数据。默认情况下,plockstat 监控所有锁定内容事件,收集这些事件的频率和时间数据,以递减顺序显示数据,使最常见的事件出现在最上方。plockstat 收集数据,直到指定的命令完成或使用 -p 选项指定的进程完成。plockstat 依赖 DTrace 检测运行的进程或它调用的命令,以跟踪感兴趣的事件。这将在观察的进程上强加一个很小但可度量的性能开销。用户必须拥有 dtrace_proc 权限以及使用 plockstat 观察特定进程的权限。
让我们研究一下 plockstat 的输出,从运行读/写示例锁定程序 cc_lck 开始。首先启动 cc_lck,将写入器阻塞 10 毫秒。
* cc_lck 10
然后运行 plockstat 工具 10 秒钟:
*plockstat -A -e 10 -p <pid>
得到的输出应该类似于下面的屏幕截图。从输出中可以看到,读/写锁定了一些内容。
plockstat – 示例输出
pfilestat [DtraceToolkit] – 跟踪 I/O 中花费的时间
pfilestat 打印进程中每个文件描述符的 I/O 统计数据。具体来说,即 read() and write() 事件中损耗的时间。此工具有助于了解进程 I/O 的影响。
为了研究 pfilestat 的输出,我们首先启动以下命令:
* dd if=/dev/rdsk/c1d0s0 of=/dev/null bs=1k &
然后在另一个窗口中启动 pfilestat 工具,并使用 dd 命令的 pid 作为参数:
* pfilestat <dd 命令的 pid>
得到的输出应该类似于下面的屏幕截图:
pfilestat – 示例输出
pfilestat 消耗的进程时间包括读取 (read)、写入 (write)、等待 CPU (waitcpu)、在 CPU 运行 (running)、读取时休眠 (sleep-r) 和写入时休眠 (sleep-w) 时间。
cputrack/cpustat – 监控流程/系统 w/ CPU perf. 计数器
cputrack 实用工具允许将 CPU 性能计数器用于监控系统上运行的进程或进程家族的行为。cpustat 实用工具允许将 CPU 性能计数器用于监控系统中 CPU 的整体行为。
使用 cputrack/cpustat 查询被测 CPU 和系统的详细情况。有关可用计数器的详细内容,请参考系统/CPU 文档。cpustat 或 cputrack(带 -h 选项)可以列出所有可用的性能计数器。
为了观察 cputrack 的输出,我们使用示例程序 cc_usr 运行该工具。
使用以下命令(只有一行):
* cputrack -t -c pic0=FP_dispatched_fpu_ops,cmask0=0,umask0=0x7,pic1=FR_retired_x86_instr_w_excp_intr,cmask1=0 cc_usr
输出如下:
cputrack – 示例输出
在上面的输出中,我们可以看到 cc_usr 程序每秒中执行了近 60000 万条指令,近 16000 万次浮点运算。