HP, KAIO and statistics. What's wrong ?
Posted in 1999
Question: on HP-UX 10.20 with IDS 7.30.UC6 and KAIO enabled, onstat -g ioq/iov list four kio VPs but only one shows any I/O activity — is kio a real VP and what do the others do? Art Kagel explained KAIO is implemented as one kernel-level thread inside each CPU VP, serving only that VP's I/O (hence 1-to-1 with CPU VPs, so with one CPU VP only one kio thread works); on HP-UX the kernel AIO is genuine. The surplus idle kio entries are a known onstat reporting bug (a bug number was reportedly posted) and those threads don't really exist. A later poster's VP/thread listing drew no further diagnosis.
Auto-generated by DrWatson from the posts below — may be imperfect; read the full thread.
Topics: Server Administration, Platform-Specific Issues, Versions, Editions & End-of-Life
Hi Informix'ers
I've crossed with a strange problem.
HP-UX B.10.20 with all recommended Informix patches,
IDS 7.30 UC6
Startup script:
KAIOON=1
Release instruction about KAIO done.
" To ensure KAIO driver is up and running, check to see if there
is /dev/async, if not follow these steps:
1) su root
2) /usr/sbin/mknod /dev/async c 101 4
3) chmod 0666 /dev/async
"
ls -l /dev/async
crw-rw-rw- 1 root sys 101 0x000004 Feb 10 1999 /dev/async
onconfig
RESIDENT -1 # Forced residency flag (Yes = 1, No = 0)
MULTIPROCESSOR 0 # 0 for single-processor, 1 for multi-processor
NUMCPUVPS 1 # Number of user (cpu) vps
SINGLE_CPU_VP 1 # If non-zero, limit number of cpu vps to one
NOAGE 1 # Process aging
AFF_SPROC 0 # Affinity start processor
AFF_NPROCS 0 # Affinity number of processors
NUMAIOVPS 8 # Number of IO vps
online.log
14:17:44 HPUX Version B.10.20 -> Using flag/select style KAIO
KIO VP's are presented in a system.
onstat -g iobAIO big buffer usage summary:
class reads writes
pages ops pgs/op holes hl-ops hls/op pages ops pgs/op
kio 563111 57528 9.79 106405 51566 2.06 40229 1367 29.43
adt 0 0 0.00 0 0 0.00 0 0 0.00
msc 0 0 0.00 0 0 0.00 0 0 0.00
aio 1 1 1.00 0 0 0.00 0 0 0.00
pio 0 0 0.00 0 0 0.00 0 0 0.00
lio 0 0 0.00 0 0 0.00 0 0 0.00
BUT, I've seen in informix statistics that only ONE kio vp works.
onstat -g ioq
AIO I/O queues:q name/id len maxlen totalops dskread dskwrite dskcopy
kio 0 0 0 0 0 0 0
kio 1 0 16 458065 456688 1377 0
kio 2 0 0 0 0 0 0
kio 3 0 0 0 0 0 0
adt 0 0 0 0 0 0 0
msc 0 0 1 116 0 0 0
aio 0 0 7 41 8 2 0
pio 0 0 0 0 0 0 0
lio 0 0 0 0 0 0 0
gfd 3 0 1 1 1 0 0
gfd 4 0 0 0 0 0 0
gfd 5 0 0 0 0 0 0
gfd 6 0 0 0 0 0 0
gfd 7 0 0 0 0 0 0
gfd 8 0 0 0 0 0 0
gfd 9 0 0 0 0 0 0
onstat -g iov
AIO I/O vps:class/vp s io/s totalops dskread dskwrite dskcopy wakeups io/wup errors
kio 0 i 0.0 0 0 0 0 0 0.0 0
kio 1 i 7.3 58895 57528 1367 0 63066 0.9 0
kio 2 i 0.0 0 0 0 0 0 0.0 0
kio 3 i 0.0 0 0 0 0 0 0.0 0
msc 0 i 0.0 116 0 0 0 117 1.0 0
aio 0 i 0.0 16 1 0 0 16 1.0 0
aio 1 i 0.0 13 3 1 0 12 1.1 0
aio 2 i 0.0 8 5 1 0 8 1.0 0
aio 3 i 0.0 1 0 0 0 1 1.0 0
aio 4 i 0.0 1 0 0 0 1 1.0 0
aio 5 i 0.0 1 0 0 0 1 1.0 0
aio 6 i 0.0 1 0 0 0 1 1.0 0
aio 7 i 0.0 1 0 0 0 2 0.5 0
pio 0 i 0.0 0 0 0 0 1 0.0 0
lio 0 i 0.0 0 0 0 0 1 0.0 0
The question is what do other kio vp's DO ?
Why do I have only one kio vp that works in the system ?
Is kio REAL VIRTUAL processor ?
I figure out the strange statistics.
Any suggestion, opinion and advise are welcome.
Eugene Nechayev
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own
Eugene Nechayev wrote:
>
> Hi Informixers
>
> Ive crossed with a strange problem.
>
> HP-UX B.10.20 with all recommended Informix patches,
> IDS 7.30 UC6
[SNIP]
>
> The question is what do other kio vp's DO ?
> Why do I have only one kio vp that works in the system ?
>
> Is kio REAL VIRTUAL processor ?
The engine KAIO is implemented through a single kernel level thread in
each CPU VP which handles launching Asynch I/O requests for that VP and
catching the resulting buffers when they are available. On systems
without true kernel Asynchronous I/O (DGUX is one notable example) the
KAIO thread actually performs synchronous I/O itself and allows the
main VP threads to believe that the I/O is asynch. Since HP does
indeed have kernel AIO support the kio threads are real. Why show
four threads in the report when there is only one CPU VP and therefore
only one kaio thread? Actually there are always a few extra kaio
threads reported by onstat (I have 10 CPU VPs and 12 kio threads) I
don't know why. I used to think one was reserved for lio and pio
support but that does not explain why you have three extras!
Art S. Kagel
It used to be a 1-to-1 relationship between CPU VPs and KAIO threads.
Could there be a slight change to the engine architecture to allow a fwe
'extras' out there? I never fully understood why the 1-to-1 existed
anyway.
John Carlson
Informix DBA
WHSmith USA
Art S. Kagel wrote:
>
> Eugene Nechayev wrote:
> >
> > Hi Informixers
> >
> > Ive crossed with a strange problem.
> >
> > HP-UX B.10.20 with all recommended Informix patches,
> > IDS 7.30 UC6
> [SNIP]
> >
> > The question is what do other kio vp's DO ?
> > Why do I have only one kio vp that works in the system ?
> >
> > Is kio REAL VIRTUAL processor ?
>
> The engine KAIO is implemented through a single kernel level thread in
> each CPU VP which handles launching Asynch I/O requests for that VP and
> catching the resulting buffers when they are available. On systems
> without true kernel Asynchronous I/O (DGUX is one notable example) the
> KAIO thread actually performs synchronous I/O itself and allows the
> main VP threads to believe that the I/O is asynch. Since HP does
> indeed have kernel AIO support the kio threads are real. Why show
> four threads in the report when there is only one CPU VP and therefore
> only one kaio thread? Actually there are always a few extra kaio
> threads reported by onstat (I have 10 CPU VPs and 12 kio threads) I
> don't know why. I used to think one was reserved for lio and pio
> support but that does not explain why you have three extras!
>
> Art S. Kagel
On Thu, 18 Mar 1999 16:01:37 GMT, "Carlson@WHSmith"
<carlson1@bellsouth.net> wrote:
>It used to be a 1-to-1 relationship between CPU VPs and KAIO threads.
>Could there be a slight change to the engine architecture to allow a fwe
>'extras' out there? I never fully understood why the 1-to-1 existed
>anyway.
Since the kaio threads are async, why would you want more than one per
cpu vp?
Btw, if you are seeing kaio threads showing up in onstat running on
aio vps, it is a bug in onstat (or so I was informed by Informix) and
they don't actually exist. Not sure if it is addressed in the latest
rev of 7.3.
Dave
Carlson@WHSmith wrote:
>
> It used to be a 1-to-1 relationship between CPU VPs and KAIO threads.
> Could there be a slight change to the engine architecture to allow a fwe
> 'extras' out there? I never fully understood why the 1-to-1 existed
> anyway.
Soneone posted a bug # this AM that explains the extras. The 1-1
relationship is because the KAIO threads in the engine are each an
actual OS level thread in one of the CPU VPs and it serves I/O requests
for ONLY that CPU VP. Compare the CPU time for each CPU VP in onstat
-g glo to the number of wakeups of the corresponding KIO thread to see
the direct relationship.
Art S. Kagel
I have 2-processor SUN and 2VP:
Virtual processor summary:
class vps usercpu syscpu total
cpu 2 40.46 1.46 41.92
aio 1 0.03 0.14 0.17
tli 1 0.12 0.31 0.43
lio 1 0.04 0.10 0.14
pio 1 0.07 0.30 0.37
adm 1 0.09 0.15 0.24
msc 1 0.18 0.21 0.39
total 8 40.99 2.67 43.66
Individual virtual processors:
vp pid class usercpu syscpu total
1 27468 cpu 24.03 1.05 25.08
2 27469 adm 0.09 0.15 0.24
3 27470 cpu 16.43 0.41 16.84
4 27471 lio 0.04 0.10 0.14
5 27472 pio 0.07 0.30 0.37
6 27473 aio 0.03 0.14 0.17
7 27474 msc 0.18 0.21 0.39
8 27475 tli 0.12 0.31 0.43
tot 40.99 2.67 43.66
however:
23 12138c70 12042a6c 2 sleeping forever 1cpu
flush_sub(8)
---------------------
24 12138e60 0 4 sleeping forever 6aio kaio
---------------------
25 12139050 0 4 sleeping forever 3cpu kaio
---------------------
26 121398c0 12042f20 3 sleeping forever 1cpu
aslogflush
27 12139ba0 120433d4 2 sleeping secs: 32 1cpu
btclean
---------------------
42 12164678 0 4 sleeping forever 1cpu kaio
---------------------
44 12164c38 120441f0 4 sleeping secs: 1 1cpu
onmode_mon
1781 121c2a20 12043d3c 2 cond wait sm_read 1cpu
sqlexec
1996 1243bc38 12047a60 2 cond wait sm_read 1cpu
sqlexec
Look for: onstat -g ath
P.S. Sorry for my English
--
Jarosław Stanisz
jareks@galkom.com.pl
tel.852-43-25
Jaruss wrote:
>
> I have 2-processor SUN and 2VP:
>
> Virtual processor summary:
> class vps usercpu syscpu total
> cpu 2 40.46 1.46 41.92
> aio 1 0.03 0.14 0.17
> tli 1 0.12 0.31 0.43
> lio 1 0.04 0.10 0.14
> pio 1 0.07 0.30 0.37
> adm 1 0.09 0.15 0.24
> msc 1 0.18 0.21 0.39
> total 8 40.99 2.67 43.66
>
> Individual virtual processors:
> vp pid class usercpu syscpu total
> 1 27468 cpu 24.03 1.05 25.08
> 2 27469 adm 0.09 0.15 0.24
> 3 27470 cpu 16.43 0.41 16.84
> 4 27471 lio 0.04 0.10 0.14
> 5 27472 pio 0.07 0.30 0.37
> 6 27473 aio 0.03 0.14 0.17
> 7 27474 msc 0.18 0.21 0.39
> 8 27475 tli 0.12 0.31 0.43
> tot 40.99 2.67 43.66
>
> however:
>
> 23 12138c70 12042a6c 2 sleeping forever 1cpu
> flush_sub(8)
> ---------------------
> 24 12138e60 0 4 sleeping forever 6aio kaio
> ---------------------
> 25 12139050 0 4 sleeping forever 3cpu kaio
> ---------------------
> 26 121398c0 12042f20 3 sleeping forever 1cpu
> aslogflush
> 27 12139ba0 120433d4 2 sleeping secs: 32 1cpu
> btclean
> ---------------------
> 42 12164678 0 4 sleeping forever 1cpu kaio
> ---------------------
> 44 12164c38 120441f0 4 sleeping secs: 1 1cpu
> onmode_mon
> 1781 121c2a20 12043d3c 2 cond wait sm_read 1cpu
> sqlexec
> 1996 1243bc38 12047a60 2 cond wait sm_read 1cpu
> sqlexec
>
> Look for: onstat -g ath
We see your posted stats, however, what is your question/problem?
Everything looks normal in a vacuum.
Art S. Kagel
Related threads
- Posting from the Informix-list
- Migrating from IDS 9.40.UC6 to 11.50.UC3
- Ip for a network session
- questions onstat -g