If it is not practical to use multiple DBWR processes, then Oracle provides a facility whereby the I/O load can be distributed over multiple slave processes. The DBWR process is the only process that scans the buffer cache LRU list for blocks to be written out. However, the I/O for those blocks is performed by the I/O slaves. The number of I/O slaves is determined by the parameter DBWR_IO_SLAVES.
DBWR_IO_SLAVES is intended for scenarios where you cannot use multiple DB_WRITER_PROCESSES (for example, where you have a single CPU). I/O slaves are also useful when asynchronous I/O is not available, because the multiple I/O slaves simulate nonblocking, asynchronous requests by freeing DBWR to continue identifying blocks in the cache to be written. Asynchronous I/O at the operating system level, if you have it, is generally preferred.
DBWR I/O slaves are allocated immediately following database open when the first I/O request is made. The DBWR continues to perform all of the DBWR-related work, apart from performing I/O. I/O slaves simply perform the I/O on behalf of DBWR. The writing of the batch is parallelized between the I/O slaves.
Choosing Between Multiple DBWR Processes and I/O Slaves
Configuring multiple DBWR processes benefits performance when a single DBWR process is unable to keep up with the required workload. However, before configuring multiple DBWR processes, check whether asynchronous I/O is available and configured on the system. If the system supports asynchronous I/O but it is not currently used, then enable asynchronous I/O to see if this alleviates the problem. If the system does not support asynchronous I/O, or if asynchronous I/O is already configured and there is still a DBWR bottleneck, then configure multiple DBWR processes.
Using multiple DBWRs parallelizes the gathering and writing of buffers. Therefore, multiple DBWn processes should deliver more throughput than one DBWR process with the same number of I/O slaves. [B]For this reason, the use of I/O slaves has been deprecated in favor of multiple DBWR processes. I/O slaves should only be used if multiple DBWR processes cannot be configured
SQL> create pfile='/opt/oracle/pfile150626.ora' from spfile;
File created.
SQL> exit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.6.0 - Production
[oracle@New1 ~]$ ls
backup doc jre oraInventory oui pfile150626.ora pfile.ora product
[oracle@New1 ~]$ cat pfile150626.ora
*.aq_tm_processes=1
*.audit_trail='DB'
*.background_dump_dest='/u01/product/admin/itown01m/bdump'
*.compatible='9.2.0.0.0'
*.control_files='/u01/product/oradata/itown01m/control01.ctl','/u01/product/oradata/itown01m/control02.ctl','/u01/product/oradata/itown01m/control03.ctl'
*.core_dump_dest='/u01/product/admin/itown01m/cdump'
*.cursor_sharing='SIMILAR'
*.db_block_size=8192
*.db_cache_size=838860800
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_files=50
*.db_name='itown01m'
*.db_writer_processes=1
*.dbwr_io_slaves=10
.......
最后两个参数要一起
[oracle@New1 backup]$ ps -ef|grep ora
root 4567 4537 0 2013 ? 03:13:13 hald-addon-storage: polling /dev/scd0
root 9170 4685 0 09:32 ? 00:00:00 sshd: oracle [priv]
oracle 9172 9170 0 09:32 ? 00:00:00 sshd: oracle@pts/1
oracle 9173 9172 0 09:32 pts/1 00:00:00 -bash
oracle 9221 1 0 09:41 ? 00:00:00 oracleitown01 (LOCAL=NO)
oracle 9225 1 0 09:41 ? 00:00:00 oracleitown01 (LOCAL=NO)
oracle 9239 9173 0 09:49 pts/1 00:00:00 ps -ef
oracle 9240 9173 0 09:49 pts/1 00:00:00 grep ora
oracle 13212 1 0 Jan15 ? 00:00:00 ora_s000_itown01
oracle 15768 1 0 Feb09 ? 01:59:10 ora_j000_itown01
oracle 15770 1 0 Feb09 ? 00:19:55 ora_j001_itown01
oracle 15772 1 0 Feb09 ? 00:04:59 ora_j002_itown01
oracle 18805 1 0 2014 ? 00:00:00 /opt/oracle/product/9ir2/bin/tnslsnr LISTENER -inherit
oracle 19354 1 0 2014 ? 00:00:52 ora_pmon_itown01
oracle 19356 1 0 2014 ? 00:03:32 ora_dbw0_itown01
oracle 19358 1 0 2014 ? 00:25:59 ora_lgwr_itown01
oracle 19360 1 0 2014 ? 00:00:40 ora_ckpt_itown01
oracle 19362 1 0 2014 ? 00:03:31 ora_smon_itown01
oracle 19364 1 0 2014 ? 00:00:00 ora_reco_itown01
oracle 19366 1 0 2014 ? 00:00:00 ora_cjq0_itown01
oracle 19368 1 0 2014 ? 01:13:34 ora_qmn0_itown01
oracle 19372 1 0 2014 ? 00:00:00 ora_d000_itown01
oracle 19374 1 0 2014 ? 00:04:32 ora_arc0_itown01
oracle 19376 1 0 2014 ? 00:04:31 ora_arc1_itown01
oracle 19380 1 0 2014 ? 00:24:58 ora_i201_itown01
oracle 19398 1 0 2014 ? 00:01:40 ora_i101_itown01
oracle 19400 1 0 2014 ? 00:01:38 ora_i102_itown01
oracle 19402 1 0 2014 ? 00:01:38 ora_i103_itown01
oracle 19404 1 0 2014 ? 00:01:38 ora_i104_itown01
oracle 19406 1 0 2014 ? 00:01:37 ora_i105_itown01
oracle 19408 1 0 2014 ? 00:01:37 ora_i106_itown01
oracle 19410 1 0 2014 ? 00:01:37 ora_i107_itown01
oracle 19412 1 0 2014 ? 00:01:38 ora_i108_itown01
oracle 19414 1 0 2014 ? 00:01:38 ora_i109_itown01
oracle 19416 1 0 2014 ? 00:01:38 ora_i10a_itown01