關于“專用服務器進程”和“多線程服務器”
2024-07-21 02:40:05
供稿:網友
專用服務器進程:
用戶進程和服務器進程是彼此分隔的。
每一個用戶進程都有它自己的服務器進程。
在用戶和服務器進程間存在一比一的比率。
甚至當用戶進程沒有作出數據庫請求時專用服務器也是存在的只是處于空閑狀態。
往往稱專用服務器進程為影子進程因為它只代表一個用戶進程。
多線程服務器(MTS):
在線事務處理進程環境(OLTP) 中,服務器進程有90% 或更長的連接時間處于空閑狀態。
MTS 提高服務器效率因為任何服務器都能處理傳入的請求而不必等待某個特定的服務器去處理請求。
服務器數量相同的情況下使用MTS 可以比使用專用服務器配置支持更多的用戶。因為MTS 體系結構中的用戶共享服務器進程于是可以配置較少的服務器進程。
通過減少所需的服務器進程數量,MTS 體系結構可以減少內存利用率。
*適用于oltp服務器中,對于DSS和數據倉庫等應用不建議使用。
何時使用專用服務器?
提交批處理作業(期望只存在及很少的或不存在空閑時間)。
連接服務器治理器以進行啟動、關閉或執行恢復。
作為內部連接。
假如計算機有大量的內存來支持專用服務器,就應該使用這種配置。這種情況下性能有可能更好。
在SGA跟PGA方面的使用異同:
當使用專用服務器時,用戶會話數據將保存在PGA 中。
當使用MTS時,數據將保存在SGA中。假如要支持多個用戶,需要增加每次連接的Shared_pool_size.
配置MTS:
若要配置多線程服務器,需要為例程編輯初始化參數文件。在設置了這些初始化參數后,重新啟動例程。
多線程服務器體系結構需要Net8。以多線程服務器作為目標的用戶進程必須通過Net 8 進行連接,即使客戶端與服務器都在同一臺機器上。
8i所使用的幾個參數:
mts_dispatchers:用于配置當Instance啟動的時侯啟用的Dispatcher的數量、及Dispatcher所響應的協議,它是一個動態的參數,可以用Alter system進行動態修定,它沒有默認值。mts_max_dispatchers:用于指定同時運行的Dispatcher進程的最大數量,對于大部分的應用,每250個連接啟用一個Dispatcher可以獲得較好的性能。默認值是5或所配置的Dispatcher的數量。
mts_servers:用于指定當Instance啟動時你想啟用的服務進程的數量,它是一個動態參數,可以用Alter systme動態修定。
mts_max_servers:用于指定同時進行的共享的庫的服務進程的數量,假如你的系統經常出現死鎖,應該適當的增加這個值。
mts_service:設為SID
mts_listener_address:TNS監聽的地址
9i所使用的幾個參數:
dispatchers等同于8i中的mts_dispatchers參數max_dispatchers 等同于8i中的mts_max_dispatchers參數shared_servers 等同于8i中的mts_server參數max_shared_servers 等同于8i中的mts_max_servers參數
例子:
mts_dispatchers = "(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.10.243))(DISPATCHERS=10)"
mts_max_dispatchers=20
mts_servers=10
mts_max_servers=50
mts_service=dbora817
mts_listener_address="
(address=(protocol=tcp)(host=192.168.10.243)(port=1521))" large_pool_size=50M需要說明的是large_pool_size這個初始化參數,在MTS環境中為獲取更好的性能建議設置這個參數
reference:
http://dev.csdn.net/article/24/24969.shtm
http://dev.csdn.net/article/24/24970.shtm
http://dev.csdn.net/article/27/27383.shtm