Re: Informix hogging CPU
Posted in 1997
The multithreading architecture of DSA uses the virtual processors scheme in
which we have the CPU virtual processors (they are called CPU VPs because they
run the cpu intensive threads and they are supossed to make non-blocking system
calls).
There's allways a low priority problem related with CPU VPs in Unix OSes thas
use traditional scheduling schemes (like HP-UX 9.04). As the traditional
schemes tend to decrease the priority of the CPU intensive processes and the
CPU VPs allways consume their entire CPU quantum, the CPU VPs have allways a
very low priority in production environments.
HP-UX 10.X OS designers gave to software developers a solution to this problem
that was the one used in the implementation of DSA 7.X for HP-UX 10.X : a
system call a process make to tell the kernel not to decrease its priority.
Informix On-Line DSA 7.X for HP-UX 10.X uses this system call when the
parameter NOAGE is on. I think DSA makes the system call at initialization
time when oninit processes wait for some system calls to complete (at that
moment their priority is pretty good because they don't have consumed their
entire CPU quantum and the OS doesnt't have lowed their priority). If the CPU
VPs processes have a fixed high priority, the other processes with lower
priorities won't run until the oninit processes go to sleep or until the OS
assigns them a higher priority.
If nobody except the oninit processes cand do anything (the telnet server
processes, shells, etc), the problem is like the OS is not giving CPU to anyone
else than the oninit processes (because the other processes have lower
priorities than the oninit, and the OS doesn't decrease the priority of the
oninit processes because they have made the system call i metioned before
because of the value of the NOAGE parameter).
So, turn off the NOAGE parameter.!!!!
Fernando Alvarez
falvarez@inea.com.ar
Mike Matthews wrote:
> I am running Informix Online Server version 7.1 on D250, one cpu, HPUX
> 10.10. When Informix gets hit with an SQL statement doing a few joins an a
> 35,000 record database, the system just crawls while the statement
> executes (takes about 5 minutes). No one can login and if you are logged
> in, you get a response to hitting ENTER about 40 seconds after hitting it.
> TOP shows oninit processes running with a priority of -16 and oninit
> processes using about 90% of the CPU. I don't see any obvious errors in
> the ONCONFIG file. Has anyone seen anything like this and is there any way
> of configuring Informix to use less CPU?
>
> TIA
>
> Mike Matthews
> mmatt@halcyon.com