每个任务队列都有一组关联的 kstat 计数器。检查以下 kstat(1M) 命令的输出:
$ kstat -c taskq module: unix instance: 0 name: ata_nexus_enum_tq class: taskq crtime 53.877907833 executed 0 maxtasks 0 nactive 1 nalloc 0 priority 60 snaptime 258059.249256749 tasks 0 threads 1 totaltime 0 module: unix instance: 0 name: callout_taskq class: taskq crtime 0 executed 13956358 maxtasks 4 nactive 4 nalloc 0 priority 99 snaptime 258059.24981709 tasks 13956358 threads 2 totaltime 120247890619 |
以上所示的 kstat 输出包含以下信息:
任务队列的名称及其实例编号
已调度任务的数目 (tasks) 以及已执行任务的数目 (executed)
处理任务队列的内核线程数 ( threads) 及其优先级 (priority)
处理所有任务花费的总时间(以纳秒为单位)(totaltime)
以下示例说明如何使用 kstat 命令来观察计数器(已调度任务的数目)是如何随时间而递增的:
$ kstat -p unix:0:callout_taskq:tasks 1 5 unix:0:callout_taskq:tasks 13994642 unix:0:callout_taskq:tasks 13994711 unix:0:callout_taskq:tasks 13994784 unix:0:callout_taskq:tasks 13994855 unix:0:callout_taskq:tasks 13994926 |