在Windows 2000下 優化Oracle9i性能



OracleI/O





Oracle

dbms_obfuscationlabel security

70%

RAID

RAIDRAID
RAID
RAID 5RAID 5



 二、優化使用和配置

CPU3GLCPU

Oracle

CPUCPUCPU
1
2DMAPIO
%Interrupt Time
3RAIDWindows 2000RAID

Oracle

OracleOracle
1Windows 2000
2
3
4
5


1
2License Logging Service
3DHCP
4
//

三、優化網絡配置  網絡配置是性能調整的一項很重要的內容,而且很容易隱藏性能瓶頸。  配置網卡使用最快速度和有效模式  這針對自動檢測,大多數缺省安裝是,如果這是可選的就儘量調整爲“全雙工”和最大化線速度。  刪除不需要的網絡協議  只保留協議。  優化網絡協議綁定順序  在每個網卡上設置主協議,典型地是,到協議列表的頂端。  爲禁止或優化文件共享  理想地應該禁止文件共享功能來最小化安全泄露和網絡交通,但如果你需要使用文件和打印共享,那麼就配置系統中每個網卡的“連接屬性”,設置“最大化網絡應用程序數據吞吐量”     內存優化是平臺的關鍵設置,首先了解一下平臺的結構:  基於線程的結構  是基於線程的結構,相反,操作系統是基於進程的結構。這意味着中更多的應用,包括在內,是以帶有多個線程的單個進程的形式執行,這種基於線程的結構的確給帶來優勢——更容易共享內存。內存空間爲每個進程分配,進程間共享內存很笨拙,要使用附加編碼,線程是進程的子集,使用比進程少得多的內存。特定進程的所有線程共享同樣的進程內存空間,同一進程的線程間共享內存比不同進程共享內存要快,這給基於線程的結構很大優勢,更有效。  在服務器上運行的每個應用程序都有一個,而且只有一個進程。進程是應用程序的載體,是用來容納執行應用程序實際工作的線程的。從用戶角度看,進程是不用任何專門工具就可以看到的組件。進程對其他應用程序組件的作用就像容器一樣。它持有虛擬的存儲空間、數據、系統資源和應用程序設置。雖然線程可以分配、重新分配和釋放內存,但是進程接受初始的內存分配,並將它分配到請求內存的所有線程。線程是包含在進程內共享所有進程資源的單個執行路徑。它還包含堆棧(存儲在內存中的變量和其他數據)、寄存器的狀態信息(所以,線程可以恢復它的環境)、和在系統調度程序的執行列表中的一個登錄項。每個線程規定了完成任務應用程序需要作的某種工作。  使用的主要問題是看不到任何線程。被設計成從進程層將應用程序作爲整體看待。當然還可以使用性能監視器來監視下的內存使用。  從“開始程序管理工具”選擇“性能”啓動“系統監視器”。注意,“性能”包括兩個插件:“系統監視器”和“性能日誌和變更”。這時,需要一些被監視的計數器(計數器是一些性能指示器,用於對的特殊對象進行統計,例如統計特定線程所要求的處理器時間)。單擊“添加”按鈕(在圖中看起來象一個加號),將看到“添加計數器”對話框。首先需要選擇想監視的“性能”對象。在包含“進程”對象和“線程”對象的“性能”下拉列表中選擇。  進程觀察器()是比較容易檢查線程和進程的方法之一。可以在內找到一些工具。的一部分,但是並不自動安裝。支持安裝的文件在目錄下。只要在上右擊,並從菜單上選擇安裝即可。  內存  基於線程的結構的確有一些內存限制,因爲單個進程由線程組成,而進程的地址空間是受限的,因此很少有空間是機動的。因爲仍然是爲操作系統,單個進程地址空間被限制在內,其中一半被操作系統保留,這保留的系統內存也被視爲系統地址空間,他包括內核編碼、硬件抽象層編碼()和需要管理進程和交互的不同的其它結構,這的系統地址空間是禁止應用程序進程訪問的。因此,標準服務器單個應用程序進程可使用內存空間共。在高級服務器啓動文件中有開關,改變這個比例到,這項技術被稱作調優(,或),我們將針對這個問題展開詳細討論。  保留的內存是分配給線程的內存並且留作將來使用,但沒有實際使用的內存。因爲沒有實際使用,因此它對其它進程仍然有效。但是,因爲它已經被分配,它仍然由對擁有線程的進程的總的內存限制產生,因此,保留內存的計算針對的限制,並且進程保留的和使用的內存的總和不能超過這個限制。  除了系統中安裝的物理內存之外,還使用虛擬內存。這實際上是駐留在硬盤上的內存。但是使得它對應用程序來說,就像是安裝在機器上內存一樣。當某個應用程序塊要求訪問那個內存時,就把另外的內存塊複製到磁盤上,而把所要求的內存放到物理內存中,這些內存塊的大小是。也就是說,每次應用程序提出對內存的要求時,內存就被分配在的頁面內。在磁盤上模擬內存的文件叫做頁面調度文件。虛擬內存管理器)是操作系統管理機器上的虛擬內存組件。所有的內存訪問都通過。這意味着每當操作系統需要進行內存調頁時,就要提出請求。  內存調優方法:  (一)使用超過的內存  另外,有辦法允許爲單個進程或應用分配超過位地址空間的內存,爲實現這一點,使用物理地址擴展(,或),本質上把地址空間從位增加到位,但是必須有或更新的處理器才能享受這個優勢。在下,提供驅動程序享受全部位地址空間的優勢,但是在位地址空間的支持已經建立在操作系統中,然而,應用程序必須使用地址窗口擴展(,或寫成,發行號)不支持,所有的發行號()都支持發行號)中實現了對的支持。  (二)  允許你使用系統中任何附加的超過的內存,爲了體現這個優勢,你必須有超過的內存,必須有或更新的處理器,必須運行高級服務器或數據中心服務器,不需要特殊的驅動程序,因爲已經支持  爲了利用這項優勢,必須在啓動機器時在文件中使用開關,你必須確保運行服務的帳戶有權限。給運行服務的帳戶增加權限後,要重新啓動服務。  (三)  可以確定,所有發行號版本和發行號只允許你爲數據庫塊緩衝區配置超過限制的內存空間,因此,要爲用戶連接釋放標準進程地址空間的內存(低於界限的內存)、內存和組成的不同內存緩衝池。  在初始化參數文件中要設置參數,沒有這個參數,不能尋址到以上的地址空間。接下來要設置決定內存使用總量的緩衝池大小,設定兩個參數。  在發行號中,參數被參數所代替,這樣就改變了原來指定緩衝區塊數到指定緩衝區字節數,同樣,也解釋了在發行號的一個數據庫中支持多個數據庫塊大小。無論用哪種辦法,如果你設定參數,你將只能定義和使用單個數據庫塊大小和塊緩衝區(就象在以前的發行號中),因此,如果缺省數據庫塊大小是或其它,而設置是不允許的。  接下來需要在註冊表中爲設置合適的參數值,也就是在下,這個參數指定字節數,如果沒有設置,缺省值是。這個參數的大小取決於你要設置多少緩衝區大小,並視爲來自進程地址空間的常規內存。以緩衝區大小爲爲例,設置爲缺省值,你希望視爲常規內存,並且剩餘緩衝區來自限制以上的地址空間。你希望更多的緩衝池儘可能保留在常規地址空間,因爲訪問超過以上的緩衝池比訪問虛擬地址空間緩衝池要慢(儘管仍然比磁盤操作快)。  (四)解決與相關的內存問題  需要注意的是每個界限以上的塊緩衝區需要在常規地址空間保留大約字節的緩衝區頭,因此,在上面的例子中,我們大約有個緩衝區頭指向擴展地址空間的緩衝區,緩衝區頭大約佔常規內存空間,如果數據庫塊很小,那麼這個數量會相當高,因此,必須確保這些緩衝區頭、、和所有進程的內存需求,包括編碼、其它組件、內存和每個用戶連接棧都適合進程的常規虛擬地址空間。  確認你有足夠的物理內存處理超過之外的,在我們的例子中定義緩衝池大小爲來自常規地址空間,剩餘來自以外的對整個進程有效的系統和進程地址空間,因此,這個例子只能工作在至少有內存的機器上,你還應該爲其它進程保留一些空間,只有一個進程可以在某一時刻訪問附加的內存。  象前面所說的那樣,開關只用於系統有超過物理內存的時候,但如果系統內存少於時,也可模仿這項功能。在文件中設置參數的值,如下面例子,設爲,意味着任何以上的內存都將保留爲內存。      爲一個數據庫使用附加的多個進程  真正的應用集羣()提供有多個實例運行和訪問同一數據的能力。通常,這用於有兩個或多個節點的項目,一個實例運行在每個節點。無論如何,它支持在有兩個實例運行在一個節點訪問同一個數據庫。這能克服每個進程的內存限制,又提供某些其它的利益,如應用程序失敗檢測。<span lang=EN-US style="font-size: 10.5pt; line-height: 150%; font-family: " '">

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章