OracleI/O
Oracle
dbms_obfuscationlabel security
70%
RAID
RAIDRAID
RAID 5RAID 5
二、優化使用和配置
CPU3GLCPU
CPUCPUCPU
1
2DMAPIO
%Interrupt Time
3RAIDWindows 2000RAID
OracleOracle
1Windows 2000
2
3
4
5
2License Logging Service
3DHCP
//
三、優化網絡配置 網絡配置是性能調整的一項很重要的内容,而且很容易隐藏性能瓶頸。 配置網卡使用最快速度和有效模式 這針對自動檢測,大多數預設安裝是,如果這是可選的就盡量調整為“全雙工”和最大化線速度。 删除不需要的網絡協定 隻保留協定。 優化網絡協定綁定順序 在每個網卡上設定主協定,典型地是,到協定清單的頂端。 為禁止或優化檔案共享 理想地應該禁止檔案共享功能來最小化安全洩露和網絡交通,但如果你需要使用檔案和列印共享,那麼就配置系統中每個網卡的“連接配接屬性”,設定“最大化網絡應用程式資料吞吐量” 記憶體優化是平台的關鍵設定,首先了解一下平台的結構: 基于線程的結構 是基于線程的結構,相反,作業系統是基于程序的結構。這意味着中更多的應用,包括在内,是以帶有多個線程的單個程序的形式執行,這種基于線程的結構的确給帶來優勢——更容易共享記憶體。記憶體空間為每個程序配置設定,程序間共享記憶體很笨拙,要使用附加編碼,線程是程序的子集,使用比程序少得多的記憶體。特定程序的所有線程共享同樣的程序記憶體空間,同一程序的線程間共享記憶體比不同程序共享記憶體要快,這給基于線程的結構很大優勢,更有效。 在伺服器上運作的每個應用程式都有一個,而且隻有一個程序。程序是應用程式的載體,是用來容納執行應用程式實際工作的線程的。從使用者角度看,程序是不用任何專門工具就可以看到的元件。程序對其他應用程式元件的作用就像容器一樣。它持有虛拟的存儲空間、資料、系統資源和應用程式設定。雖然線程可以配置設定、重新配置設定和釋放記憶體,但是程序接受初始的記憶體配置設定,并将它配置設定到請求記憶體的所有線程。線程是包含在程序内共享所有程序資源的單個執行路徑。它還包含堆棧(存儲在記憶體中的變量和其他資料)、寄存器的狀态資訊(是以,線程可以恢複它的環境)、和在系統排程程式的執行清單中的一個登入項。每個線程規定了完成任務應用程式需要作的某種工作。 使用的主要問題是看不到任何線程。被設計成從程序層将應用程式作為整體看待。當然還可以使用性能螢幕來監視下的記憶體使用。 從“開始程式管理工具”選擇“性能”啟動“系統螢幕”。注意,“性能”包括兩個插件:“系統螢幕”和“性能日志和變更”。這時,需要一些被監視的計數器(計數器是一些性能訓示器,用于對的特殊對象進行統計,例如統計特定線程所要求的處理器時間)。單擊“添加”按鈕(在圖中看起來象一個加号),将看到“添加計數器”對話框。首先需要選擇想監視的“性能”對象。在包含“程序”對象和“線程”對象的“性能”下拉清單中選擇。 程序觀察器()是比較容易檢查線程和程序的方法之一。可以在或内找到一些工具。是的一部分,但是并不自動安裝。支援安裝的檔案在目錄下。隻要在上右擊,并從菜單上選擇安裝即可。 記憶體 基于線程的結構的确有一些記憶體限制,因為單個程序由線程組成,而程序的位址空間是受限的,是以很少有空間是機動的。因為仍然是為作業系統,單個程序位址空間被限制在内,其中一半被作業系統保留,這被保留的系統記憶體也被視為系統位址空間,他包括核心編碼、硬體抽象層編碼()和需要管理程序和互動的不同的其它結構,這的系統位址空間是禁止應用程式程序通路的。是以,标準伺服器單個應用程式程序可使用記憶體空間共。在進階伺服器啟動檔案中有開關,改變這個比例到,這項技術被稱作調優(,或),我們将針對這個問題展開詳細讨論。 保留的記憶體是配置設定給線程的記憶體并且留作将來使用,但沒有實際使用的記憶體。因為沒有實際使用,是以它對其它程序仍然有效。但是,因為它已經被配置設定,它仍然由對擁有線程的程序的總的記憶體限制産生,是以,保留記憶體的計算針對或的限制,并且程序保留的和使用的記憶體的總和不能超過這個限制。 除了系統中安裝的實體記憶體之外,還使用虛拟記憶體。這實際上是駐留在硬碟上的記憶體。但是使得它對應用程式來說,就像是安裝在機器上記憶體一樣。當某個應用程式塊要求通路那個記憶體時,就把另外的記憶體塊複制到磁盤上,而把所要求的記憶體放到實體記憶體中,這些記憶體塊的大小是。也就是說,每次應用程式提出對記憶體的要求時,記憶體就被配置設定在的頁面内。在磁盤上模拟記憶體的檔案叫做頁面排程檔案。(虛拟記憶體管理器)是作業系統管理機器上的虛拟記憶體元件。所有的記憶體通路都通過。這意味着每當作業系統需要進行記憶體調頁時,就要提出請求。 記憶體調優方法: (一)使用超過的記憶體 另外,有辦法允許為單個程序或應用配置設定超過位位址空間的記憶體,為實作這一點,使用實體位址擴充(,或),本質上把位址空間從位增加到位,但是必須有或更新的處理器才能享受這個優勢。在下,提供驅動程式享受全部位位址空間的優勢,但是在中位位址空間的支援已經建立在作業系統中,然而,應用程式必須使用位址視窗擴充(,或)寫成,發行号()不支援,所有的發行号(–)都支援。在發行号()中實作了對的支援。 (二)和 允許你使用系統中任何附加的超過的記憶體,為了展現這個優勢,你必須有超過的記憶體,必須有或更新的處理器,必須運作進階伺服器或資料中心伺服器,不需要特殊的驅動程式,因為已經支援。 為了利用這項優勢,必須在啟動機器時在檔案中使用開關,你必須確定運作服務的帳戶有權限。給運作服務的帳戶增權重限後,要重新啟動服務。 (三)和 可以确定,所有發行号版本和發行号隻允許你為資料庫塊緩沖區配置超過限制的記憶體空間,是以,要為使用者連接配接釋放标準程序位址空間的記憶體(低于界限的記憶體)、記憶體群組成的不同記憶體緩沖池。 在初始化參數檔案中要設定參數,沒有這個參數,不能尋址到以上的位址空間。接下來要設定決定記憶體使用總量的緩沖池大小,設定和兩個參數。 在發行号中,參數被參數所代替,這樣就改變了原來指定緩沖區塊數到指定緩沖區位元組數,同樣,也解釋了在發行号的一個資料庫中支援多個資料庫塊大小。無論用哪種辦法,如果你設定參數,你将隻能定義和使用單個資料庫塊大小和塊緩沖區(就象在以前的發行号中),是以,如果預設資料庫塊大小是、或其它,而設定是不允許的。 接下來需要在系統資料庫中為設定合适的參數值,也就是在下,這個參數指定位元組數,如果沒有設定,預設值是。這個參數的大小取決于你要設定多少緩沖區大小,并視為來自程序位址空間的正常記憶體。以緩沖區大小為為例,設定為預設值,你希望視為正常記憶體,并且剩餘緩沖區來自限制以上的位址空間。你希望更多的緩沖池盡可能保留在正常位址空間,因為通路超過以上的緩沖池比通路虛拟位址空間緩沖池要慢(盡管仍然比磁盤操作快)。 (四)解決與相關的記憶體問題 需要注意的是每個界限以上的塊緩沖區需要在正常位址空間保留大約位元組的緩沖區頭,是以,在上面的例子中,我們大約有個緩沖區頭指向擴充位址空間的緩沖區,緩沖區頭大約占正常記憶體空間,如果資料庫塊很小,那麼這個數量會相當高,是以,必須確定這些緩沖區頭、、和所有程序的記憶體需求,包括編碼、其它元件、記憶體和每個使用者連接配接棧都适合程序的正常虛拟位址空間。 确認你有足夠的實體記憶體處理超過之外的,在我們的例子中定義緩沖池大小為,來自正常位址空間,剩餘來自以外的對整個程序有效的系統和程序位址空間,是以,這個例子隻能工作在至少有記憶體的機器上,你還應該為其它程序保留一些空間,隻有一個程序可以在某一時刻通路附加的記憶體。 象前面所說的那樣,開關隻用于系統有超過實體記憶體的時候,但如果系統記憶體少于時,也可模仿這項功能。在檔案中設定參數的值,如下面例子,設為,意味着任何以上的記憶體都将保留為記憶體。 為一個資料庫使用附加的多個程序 真正的應用叢集(,)提供有多個執行個體運作和通路同一資料的能力。通常,這用于有兩個或多個節點的項目,一個執行個體運作在每個節點。無論如何,它支援在有兩個執行個體運作在一個節點通路同一個資料庫。這能克服每個程序的記憶體限制,又提供某些其它的利益,如應用程式失敗檢測。<span lang=EN-US style="font-size: 10.5pt; line-height: 150%; font-family: " '">