配置Oracle MTS的正確方法
以下的文章主要介紹的是如何正確的配置Oracle MTS ,我們大家都知道Oracle MTS(Multi-Threaded Server)是Oracle SERVER中的一個(gè)經(jīng)常使用的配置選擇,它是相對(duì)DEDICATE方式而言,它最大的優(yōu)點(diǎn)是在以不用增加物理資源(內(nèi)存)的前提下支持更多的并發(fā)的連接。
換句話說,如果你只有2G的物理內(nèi)存,而你又想支持2000個(gè)連接,在獲取最好性能的前提下,你就應(yīng)該選擇Oracle MTS了。
本文先說一說MTS的工作方式,然后與DEDICATE方式的做一下比較,接下來說一下MTS具體配置實(shí)現(xiàn),最后說一些優(yōu)化MTS配置選項(xiàng)的問題。
MTS的工作方式
1、Joseph C.Johnson以餐館給出一個(gè)Oracle MTS的形象的比喻
假設(shè)ORACLE是一家餐館,當(dāng)你走進(jìn)一家餐館時(shí)你感覺最舒服的服務(wù)方式就是有一個(gè)專門的waiter來為你服務(wù),而不管餐館中來了多少人,她只對(duì)你請(qǐng)求應(yīng)答,這是DEDICTE的處理方式,也就是說每一個(gè)ORACLE客戶端的連接都有一個(gè)專門的服務(wù)進(jìn)程來為它服務(wù)。
而大部的餐館的服方式都不是一對(duì)一的,當(dāng)你走進(jìn)的時(shí)侯,你就被指定了一個(gè)waiter,她也可能為其它桌服著務(wù),這對(duì)于餐館來說是最有利的,因?yàn)樗麄兛梢苑?wù)更多的客人而不需要增加他們的員工。
這樣對(duì)你來說也可能是不錯(cuò)的,如果餐館不是太忙,她服務(wù)的客人的請(qǐng)求都很簡短且容易完成,你的感覺也好像自己擁有一個(gè)專門的waiter,waiter把你的ORDER轉(zhuǎn)給廚師,然后把做好的菜拿給你,這就是MTS的處理方式,這些共享的waiters我們叫她們?yōu)镈ispatchers,廚師我們則叫他們?yōu)镾hared Server Processes。
2、以簡圖說一下Oracle MTS的工作方式(SYBEX書中的一幅圖)
1)客戶端向Dispatcher發(fā)一個(gè)服務(wù)請(qǐng)求
2)Dispatch把這個(gè)請(qǐng)求放到SGA區(qū)的請(qǐng)求對(duì)隊(duì)列中
3)由一個(gè)或幾個(gè)服務(wù)進(jìn)程來處理這個(gè)請(qǐng)求
4)服務(wù)進(jìn)程把進(jìn)行的結(jié)果放到Dispatch的SGA區(qū)的的響應(yīng)隊(duì)列中
5)Dispatcher從響應(yīng)隊(duì)列拾起結(jié)果
6)完成客戶端的請(qǐng)求并把結(jié)果回送給客戶端
MTS與DEDICATE方式方面做一下比較,為方便比較繪制如下的簡表
序號(hào)
比較項(xiàng)
Oracle MTS方式
DEDICATE方式
1、服務(wù)進(jìn)程
多個(gè)連接共享一個(gè)服務(wù)進(jìn)程
一個(gè)連接有一個(gè)專門的服務(wù)進(jìn)程
2、每個(gè)客戶端的連接使用的內(nèi)存量
3-4M
150-200K
3、適合的應(yīng)用環(huán)境
適合連接數(shù)很多且請(qǐng)求很短少的OLTP環(huán)境
如果Oracle服務(wù)器的資源夠用,這種方式是優(yōu)選
4、CPU負(fù)載
會(huì)造成一些CPU的負(fù)載,如果你的CPU有瓶頸,則不要用這種方式
【編輯推薦】