onstat -g wst 命令:打印线程的等待统计信息

可以使用 onstat -g wst 命令显示系统中线程的等待统计信息。

WSTATS 配置参数必须设置为 1 来启用等待信息收集。有关更多信息,请参阅 WSTATS 配置参数

语法:

示例输出

Version 11.70.F  -- On-Line -- Up 18:52:59 -- 78856 Kbytes
        name   tid    state            n         avg(us)    max(us)
        msc vp 0 5    ready            6               9        17 
        msc vp 0 5    run              6            1107      2215 
        msc vp 0 5    IO Idle          5          2985.9s   1496.1s
        
        main_loo 7    IO Wait          55           6496     16725 
        main_loo 7    yield time       44929         1.2s    343.1s
        main_loo 7    ready            44998      206085     343.1s
        main_loo 7    run              44985           5       436 
        
        ...
        
        sqlexec  63   IO Wait          2            1118      2165 
        sqlexec  63   other cond       6           34237    204142 
        sqlexec  63   ready            9               7        16 
        sqlexec  63   run              7             1.1s      7.7s

输出描述

name (string)
线程名称
tid (decimal)
线程 ID
state (string)
说明在此输出行内等待的线程。如果单个线程在多个不同的状态中等待,那么它可能有多行输出。 state 字段能包含的值有:
  • chkpt cond: 线程等待 checkpoint 条件
  • cp mutex: 线程等待 checkpoint 互斥可用
  • deadlock mutex: 线程等待死锁互斥可用
  • empty Q: 线程等待队列中的空缓冲区
  • fork: 线程等待子线程运行
  • full Q: 线程等待队列上的一个完整的缓冲区
  • IO Idle: I/O 线程空闲
  • IO Wait: 线程产生,同时等待 I/O 完成
  • join wait: 线程等待另一个线程退出
  • lock mutex: 线程等待锁定互斥可用
  • lockfree mutex: 线程等待锁释放互斥可用
  • logflush: 发生逻辑日志清空
  • log mutex: 线程等待逻辑日志互斥可用
  • logcopy cond: 线程等待逻辑日志复制互斥可用
  • logio cond: 线程等待逻辑日志条件
  • lrus mutex: 线程等待缓冲区 LRU 互斥可用
  • misc: 现场等待杂项理由
  • other cond: 线程等待内部条件
  • other mutex: 线程等待内部系统互斥可用
  • other yield: 线程等待内部原因
  • OS read: 线程等待操作系统读请求完成
  • OS write: 线程等待操作系统写请求完成
  • ready: 线程已准备好运行
  • run: 线程已运行
  • sort io: 线程等待排序 I/O 完成
  • vp mem sync: 线程等待虚拟处理器同步
  • yield bufwait: 线程产生,同时等待缓冲区可用
  • yield 0: 线程产生,但立即超时
  • yield time: 线程产生超时
  • yield forever: 线程产生并保持这种方式,直到它被唤醒
n (decimal)
在此状态下等待的线程次数
avg(us) (floating point)
每次等待发生的时候,线程在此状态下等待的平均用户时间。时间的单位为微秒,值后的 s 表示以秒为单位计算用户时间。
max(us) (floating point)
等待发生的时候,线程在此状态下等待的最大用户时间。时间的单位为微秒,值后的 s 表示以秒为单位计算用户时间。