分类

  • 软件天地

  • 不同平台的数据库异步I/O的使用‖
    程序必须等待,直到此I/O执
    运行,提高了系统性能; 使
    势更加明显, 因此象数据库
    行.
    同步I/O相比较来说的,如果是同
    行完. 相反,异步I/O操作在后台
    用异步I/O会提高I/O流量,如果
    ,文件服务器等应用往往会利用

    步I/O,当一个I/O操作执行时,应用
    运行,I/O操作和应用程序可以同时
    应用是对裸设备进行操作,这种优
    异步I/O,使得多个I/O操作同时执


      1 文件集的安装                                                              
      要在aix平台上使用异
    检查之:
    步I/O特征,系统必须安装有文件

    集bos.rte.aio,可以通过如下命令

      lslpp -l bos.rte.aio                                      
      然后再通过smitty(smit)使得异步I/O可用                          
      #smit chgaio                                                      
      STATE to be configur
    ed at system restart availab
    le

      2 如何确定是否需要使用异步I/O                                            
      a. 使用VMSTAT命令查看列wa,如何其值超过25%,则使用;            
      b. 使用命令iostat * * ,如果%tm_act超过35%,则使用;  
      值得注意的是,在SMP系统中,vmstat
    个处理器的i/o等待值却不是平均值,而是
    的值us,id,wa列是所有处理器之间的平均值,但是每
    一个全局的统

      计数值,                                                                      
      3 当前aio服务器的数目                                                    
      pstat -a | grep aios | wc -l                      
      4 如何设置aio 服务器                                                    
      一般有三个规则可以用来决定因素aio的数目                                    
      a 限定MAXIMUM等于十倍的当前使用
    的物泶排淌?MINIMUM等于一半的MAXIMUM数;
      b 设置MAXIMUM为80,MI
    调整如下:
    NIMUM为默认值1,监控系统正常

    的负荷情况,过一段时间后,再进行

      MAXIMUM=当前运行的aio数+10                                      
      MINIMUM=当前运行的aio数-10                                      
      c 在最高I/O活动开始之前,使用vmst
    次iodones之差值,便可以知道在这个时间
    MAXIMUM数再进行观察调整
    at -s看结果中的iodones,隔一时间段再执行,查看二
    段内有多少个物理I/O发生了,如果便可以考虑增加

      5 异步I/O的几个参数                                                      
      可以使用chdev或是smit来修改有关AIO的参数,主要考虑如下几个        
      MINIMUM number of se
    rvers :指定分配给异步I/O进程
    的最少内核进程数,
      MAXIMUM number of se
    rvers :指定分配给异步I/O进程
    的最大内核进程数
      Maximum number of RE
    进程中的请求,也包括等待
    在/usr/include/sys/limit
    QUESTS :指定能同一时间分配的
    中的请求数,最大数不能小于MAX
    s.h中,
    最大数目的异步I/O请求数,它包括
    IMUM number of servers,它定义

      Server PRIORITY:指定分析给异步I/
    O进程的优先级,建议用默认值39
      STATE to be configured at system             

      restart:指定系统初始化时,异步I/O
    可用),2)available(可用)STATE of Fast
    通过异步内核进程,默认是enable
    进程的状态,可能值是1)defined(处于定义状态且不
    Path:如果选择disable,则表明强迫所有的I/O活动都


      6 此平台上的数据库,
    就可以了
    如oracle中使用异步i/o,则需要

    设置参数disk_asynch_io = TRUE


      1、Hp-ux使用Aio的补丁要求                                            
      b、HP-UX 11i的补丁要求为:                                          

      PHKL_30621 vm preemp
    tion point, mlock/async_io
      PHKL_25506 asyncio driver patch                
      使用swlist -l product检查                                    
      2、创建aio的字符设备                                                      
      a、建立aio字符设备                                                        
      #/sbin/mknod /dev/async c 101 0x0            
      b、调整设备的属主,这个例中假定用户为oracle,组为dba                
      #chown oracle:dba /dev/async                      
      c、调整设备的权限位                                                          
      #chmod 660 /dev/async                                    
      3、Hp-ux要要调整的内核参数                                              
      调整内核参数据需要使用root用户                                            
      a、把asyncdsk置为in                                                
      sam-> Kernel Configuration -> Drivers->asyncdsk调整为in

      b、调整max_async_ports参数                                    
      这个参数限定的是同时使用/dev/async设备的最大进程数,对于Oracle这个参数应大于等于init< sid>.ora中的processes+后台的进程数,当max_


      async_ports的值达到时,其余的进程捎猛絀O的方式。            
      c、调整set aio_max_ops参数                                    
      这个参数所限定的是在任意一个时间
    以,可以用glance监测一下。
    点排队的Aio操作的最大的数目,一般保持默认值就可

      d、调整fs_async参数                                                  
      这个参数表明的是对文
    写不用Aio,设定fs_async=1
    件系统的写是否采用Aio的方式,
    则指定使用aio的方式,Ora
    设定fs_async=0指定对于文件系统


      cle不建议将这个什设置为1                                                  
      4、其它方面设置                                                              
      值得注意的是要为orac
    错或在库运行时会出现莫名
    le用户的组(一般为dba)设定MLO
    其妙的数据库hang的现象,
    CK的权限,否则在数据库启动会报


      具体说明如下                                                                  
      a、有二个命令getprivgrp(检查),setprivgrp(设置)      
      eg1:检查dba组是否有MLOCK的权限                                    
      root#getprivgrp dba                                        
      eg2:设定dba组的MLOCK的权限                                        
      roolt#setprivgrp dba MLOCK                          
      b、也可以把设定加入配置文件中,这样在下次启动时就自动生效了。                
      在/etc/privgroup中加入如下的一行:                              
      dba MLOCK                                                           
      如果privgroup不存在,可以编辑一个。                                 

      5 8i 及以后的版本 :在init< sid>.ora中设定disk_asynch_io = TRUE

      6 检查一下aio是否生效了                                                  
      #fuser /dev/async                                           
      有进程列出来说明aio已经生效了。                                            
      7 在hp11.0上使用异步I/O时可能还
    应没有问题了
    有些问题,会出现一些ora-01578的错误,但是hp11i后


    上一页 下一页




    map