在Windows 2000下 優(yōu)化Oracle9i性能
2024-08-29 13:35:50
供稿:網(wǎng)友
 
              一、優(yōu)化磁盤配置
Oracle是一個磁盤I/O強烈的應用,要確保你恰當?shù)嘏渲么疟P和文件系統(tǒng): 在磁盤上建立數(shù)據(jù)文件前首先運行磁盤碎片整理程序
                                                                                            為了安全地整理磁盤碎片,需關閉打開數(shù)據(jù)文件的實例,并且停止服務。假如你有足夠的連續(xù)磁盤空間建立數(shù)據(jù)文件,那么你就很輕易避免數(shù)據(jù)文件產(chǎn)生碎片。 
不要使用磁盤壓縮Oracle數(shù)據(jù)文件不支持磁盤壓縮。 不要使用磁盤加密加密象磁盤壓縮一樣增加了一個處理層降低磁盤讀寫速度。假如你擔心自己的數(shù)據(jù)可能泄密,就使用dbms_obfuscation包和label security選擇性地加密數(shù)據(jù)的敏感部分。 不要使用超過70%的磁盤空間剩余的磁盤空間存放系統(tǒng)臨時數(shù)據(jù)和作為磁盤碎片整理程序存放中間數(shù)據(jù)。 使用RAID 選擇硬件RAID超過軟件RAID; 
帶有硬件RAID控制器; 
日志文件不要放在RAID 5卷上,因為RAID 5讀性能高而寫性能差。 
把日志文件和歸檔日志放在與控制文件和數(shù)據(jù)文件分離的磁盤控制系統(tǒng)。 分離頁面交換文件到多個磁盤物理卷跨越至少兩個磁盤建立兩個頁面文件。你可以建立四個頁面文件并在性能上受益,確保所有頁面文件的大小之和至少是物理內(nèi)存的兩倍。
  二、優(yōu)化CPU使用和配置 取消屏幕保護 屏幕保護吸取大量的CPU資源而且提供的是對數(shù)據(jù)庫服務器毫無意義的用處,非凡要禁止3GL屏幕保護,假如你必須使用屏幕保護就用“空屏幕”減少CPU使用。 把系統(tǒng)配置為應用服務器 運行控制面板的“系統(tǒng)”,在高級選項卡中設置“性能選項”到“后臺程序”,這提供優(yōu)先權給應用程序,象類似Oracle的服務,反對用戶在圖形用戶界面啟動一個笨拙的程序。 監(jiān)視系統(tǒng)中消耗中斷的硬件消耗CPU中斷和時間的硬件應該避免使用。通常這樣的硬件是便宜的因為它把工作載入CPU,而CPU要處理外圍的高級性能的硬件,通常需要注重: 
1、支持總線控制的網(wǎng)卡 
2、支持DMA而不支持PIO的磁盤控制器 
使用性能監(jiān)視器跟蹤處理器對象的%Interrupt Time 計數(shù)器數(shù)值,和這個計數(shù)器的基線和標準,然后監(jiān)視問題。 
3、有利避免中斷的方式是使用硬件RAID控制器代替windows 2000支持的軟件RAID。 保持最小的安全審計記錄 在專用服務器上運行Oracle Oracle是內(nèi)存消耗大戶,不要在執(zhí)行下列功能的系統(tǒng)上運行Oracle數(shù)據(jù)庫: 
1、主域或備份域控制器(Windows 2000下都稱域控制器) 
2、文件服務器 
3、打印服務器 
4、遠程訪問服務器 
5、路由器、代理或防火墻 
不要使用花哨的壁紙(假如使用,要盡量減小壁紙文件大小)禁止非必須的服務 最好禁止系統(tǒng)里非必須的服務,假如時而需要某些服務功能,可將啟動類型設置為“手動”,要做到這一點首先同網(wǎng)絡治理員驗證實際的服務需求: 
1、假如你的系統(tǒng)不需要打印機,通常停止這個服務并設置為手動; 
2、停止License Logging Service服務除非你對它有非凡要求; 
3、不應該使用DHCP服務,并禁止它; 
4、不要自動啟動你不需要的程序; 
檢查菜單“開始/程序/啟動”里的內(nèi)容,刪除不需要的程序。 三、優(yōu)化網(wǎng)絡配置網(wǎng)絡配置是性能調(diào)整的一項很重要的內(nèi)容,而且很輕易隱藏性能瓶頸。 配置網(wǎng)卡使用最快速度和有效模式這針對自動檢測,大多數(shù)缺省安裝是NIC,假如這是可選的就盡量調(diào)整為“全雙工”和最大化線速度。 刪除不需要的網(wǎng)絡協(xié)議 只保留TCP/ip協(xié)議。 
                         優(yōu)化網(wǎng)絡協(xié)議綁定順序 在每個網(wǎng)卡上設置主協(xié)議,典型地是TCP/IP,到協(xié)議列表的頂端。 為Oracle禁止或優(yōu)化文件共享 理想地應該禁止文件共享功能來最小化安全泄露和網(wǎng)絡交通,但假如你需要使用文件和打印共享,那么就配置系統(tǒng)中每個網(wǎng)卡的“連接屬性”,設置“最大化網(wǎng)絡應用程序數(shù)據(jù)吞吐量” 四、內(nèi)存調(diào)優(yōu) 內(nèi)存優(yōu)化是Windows平臺的要害設置,首先了解一下Windows 2000平臺的Oracle結構: 基于線程的結構 Windows2000是基于線程的結構,相反,Unix操作系統(tǒng)是基于進程的結構。這意味著Windows中更多的應用,包括Oracle在內(nèi),是以帶有多個線程的單個進程的形式執(zhí)行,這種基于線程的結構的確給Window2000帶來優(yōu)勢——更輕易共享內(nèi)存。內(nèi)存空間為每個進程分配,進程間共享內(nèi)存很笨拙,要使用附加編碼,線程是進程的子集,使用比進程少得多的內(nèi)存。特定進程的所有線程共享同樣的進程內(nèi)存空間,同一進程的線程間共享內(nèi)存比不同進程共享內(nèi)存要快,這給基于線程的結構很大優(yōu)勢,更有效。 在服務器上運行的每個應用程序都有一個,而且只有一個進程。進程是應用程序的載體,是用來容納執(zhí)行應用程序?qū)嶋H工作的線程的。從用戶角度看,進程是不用任何專門工具就可以看到的組件。進程對其他應用程序組件的作用就像容器一樣。它持有虛擬的存儲空間、數(shù)據(jù)、系統(tǒng)資源和應用程序設置。雖然線程可以分配、重新分配和釋放內(nèi)存,但是進程接受初始的內(nèi)存分配,并將它分配到請求內(nèi)存的所有線程。線程是包含在進程內(nèi)共享所有進程資源的單個執(zhí)行路徑。它還包含堆棧(存儲在內(nèi)存中的變量和其他數(shù)據(jù))、CPU寄存器的狀態(tài)信息(所以,線程可以恢復它的環(huán)境)、和在系統(tǒng)調(diào)度程序的執(zhí)行列表中的一個登錄項。每個線程規(guī)定了完成任務應用程序需要作的某種工作。 使用Task Manager的主要問題是看不到任何線程。Task Manager被設計成從進程層將應用程序作為整體看待。當然還可以使用性能監(jiān)視器來監(jiān)視Windows下的Oracle內(nèi)存使用。 從“開始/程序/治理工具”選擇“性能”啟動“系統(tǒng)監(jiān)視器”。注重,“性能”包括兩個MMC插件:“系統(tǒng)監(jiān)視器”和“性能日志和變更”。這時,需要一些被監(jiān)視的計數(shù)器(計數(shù)器是一些性能指示器,用于對 Windows 2000的非凡對象進行統(tǒng)計,例如統(tǒng)計特定線程所要求的處理器時間)。單擊“添加”按鈕(在圖中看起來象一個加號),將看到“添加計數(shù)器”對話框。首先需要選擇想監(jiān)視的“性能”對象。在包含“進程”對象和“線程”對象的“性能”下拉列表中選擇。 進程觀察器(PRocess Viewer)是比較輕易檢查線程和進程的方法之一。可以在 Windows 2000 Support Tools 或Windows 2000 Resource Kit內(nèi)找到一些工具。Windows 2000 Support Tools是Windows 2000的一部分,但是并不自動安裝。支持安裝的Windows Installer文件在%CDROM%/SUPPORT/TOOLS/目錄下。只要在2000RKST.MSJ上右擊,并從context菜單上選擇安裝即可。 內(nèi)存基于線程的結構的確有一些內(nèi)存限制,因為單個進程由線程組成,而進程的地址空間是受限的,因此很少有空間是機動的。因為Windows 2000仍然是32為操作系統(tǒng),單個進程地址空間被限制在4GB內(nèi),其中一半被操作系統(tǒng)保留,這2GB被OS保留的系統(tǒng)內(nèi)存也被視為系統(tǒng)地址空間,他包括 OS內(nèi)核編碼、硬件抽象層編碼(HAL)和需要治理進程和OS交互的不同的其它結構,這2GB的系統(tǒng)地址空間是禁止應用程序進程訪問的。因此,Windows 2000標準服務器單個應用程序進程可使用內(nèi)存空間共2GB。在Windows 2000高級服務器啟動文件boot.ini中有/3GB開關,改變這個比例到3GB,這項技術被稱作4GB調(diào)優(yōu)(4-gigabyte tuning,或4GT),我們將針對這個問題展開具體討論。 保留的內(nèi)存是分配給線程的內(nèi)存并且留作將來使用,但沒有實際使用的內(nèi)存。因為沒有實際使用,因此它對其它進程仍然有效。但是,因為它已經(jīng)被分配,它仍然由對擁有線程的進程的總的內(nèi)存限制產(chǎn)生,因此,保留內(nèi)存的計算針對2GB或3GB的限制,并且進程保留的和使用的內(nèi)存的總和不能超過這個限制。 除了系統(tǒng)中安裝的物理內(nèi)存之外,Windows 2000還使用虛擬內(nèi)存。這實際上是駐留在硬盤上的內(nèi)存。但是Windows 2000使得它對應用程序來說,就像是安裝在機器上內(nèi)存一樣。當某個應用程序塊要求訪問那個內(nèi)存時,Windows 2000就把另外的內(nèi)存塊復制到磁盤上,而把所要求的內(nèi)存放到物理內(nèi)存中,這些內(nèi)存塊的大小是4KB。也就是說,每次應用程序提出對內(nèi)存的要求時,內(nèi)存就被分配在4KB的頁面內(nèi)。在磁盤上模擬內(nèi)存的文件叫做頁面調(diào)度文件。Virtual Memory Manager(VMM虛擬內(nèi)存治理器)是操作系統(tǒng)治理機器上的虛擬內(nèi)存組件。所有的內(nèi)存訪問都通過VMM。這意味著每當操作系統(tǒng)需要進行內(nèi)存調(diào)頁時,就要提出VMM請求。 內(nèi)存調(diào)優(yōu)方法: (一)使用超過4GB的內(nèi)存 
另外,有辦法答應為單個進程或應用分配超過32位地址空間的內(nèi)存,為實現(xiàn)這一點,Windows 2000使用物理地址擴展(physical address extensions ,或PAE),PAE本質(zhì)上把地址空間從32位增加到36位,但是必須有Pentium Pro或更新的處理器才能享受這個優(yōu)勢。在Windows NT 4.0下,Intel提供PSE36驅(qū)動程序享受全部36位地址空間的優(yōu)勢,但是在Windows 2000 Advanced Server中36位地址空間的支持已經(jīng)建立在操作系統(tǒng)中,然而,應用程序必須使用地址窗口擴展(Address Windowing Extensions ,或AWE)API寫成,Oracle9i 發(fā)行號1(Release 1)不支持AWE,所有的Oracle 8i發(fā)行號(releases 8.1.5–8.1.7)都支持AWE。Oracle在9i發(fā)行號2(Release 2)中實現(xiàn)了對AWE的支持。 
                         (二)AWE和Windows 2000 
AWE答應你使用系統(tǒng)中任何附加的超過4GB的內(nèi)存,為了體現(xiàn)這個優(yōu)勢,你必須有超過 4GB的內(nèi)存,必須有Pentium Pro或更新的處理器,必須運行Windows 2000高級服務器或Windows 2000數(shù)據(jù)中心服務器,不需要非凡的驅(qū)動程序,因為Windows 20