Re: DBWn performs batched (multiblock) writes to improve efficiency

  • From: Tanel Põder <tanel.poder.003@xxxxxxx>
  • To: <oracle-l@xxxxxxxxxxxxx>
  • Date: Sun, 18 Apr 2004 19:17:53 +0300

Hi!

I definitely have seen multiblock pwrites in dbwr's truss/strace output (you
can also see write coalescing from dbwr trace if you set _dbwr_tracing to 8.
Note that it generates quite a lot of trace so don't set it in production).

Of course the blocks to be written written to disk have to be adjacent in
order to use a multiblock write.

Do a full delete on a test table for example, you should see some multiblock
writes then. Whether adjacent blocks' corresponding dirty buffers are
written to disk using a multiblock or single block write, is dependent on
dbwr's internal batch composition algorithm, LRU list contents, "hotness" of
a block and incremental checkpoint agressiveness, so it's nothing unusual if
adjacent dirty blocks are written to disk on different times with different
write calls...

Tanel.

----- Original Message ----- 
From: "zhu chao" <chao_ping@xxxxxxxxxxx>
To: <oracle-l@xxxxxxxxxxxxx>
Sent: Sunday, April 18, 2004 5:34 PM
Subject: DBWn performs batched (multiblock) writes to improve efficiency


> From oracle 9i database concepts manual, I saw note:
> In all cases, DBWn performs batched (multiblock) writes to improve
efficiency. The number of blocks written in a multiblock write varies by
operating system.
>
> link:
http://www.cise.ufl.edu/help/database/oracle-docs/server.920/a96524/c09procs.htm
>
> I have difficulty understanding this.
>
> I did several test on my database, no matter datafiles on raw device, or
on general ufs/vxfs, I never saw dbwr do batched(multiblock) write.
>
> The following is the result of truss -p dbwr:
>
> datafiles on raw device:
>
> aio(AIOWRITE, 407, 0x3870AA000, 8192, 0xB383800001FF0980) = 0
> kaio(AIOWRITE, 407, 0x3830A2000, 8192, 0xB38400000223E458) = 0
> kaio(AIOWRITE, 403, 0x38242E000, 8192, 0x3AAD400001FCA8C8) = 0
> kaio(AIOWRITE, 407, 0x382A2A000, 8192, 0xB38460000205ABF0) = 0
> kaio(AIOWRITE, 403, 0x380EB6000, 8192, 0x3AAE00000202AE80) = 0
> kaio(AIOWRITE, 404, 0x385D58000, 8192, 0x0D578000020AF8D0) = 0
>
> datafiles on vxfs filesystem without QuickIO:
>
> pwrite(397, "0602\0\00301AC 0 & C90 ~".., 8192, 0x35860000) = 8192
> lwp_mutex_lock(0xFFFFFFFF7DD09EC0)              = 0
> pwrite(373, "0602\0\016\09D x & C89 V".., 8192, 0x13AF0000) = 8192
> pwrite(396, "0602\0\003 CC0DE & C x }".., 8192, 0x781BC000) = 8192
> lwp_mutex_wakeup(0xFFFFFFFF7DD09EC0)            = 0
> lwp_mutex_wakeup(0xFFFFFFFF7DD09EC0)            = 0
> pwrite(399, "0602\0\00281EC ] & BB6F7".., 8192, 0x3D8BA000) = 8192
> lwp_mutex_lock(0xFFFFFFFF7DD09EC0)              = 0
> pwrite(397, "0602\0\00301ABCD & CC0FF".., 8192, 0x3579A000) = 8192
>
> I trussed many times, I never saw any os call like pwrite(xxx)=16384 etc.
Nor have I saw kaio(aiowrite,xxx,xxx,16384,xxx) etc.
>
> Can someone confirm it? Do I misunderstand the manual, or the manual
itself is wrong, or simply I did not understand the truss output correctly?
>
>
>
> Hope someone can give guidance.
>
>
>
> Regards
>
> Zhu Chao.
>
>
>
>
>
>
>
>
>
> ----------------------------------------------------------------
> Please see the official ORACLE-L FAQ: http://www.orafaq.com
> ----------------------------------------------------------------
> To unsubscribe send email to:  oracle-l-request@xxxxxxxxxxxxx
> put 'unsubscribe' in the subject line.
> --
> Archives are at //www.freelists.org/archives/oracle-l/
> FAQ is at //www.freelists.org/help/fom-serve/cache/1.html
> -----------------------------------------------------------------
>


----------------------------------------------------------------
Please see the official ORACLE-L FAQ: http://www.orafaq.com
----------------------------------------------------------------
To unsubscribe send email to:  oracle-l-request@xxxxxxxxxxxxx
put 'unsubscribe' in the subject line.
--
Archives are at //www.freelists.org/archives/oracle-l/
FAQ is at //www.freelists.org/help/fom-serve/cache/1.html
-----------------------------------------------------------------

Other related posts: