Buffer Waiting ( onstat -l )
Posted in 2010
Topics: Logging & Checkpoints
Hello,
In the below mentioned output of onstat -l , there is a portion "Buffer
Waiting".
What does this "Buffer Waiting" mean? How could this output be useful for a
database administrator?
onstat -l
###################################################
Physical Logging
Buffer bufused bufsize numpages numwrits pages/io
P-1 87 128 1713840 14968 114.50
phybegin physize phypos phyused %used
30:301395 350000 70785 8083 2.31
Logical Logging
Buffer bufused bufsize numrecs numpages numwrits recs/pages pages/io
L-3 1 128 42606369 9615213 9165563 4.4 1.0
Subsystem numrecs Log Space used
OLDRSAM 42605992 4571881364
HA 377 16588
Buffer Waiting
Buffer ioproc flags
L-3 0 0x8 0
address number flags uniqid begin size used %used
11bd74f98 1 U------ 49643 1:7573 25000 25000 100.00
11d294528 2 U------ 49644 1:32573 25000 25000 100.00
11d294590 3 U------ 49645 1:57573 25000 25000 100.00
11d2945f8 4 U-----L 49646 1:82573 25000 25000 100.00
11d294660 5 U---C-- 49647 4:53 51200 46361 90.55
11d2946c8 6 U-B---- 49616 4:51253 51200 51200 100.00
11d294730 7 U-B---- 49617 4:102453 51200 51200 100.00
11d294798 8 U-B---- 49618 4:153653 51200 51200 100.00
11d294800 9 U-B---- 49619 4:204853 51200 3318 6.48
11d294868 10 U-B---- 49620 4:256053 51200 51200 100.00
11d2948d0 11 U-B---- 49621 4:307253 51200 51200 100.00
11d294938 12 U-B---- 49622 4:358453 51200 51200 100.00
11d2949a0 13 U-B---- 49623 4:409653 51200 51200 100.00
11d294a08 14 U-B---- 49624 4:460853 51200 51200 100.00
11d294a70 15 U-B---- 49625 4:512053 51200 47863 93.48
11d294ad8 16 U-B---- 49626 4:563253 51200 51200 100.00
11d294b40 17 U-B---- 49627 4:614453 51200 51200 100.00
11d294ba8 18 U-B---- 49628 4:665653 51200 51200 100.00
11d294c10 19 U-B---- 49629 4:716853 51200 51200 100.00
11d294c78 20 U-B---- 49630 4:768053 51200 51200 100.00
11d294ce0 21 U-B---- 49631 4:819253 51200 152 0.30
11d294d48 22 U-B---- 49632 4:870453 51200 51200 100.00
11d294db0 23 U-B---- 49633 4:921653 51200 51200 100.00
11d294e18 24 U-B---- 49634 32:53 256000 56827 22.20
11d294e80 25 U-B---- 49635 32:256053 256000 256000 100.00
11d294ee8 26 U-B---- 49636 32:512053 256000 256000 100.00
11d294f50 27 U-B---- 49637 32:768053 256000 10958 4.28
11d294fb8 28 U-B---- 49638 32:1024053 256000 256000 100.00
11bee4f50 29 U-B---- 49639 32:1280053 256000 236939 92.55
11bee4fb8 30 U-B---- 49640 32:1536053 256000 256000 100.00
11becbf50 31 U-B---- 49641 32:1792053 152549 152549 100.00
11becbfb8 32 U-B---- 49642 32:1944602 152550 93255 61.13
32 active, 32 total
--
Regards,
Anees
The number of times that threads (sessions) had to wait to obtain a buffer. It's measure of system concurrency.
You wrote:
Hello,
In the below mentioned output of onstat -l , there is a portion "Buffer
Waiting".
What does this "Buffer Waiting" mean? How could this output be useful for a
database administrator?
onstat -l
###################################################
Physical Logging
Buffer bufused bufsize numpages numwrits pages/io
P-1 87 128 1713840 14968 114.50
phybegin physize phypos phyused %used
30:301395 350000 70785 8083 2.31
Logical Logging
Buffer bufused bufsize numrecs numpages numwrits recs/pages pages/io
L-3 1 128 42606369 9615213 9165563 4.4 1.0
Subsystem numrecs Log Space used
OLDRSAM 42605992 4571881364
HA 377 16588
Buffer Waiting
Buffer ioproc flags
L-3 0 0x8 0
Response:
The buffer that this onstat -l is referring to is the logical log buffer. IDS
has 3 logical log buffers so the "Buffer" column would be L-1, L-2, or L-3.
The ioproc column should be the address of the rstcb of the thread that has
currently been assigned to flush that logical log buffer. You would actually
only see this output if at the time of the onstat -l 1 (or more) of the
logical log buffers was being flushed to disk. Since this ioproc column is 0,
and the flags is 0x8 it looks like in the middle of the onstat -l code the IO
for this logical log buffer finished and already cleared out the rstcb value
for thread that was waiting for the IO to complete. As far as usefulness, I
think that particular output would be more useful if something was going very
wrong (like logical log flushing was hanging or something like that). I guess
you might be able to generalize seeing lots of buffer waiting output out to
very busy logical logs, and then maybe out to wanting to make sure the IO to
the chunks containing your logical logs was performing well, otherwise you
might be impeding your performance due to slow logical log writing.
Jacques Renaut
IBM Informix Advanced Support
APD Team