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
Oracle 性能调优学习笔记(八)-- Oracle 共享服务器的性能调优
最新推荐文章于 2022-02-10 21:48:22 发布