调整SGA的其它区域
· 已讨论过的共享池,数据缓存和下一章将要讨论的日志缓存是每一个ORACLE环境下的必备组件,这一章讨论SGA的另外三个可选组件:共享服务器,大池,Java池。
共享服务器的概念
· 每一个Oracle应用程序有两个与之相联的进程,一个是运行在客户端机器或者应用服务器上的用户进程,一个是运行在Oracle服务器上的服务器进程;
· 默认的专用服务器配置下,每一个服务器进程只专职于处理一个用户会话的请求,在Unix上,服务器进程是一个可用ps命令观测到的单独的进程,在Windows系统上,服务器进程是一个运行于oracle.exe进程中的线程;
· 另有一种配置称为共享服务器,少数一些服务器进程为所有的用户进程服务,在9i以前的版本,这种配置也称为MTS(多线程服务器);
· 专用服务器和共享服务器的差别有点类似于外出时坐专车和打的士的区别,专用服务器能更有效地实现用户进程和实例间的通讯,但资源利用率低,共享服务器资源利用率高,在相同的CPU和内存条件下可以支持更多的并发用户,但配置不当时会引起用户进程较长时间的等待从而降低系统的性能和响应速度。
第六章 调整SGA的其它区域 2.共享服务器的架构
共享服务器的架构
共享服务器配置包含以下组件:
· 用户进程(User Process) 用户进程可能由客户端软件产生,也可能通过中间组件产生,用于管理到Oracle服务器的连接;
· 网络监听进程(Oracle Net Listen Process) 监听进程用于监听来自用户进程的对数据库的查询或DML请求,并将这些请求分配给当前比较清闲的某个调度进程;
· 调度进程(Dispatcher Process) 调度进程是Oracle的后台进程,用于接受来自用户进程的请求并返回结果,最多只能有五个同时运行的调度进程,在Unix上可以用ps命令看到,用Unix kill命令杀掉一个调度进程时会同时断开这个进程负责的所有用户进程;
· 请求队列(Request Queue) 请求队列用于存放调度进程接受到的请求,存在于SGA中,一个实例只有一个;
· 共享服务器进程(Shared Server Process) 共享服务进程是Oracle的后台进程,用于与SGA交互来处理用户进程的请求,功能与专用服务器类似(用于解析SQL语句,将数据块从磁盘读入数据缓存,等等),服务器进程的最大数量由操作系统指定;
· 响应队列(Response Queue) 响应队列用于存放共享服务器进程处理的结果,存在于SGA中,每个调度进程对应一个,调度进程将这些结果返回请求的用户进程;
· 必须满足下面条件时才可配置成共享服务器:
?nbsp; 众多的应用程序用户; 一般并发用户数在200以上时需要考虑,具体要看服务器的CPU和内存资源;
?nbsp; 事务时间短;长事务会造成少数用户独占服务器进程,而使其它用户长时间地等待,不适于配置成共享服务器。
?nbsp; 不连续的事务;用户活动间有时常的停顿,通常OLTP事务就是如此,这时服务器进程能为其它用户提供服务。
阅读(246) | 评论(0) | 转发(0) |