Oracle 性能调优学习笔记(八)-- Oracle 共享服务器的性能调优

Oracle 共享服务器的性能调优
     Shared Server
     用户UP--->Listener-->dispatcher--->request Queue (一个)
       --->ShareServer---Response Queue(多个) --->Dispatcher
       ----->用户UP
  特点
  1.多个用户共享进程
  2.支持Oracle net功能.
  3.提供用户响应用户数
 
  配置Shared Server参数:
  dispatchers
  max_dispatchers 默认值为5
  shared_servers
  max_shared_servers:默认为20或者2*shared_servers
     circuits:虚电路(每一个数据包)数表示可以有多少个连接可以使用.
  processes:规定了一个Oracle可以有多少个Process可以连接和Session有关.
 
 
  DEDICATED(专用服务)和SHARED(共享服务器)配置在tnsnames.ora文件指定服务的方式:
  DEDICATED:服务端进程ora<SID>
  SHARED:共享服务器进程ora-sxxx-<sid>,分发进程ora-dxxx-<sid>.
   
 通常每一个dispatcher可以处理10到20的客户端进程.
 诊断dispatcher进程性能问题:
 v$shared_server_monitor
 v$dispatcher:显示dispatcher的信息.
                status:状态.
       messages:处理客户端包的个数.
       bytes:处理总的客户端包大小.
       IDLE:空闲时间
       BUSY:繁忙时间.
  查看dispatcher的各种信息
  select name,status,bytes,owned,created,idle,busy from v$dispatcher;
  查看dispatcher的繁忙程度
  select sum(owned) "Clients" ,sum(busy)*100/(sum(busy)+sum(idle)) " Busy Rate"
      from v$dispatcher;
  备注:" Busy Rate" 大约50%,需要增加dispatcher的个数.
  修改的方法:
   alter system set dispatchers ='(pro=tcp)(dis=5)';
   
 
 v$queue:包含shared server 消息队列.
      Type:common表示服务器使用信息.
        dispatcher:为dispatcher进程信息.
      wait:dispatcher等待时间.
   totalQ:总的消息.
 
 检查dispatcher的
    dispatcher等待时间
    处理繁忙程度.
  当数据库打开时候添加或删除dispatcher.
 
  查看用户会话等待dispatcher的时间
  select decode(sum(totalq),0,'No Responses',
          sum(wait)/sum(totalq))  "Average wait time"
    from v$queue q ,v$dispatcher d
    where q.type='DISPATCHER'
    and q.paddr=d.paddr;
 
      v$dispatcher_rate:包含dispatcher大量进程最大,平均的信息.
 
      监控shared Servers的信息
   Oracle的shared servers可以动态调整的.
   你可以监控shared server通过一下方式:
       1.监控shared process的竞争情况
       v$shared_server:运行的情况.
       select name ,bytes,idle,busy,requests from v$shared_server;
   查看当前shared server的情况
   select name,requests,busy*100/(busy+idle) "busy %" ,
       status from v$shared_server
     where status!='QUIT';
      监控shared_server
   select decode(totalq,0,'NO Requests',
             wait/totalq || 'hundredths of seconds')
       "average wait Time per requests"
       from v$queue
        where type='COMMON';
    
      2.添加或者删除shared servers.
      alter system set shared_server=3 scope=spfile;
  
  监控进程使用情况
   通过v$circuit 查看以下进程情况
    1.server address
    2.dispatcher address
    3.user session address
   
  shared server内存使用情况
  1.用户信息放在shared pool
  2.建议通过建立  large pool减轻shared pool的负荷.
  3.当使用共享服务器的使用内存一般比较低.
  4.共享服务器使用的UGA为排序使用.
  
  shared server troubleshoting
  1.数据库listener没有启动.
  2.shared server初始化参数设置不正确.
  3.dispatcher进程被意外删除.
  4.dba操作不能使用shared server连接.
  5.即使检查processes和sessiones的大小.避免dispatcher进程过多.
  
  常用的数据字典 
     v$shared_server_monitor
     v$session
     v$process
     v$shared_server
     v$circuit
     v$dispatcher
     v$dispatcher_rate
     v$queue
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值