The efficiency column in the onstat -g glo output (see below) is an indicator of how well the oninits are being scheduled by the operating system. If the efficiency is to low for the cpu vps the performance of the database server will be effected. The “efficiency column” is there to provide a simple number to gauge how well the database server and operating system play together. Hopefully they are cooperating buddies.
MT global info: sessions threads vps lngspins 0 26 7 0 sched calls thread switches yield 0 yield n yield forever total: 655 607 69 71 144 per sec: 152 141 3 33 27 Virtual processor summary: class vps usercpu syscpu total cpu 1 215.94 0.10 216.04 aio 1 0.00 0.00 0.00 lio 1 0.00 0.00 0.00 pio 1 0.00 0.00 0.00 adm 1 0.00 0.00 0.00 msc 1 0.00 0.00 0.00 fifo 1 0.00 0.00 0.00 total 7 215.94 0.10 216.04 Individual virtual processors: vp pid class usercpu syscpu total Thread Eff 1 2025 cpu 215.94 0.10 216.04 247.93 87% 2 2027 adm 0.00 0.00 0.00 0.00 0% 3 2028 lio 0.00 0.00 0.00 0.26 0% 4 2029 pio 0.00 0.00 0.00 0.07 0% 5 2030 aio 0.00 0.00 0.00 1.45 0% 6 2031 msc 0.00 0.00 0.00 0.06 0% 7 2032 fifo 0.00 0.00 0.00 0.00 0% tot 215.94 0.10 216.04
In short, the formula behind the scenes is very simple ratio of
( Total Operating System time executing on a hardware processor) divided by ( Total time of the Informix threads executing on the Virtual Processors)
In the stats you provided below:
VP #1
=====
Total time given to the operating system processor 216.04
Total time of all threads running on the VP 247.93
This means the Informix threads where running on the oninit processes for (247.93 - 216.04 = ) 31.89 seconds without finding a hardware processor available to execute on. While we do realize Unix is sharing the resources, if the efficiency drops below 80% one should start looking at the marriage of the database server to the operating system.