配置共享服务器
· 配置共享服务器时需要正确地设置下面几个初始化参数,这些参数用于指定实例启动时产生的调度进程和共享服务器进程的数量,以及运行期间如何管理这些进程;
?nbsp; DISPATCHERS 指定实例启动时产生的对应网络协议的调度进程数量,可选值是0-5;
?nbsp; MAX_DISPATCHERS 指定实例允许的最大调度进程数,默认值为5,调度进程的增减必须由管理员手工指定(Alter system set dispatchers = ?);
?nbsp; SHARED_SERVERS 指定实例启动时产生的共享服务器进程数量,设为零时禁用共享服务器选项,最小值为1,最大值依赖于操作系统;
?nbsp; MAX_SHARED_SERVERS 指定实例允许的共享服务器的最大数量,最大值依赖于操作系统,服务器进程可由PMON后台进程根椐系统负载来动态增减;
?nbsp; CIRCUITS 用于指定网络连接的虚拟电路最大数量;
?nbsp; PROCESSES 用于指定实例允许的进程的最大数量;
· 管理员执行管理操作时不能使用共享服务器,必须启动专用的服务器进程。
第六章 调整SGA的其它区域 4.测量共享服务器的性能
测量共享服务器的性能
· 测量共享服务器配置的性能可用到下面一些性能视图:
?nbsp; V$SHARED_SERVER 共享服务器进程的详细统计,包括每个进程的空闲和繁忙时间;
?nbsp; V$QUEUE 包含请求队列和响应队列的信息;
?nbsp; V$SHARED_SERVER_MONITOR 关于共享服务器进程的合计信息,包含经由PMON启动和终止的共享服务器进程数,共享服务器进程的高水位,并发会话的最大数量,虚抑电路的最大数量;
?nbsp; V$DISPATCHER 调度进程的详细统计,包括每个进程的空闲和繁忙时间;
?nbsp; V$DISPATCHER_RATE 包含调度进程服务的历史和实时的统计;
?nbsp; V$CIRCUIT 包含连接路径(用户进程和调度进程,共享服务器进程的关系)的统计,
· 测量共享服务器进程的性能
?nbsp; 共享服务器进程的忙百比例:
Select Name,
Decode(Busy + Idle, 0, 0, Round((Busy / (Busy + Idle)) * 100, 4)) "busy_rate"
From V$shared_Server
Where Status != 'QUIT';
?nbsp; 用户请求在请求队列中的平均等待时间(百分之一秒)
Select Decode(Totalq,
0,
'TOTALQ IS ZERO',
Round(Sum(Wait) / Sum(Totalq), 4)) "AVG SHARED_SERVER WAIT"
From V$queue
Where Type = 'COMMON'
Group By Totalq;
?nbsp; 当上面的数值很大或者不断上升时需要考虑增加SHARED_SERVERS的值;
· 测量调度进程的性能
?nbsp; 调度时程的忙百分比(当这个比例超过50时,需要增加DISPATCHERS 的值):
Select Name "Dispatcher",
Network,
(Round(Sum(Busy) / (Sum(Busy) + Sum(Idle)), 4)) * 100 "Busy_Rate"
From V$dispatcher
Group By Name, Network;
?nbsp; 用户请求等待调度进程调度的平均时间(百分之一秒)
Select Decode(Totalq,
0,
'TOTALQ IS ZERO',
Round(Sum(Wait) / Sum(Totalq), 4)) "AVG DISPATCHER WAIT"
From V$dispatcher d, V$queue q
Where d.Paddr = q.Paddr
And q.Type = 'DISPATCHER'
Group By Totalq;
?nbsp; 调度进程服务的连接数量(当前,历史最高以及差异)
Select Name,
Cur_In_Connect_Rate,
Max_In_Connect_Rate,
Max_In_Connect_Rate - Cur_In_Connect_Rate "VARIANCE"
From V$dispatcher_Rate;
· 查询共享服务器环境下的累积活动:
Select * From V$shared_Server_Monitor;
· 查询用户进程,调度进程和共享服务器进程间的对应关系:
Select s.Username, d.Name "DISPATCHER", Ss.Name "SHARED_SERVER"
From V$circuit c, V$session s, V$dispatcher d, V$shared_Server Ss
Where c.Saddr = s.Saddr
And c.Dispatcher = d.Paddr
And c.Server = Ss.Paddr;