Oninit Logo
The Down System Specialists
+1-913-674-0360
+44-2081-337529
Partnerships Contact
Onstat -a -b/-B -C -c -d/-D -F -f -G -h -i -j -k/-K -L -l -m -o -P -p -R -r -s -t/-T -u -X -x -z

onstat -g cpu Runtime Statistics

The onstat -g cpu command displays the runtime statistics for each thread

Thread CPU Info:
 tid    name              vp       Last Run           CPU Time     #scheds    status
 2      lio vp 0          3lio*   05/17 14:50:12        0.0000          1    IO Idle
 3      pio vp 0          4pio*   05/17 14:50:14        0.1003          2    IO Idle
 4      aio vp 0          5aio*   06/05 11:19:00    29409.7586    9587799    IO Idle
 5      msc vp 0          6msc*   06/05 11:13:08        0.5395       8285    IO Idle
 6      fifo vp 0         7fifo*  05/17 14:50:17        0.1003          2    IO Idle
 7      aio vp 1         18aio*   06/05 11:18:41    26612.1701     547051    IO Idle
 8      aio vp 2         19aio*   06/05 11:18:41    20347.7772     192793    IO Idle
 9      aio vp 3         20aio*   06/05 11:18:41    17557.7473      98296    IO Idle
 10     aio vp 4         21aio*   06/05 11:18:41    15019.1089      58158    IO Idle
 11     aio vp 5         22aio*   06/05 11:18:41    13677.5354      37307    IO Idle
 12     aio vp 6         23aio*   06/05 11:18:41    12590.4999      25941    IO Idle
 13     aio vp 7         24aio*   06/05 11:18:41    12126.8398      19536    IO Idle
 14     aio vp 8         25aio*   06/05 11:18:41    11624.9303      15885    IO Idle
 15     aio vp 9         26aio*   06/05 11:18:41    11156.8239      13536    IO Idle
 16     aio vp 10        27aio*   06/05 11:07:54    10725.3271      10801    IO Idle
 17     aio vp 12        28aio*   06/05 11:07:54    10162.7624       7455    IO Idle
 18     aio vp 13        32aio*   06/05 11:01:27     9756.4333       6810    IO Idle
 19     aio vp 11        29aio*   06/05 11:07:54    10477.7255       8890    IO Idle
 20     aio vp 14        30aio*   06/05 11:01:27     9506.3932       6260    IO Idle
 21     aio vp 15        31aio*   06/05 11:01:27     9397.0935       5144    IO Idle
 22     main_loop()      12cpu    06/05 11:19:18      173.9541    2615494    sleeping secs: 1
 23     sm_poll           1cpu*   06/05 11:19:18  1103818.1445  887544368    sleeping forever
 24     soctcppoll       33soc*   06/05 11:19:18  1628937.9008  179442184    running
 25     sm_listen         1cpu    05/17 14:50:21        0.0006         13    sleeping forever
 26     sm_discon        11cpu    06/05 11:19:18       11.5217    1628134    sleeping secs: 1
 27     soctcplst         1cpu*   06/05 11:19:10      420.8395    4888852    sleeping forever
 28     soctcplst         8cpu*   06/04 11:01:31        0.0013         16    sleeping forever
 29     flush_sub(0)     11cpu    06/05 11:19:18       18.9316    1836335    sleeping secs: 1
 30     flush_sub(1)     11cpu    06/05 11:19:18       29.5947    2133469    sleeping secs: 1
 31     flush_sub(2)     12cpu    06/05 11:19:18       29.8892    2123998    sleeping secs: 1
 32     flush_sub(3)     10cpu    06/05 11:19:18       96.6285    4833916    IO Wait
.......

Output Description

Option Description
tid The ID of the thread
name The name of the thread
vp The ID of the virtual processor in which the thread is running
Last Run The timestamp when the thread last ran
CPU Time The time taken until now by the thread.
#scheds The number of times the thread was scheduled to run
status The status of the thread. Possible status values are:
  • cond wait
  • IO Idle
  • join wait
  • mutex wait
  • ready
  • sleeping
  • terminated
  • running
  • yield

Notes

    The number of threads can help determine if there are any internal issues, for example ER uses thread throttling when apply issues are seen on the target, so if the number of ER threads is low there might be a problem.

    The CPU time shown for a thread is updated each time the thread yields and is based on the change in clock time since the thread last started. For threads such as the poll threads, which spend the majority of their time in an OS call such as select(), epoll_wait() or similar, the oninit process (the SOC VP) will not be consuming any processor time yet IDS will show that thread as running. Hence for poll threads the onstat -g cpu time will be unhelpful(1), and the time shown by onstat -g glo for the SOC VP will be accurate as this reflects that actual time consumed by the process which is calculated by the kernel. It reflects real time / clock time and not the amount of actual cpu time consumed by that thread. IDS does not know when a thread makes a system call that potentially will block (these calls happen all the time for the poll threads). All IDS knows is that the thread's state is running (from the IDS perspective) but that does not mean the process is running at the OS level.

To discuss how Oninit ® can assist please call on +1-913-674-0360 or alternatively just send an email specifying your requirements.