




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、BS系統(tǒng)疑難問題分析與調(diào)優(yōu) 常見方法介紹應(yīng)用系統(tǒng)部署實施之后可能會出現(xiàn)一些部分功能模塊不可用、系統(tǒng)運行緩慢、系統(tǒng)崩潰等莫名奇妙的問題,這些問題現(xiàn)象多種多樣,導(dǎo)致問題的原因也并不相同,解決起來更是千差萬別。分析與調(diào)優(yōu)的方法并不能一概而論,但也并不是毫無規(guī)律可言,掌握一些要領(lǐng)、思路、常用的排查手段及常見的問題解決辦法有助于縮短問題解決的周期。本文將以專題介紹及案例分析的方式對這些思路和方法做一些總結(jié),希望能夠幫助各個項目有效的排查并解決這些問題。疑難問題分析與系統(tǒng)調(diào)優(yōu)是件十分復(fù)雜的事情,生產(chǎn)環(huán)境的復(fù)雜多樣決定了不可能有人能夠有百分之百的把握解決所有的問題,無論是從經(jīng)驗、技術(shù)還是邏輯的角度來說都是這
2、樣。因此這項工作對人員的要求就較高,為了能夠幫助不太熟悉這項工作的人員盡快進入角色,以往的經(jīng)驗總結(jié)就顯得非常重要。因此本文永遠都不會完結(jié),僅做一個拋磚引玉,希望在以后的工作中,能夠得到不斷的完善。1. 要領(lǐng)敏銳的頭腦,縝密的思維,細致的工作,廣泛的聯(lián)想能夠幫助更好的適應(yīng)這項工作。敏銳的頭腦:強調(diào)能夠快速的到記憶或文檔中找到匹配或近似匹配當前問題的問題。這一點尤為重要,如果在記憶中或文檔中找不到痕跡,則此問題就是 個全新的問題,而一個全新的問題對于任何人來說都是一件棘手的事情。縝密的思維:在當前人類認知的世界中,任何事情都是有因才有果,也就是所謂的符合邏輯。任何奇怪的現(xiàn)象,包括違背常識的事情,都
3、有著其內(nèi)在的原因。因此即便是遇到嚴重違背常理的事情也不要慌亂,此時就需要用以往的一些經(jīng)驗及其他渠道,如網(wǎng)絡(luò)、他人等查找可能的原因,然后逐一的按照邏輯進行排查。細致的工作:這能幫助你搜集到用以定位問題的關(guān)鍵點,用以支持判斷邏輯的證據(jù),用以觸發(fā)聯(lián)想的觸點,也能保證已有的環(huán)境不會被破壞或改變。廣泛的聯(lián)想:基于已有的事情廣泛的聯(lián)想、尋找相關(guān)的事情,常常非常有助于事情的解決,也有助于將單個的、破碎的事情片段聯(lián)系在一起形成一系列環(huán)環(huán)相扣的鏈條。2. 總體思路處理問題的總體思路如下:根據(jù)問題匯報、粗略的問題描述或一些已有的手段清晰、明確的定義問題;基于問題定義進行分析,尋找可能引發(fā)問題的原因;在某種環(huán)境下模
4、擬、重現(xiàn)問題進一步確定問題原因;對于分析出的問題進行修改;對問題修改的結(jié)果進行驗證。問題定義:這個步驟十分關(guān)鍵,因為問題的匯報和粗略的問題描述往往并不準確,有時甚至是錯誤的。因此不能過分的相信這些匯報和描述,因為不準確的問題描述會將你引上歧路,大大延緩問題的解決時間。所以除了了解已有的問題描述外,還需要做一些相關(guān)的試驗用以確定已有描述的準確性。問題分析:基于問題定義進行分析,尋找可能引發(fā)問題的原因。這個步驟找到的有可能不是根本原因,而且由于事情的復(fù)雜性,有可能會造成誤判。這種情況不可能避免,因此下最終的結(jié)論時要慎重。在一些復(fù)雜的問題中可能需要與其他幾個步驟一起進行迭代,才能判定問題的成因。問題
5、重現(xiàn):重現(xiàn)問題有助于進一步確定問題的成因,也有助于將來問題解決后的回歸測試。是在生產(chǎn)環(huán)境還是測試環(huán)境下重現(xiàn)問題,有很多因素,但其中最重要的一個因素是這個過程是否會不可逆的改變現(xiàn)有的生產(chǎn)環(huán)境。問題修改:對分析出的問題進行修改。問題驗證:基于修改的結(jié)果進行回歸測試,驗證問題是否解決。一般來講在條件允許的情況下,盡可能的先在測試環(huán)境下進行驗證,確認無誤后再在生產(chǎn)環(huán)境下進行驗證。切忌過分的相信自己的能力。3. 專題3.1. 客戶端技術(shù)在B/S系統(tǒng)中,傳統(tǒng)web客戶端組件及其各種變種,主要承擔了界面展現(xiàn)及請求發(fā)送與接收的工作。傳統(tǒng)的web客戶端組件包括:HTML各種Script , XML CSS。變種
6、主要指隨著 Web2.0而新興起的一些技術(shù):Flash ,基于腳本的RIA,各種 類型的自定義控件。這些組件或技術(shù)負責前臺頁面的展現(xiàn),而與后臺的通信一般通過HTTPW議來進行。3.1.1. 常見問題. 腳本性能問題描述:腳本性能問題主要在基于腳本的RIA 解決方案中體現(xiàn)比較明顯,這種解決方案為了達到良好的交互效果,大量的使用了腳本語言對頁面進行渲染,由于腳本的復(fù)雜性,及瀏覽器的對腳本優(yōu)化還不到位,經(jīng)常會有一些性能問題。解決方案:1. 在滿足兼容性的前提條件下,盡量升級客戶端到較新版本的瀏覽器。新版本的瀏覽器一般內(nèi)部會做優(yōu)化,加快HTMU口腳本的解析速度。2. 換用較新版本的RIA
7、解決方案或較快的其他RIA解決方案。新版本的同類型RIA解決方案一般在性能方面都會有所提升。如果最新版本的依然無法滿足渲染速度的要求,只能考慮更換其他RIA解決方案。3. 更換客戶機硬件配置。RIA 技術(shù)的理念是充分的利用客戶機的資源進行渲染,在維持服務(wù)器壓力不變、甚至降低服務(wù)器壓力的情況下,給用戶帶來更好的交互體驗。這里的一個前提是客戶機的硬件配置不錯,因此如果客戶機硬件配置較低,則需要考慮升級客戶機硬件或者放棄使用RIA技術(shù)。. 同步調(diào)用問題描述:在瀏覽器進行同步調(diào)用時,直到所有的同步調(diào)用都完成,頁面才會展現(xiàn)出來。如果其中的某個請求的響應(yīng)速度較慢,則會拖累整個頁面進入一種 空
8、白、假死的狀態(tài),用戶體驗十分不好。解決方案:1. 請求的響應(yīng)較慢一般是由于中間件或數(shù)據(jù)庫處理的慢而造成的,所以根本的解決辦法是調(diào)整中間件、數(shù)據(jù)庫或者算法,后臺處理的速度上來了,前臺的頁面出來的也自然就快了。2. 在某些情況下,調(diào)整中間件、數(shù)據(jù)庫或者算法實施成本都太高,為了快速的改善用戶體驗,一個重要的方案就是異步請求,將較慢的請求改成異步形式的,就可以避免一條臭魚壞了一鍋湯的結(jié)果了。. 帶寬占用問題描述:有些應(yīng)用,特別是采用了RIA 技術(shù)的應(yīng)用,經(jīng)常會向中間件請求大量的資源,嚴重的占用了網(wǎng)絡(luò)帶寬資源,無形中同時對網(wǎng)絡(luò)和中間件資源都造成了巨大的浪費,加重了他們的負擔。解決方案:1.
9、 在客戶端緩存基本不變的靜態(tài)文件,減少文件的下載次數(shù)。2. 對腳本文件進行語法壓縮,減小腳本文件的大小。3. 對HTTR向應(yīng)開啟GZIP壓縮,對于文本型的資源能夠有效的縮減傳輸?shù)牧?量。3.1.2. 常用工具. HttpWatchPro此工具可以將客戶端發(fā)出的Http 請求細節(jié)捕獲出來,并記錄每個請求的時間,使用這個工具可以清楚的定位究竟客戶機請求了些什么資源,以及哪些資源的請3.2. 中間件技術(shù)中間件即BS系統(tǒng)中的應(yīng)用服務(wù)器,我們生產(chǎn)環(huán)境下最常用的就是WebLogic系列。中間件是 Web應(yīng)用程序的容器,負責接收客戶端請求,進行業(yè)務(wù)邏輯處理, 并最終與數(shù)據(jù)庫交互完成整個過程。因
10、此其地位十分重要,有很多種類型的問題 發(fā)生在這個層面。3.2.1. 常見問題. 內(nèi)存配置問題描述:中問件的控制臺經(jīng)常出現(xiàn)OutOfMemory錯誤,則很有可能是因為部署實施時沒有修改JVM的默認內(nèi)存配置參數(shù),造成可用內(nèi)存過少所致。解決方案:1 .通過簡單的修改JVM內(nèi)存參數(shù)即可,但要注意,修改完后要進行驗證,確認參數(shù)是否起作用,不要想當然. 內(nèi)存溢出問題描述:如果內(nèi)存參數(shù)已經(jīng)修改成功,而中間件的控制臺還是經(jīng)常出現(xiàn)OutOfMemory昔誤,則很有可能是由于代碼編寫的不好,消耗內(nèi)存過大所致。解決方案:1 .通過使用合適的JVM內(nèi)存監(jiān)控、分析工具,捕獲到發(fā)生內(nèi)存溢出的程
11、序,進而修改代碼解決問題。. 內(nèi)存泄露問題描述:如果中間件重啟后的一段時間沒有問題,但運行幾天或更長的時問后卻出現(xiàn)OutOfMemory錯誤,則很有可能是出現(xiàn)了內(nèi)存泄露。內(nèi)存泄露和內(nèi)存溢出是有很大區(qū)別的。內(nèi)存溢出通常是由于代碼寫的不好,程序運行消耗大量的內(nèi)存,很有可能程序還沒有執(zhí)行完成就發(fā)生了錯誤,即OutOfMemory錯誤。而內(nèi)存泄露一般是程序執(zhí)行已經(jīng)完成,但是使用到的內(nèi)存資源卻無法釋放,隨著程序的不斷運行,這部分不能釋放的內(nèi)存資源越來越多,直至最后發(fā)生內(nèi)存溢出錯誤。解決方案:1. 內(nèi)存泄露程度和排查的難易的程度成反比,即內(nèi)存泄露越嚴重排查起來越簡單,內(nèi)存泄露越輕微排查起來越
12、困難。通過使用合適的JVM內(nèi)存監(jiān)控、分析工具,可以逐漸找到發(fā)生內(nèi)存泄露的程序,進而修改代碼解決問題。. 線程配置問題描述:中間件是以線程的方式處理客戶端請求的,因此線程是否夠用并能有效的工作就決定了客戶端的每個請求能否順利完成。如果線程數(shù)配置過少,客戶端的請求就不能得到及時的響應(yīng),如果配置過大,又造成資源的浪費。解決方案:1 .通過修改中間件的線程相關(guān)配置可以逐漸找到適合生產(chǎn)系統(tǒng)的線程數(shù)量. 連接池配置問題描述:在業(yè)務(wù)應(yīng)用程序中,不可避免的要進行數(shù)據(jù)庫相關(guān)的操作,為了保證數(shù)據(jù)庫連接的高效和穩(wěn)定,在生產(chǎn)環(huán)境中一般都使用中間件自帶的連接池。數(shù)據(jù)庫連接消耗數(shù)據(jù)庫主機的資源
13、,所以連接池配置過大,造成資源的浪費,配解決方案:1 .通過修改中間件的連接池相關(guān)配置可以逐漸找到適合生產(chǎn)系統(tǒng)的連接池數(shù)量。. 問題程序問題描述:這里所謂的問題程序指在 JAVA程序代碼中使用循環(huán)次數(shù)很多,且循環(huán)體中又帶有大量操作的循環(huán)程序,這種程序是最常見的一種問題程序。這種程序大量占用中間件的資源,可能也會大量的占用數(shù)據(jù)庫資源,而且通常來講執(zhí)解決方案:行速度較慢,一般都會造成比較壞的影響。一 一1 .通過監(jiān)控工具找到這些問題程序,修改代碼解決問題。3.2.2. 常用工具. WebLogic 控制臺性能監(jiān)控此工具可以方便的監(jiān)控 WebLogic內(nèi)存及線程資源的使用
14、情況。內(nèi)存監(jiān)控包括總量及當前已用量兩個值及當前已用量變化的曲線。通過內(nèi)存總量可以驗證內(nèi)存參數(shù)配置是否起作用。通過總量及當前已用量可以得出剩余的內(nèi)存量,對這個參數(shù)進行一段時間的采集即可判斷出是否存在內(nèi)存泄露。通過當前已用量的變化曲線可以用以預(yù)估系統(tǒng)是否存在消耗內(nèi)存資源過大的程序,通常表現(xiàn)為一條很陡的曲線。通過這條曲線還可以發(fā)現(xiàn)所謂的問題程序,問題程序一般會表現(xiàn)為一條劇烈起伏的折線。線程監(jiān)控包括空閑線程數(shù)和隊列長度值。如果空閑線程數(shù)經(jīng)常很小,且隊列長度經(jīng)常有較大的值,可能的一個原因就是線程配置的不太合適了。日志記錄翁規(guī)性能I安全鞋監(jiān)視配置 協(xié)議控制JMS | JTA在此頁中,您可以監(jiān)視有關(guān)此服.務(wù)
15、器的性能信息口空閑轉(zhuǎn)程數(shù):15空閑的線程數(shù)量分配給此隊列的空閑繪程數(shù)。最早的特定請求TueAp1312 04 52CST201。等待時間最長的請求放入隊列的日期和時間O吞吐量隊列已經(jīng)處理的請求教。沒管徜處理的需求隊列_3222 WebLogic執(zhí)行線程監(jiān)控此工具配合上面的工具一起使用,可以詳細的了解當前中間件上運行著哪些 線程。配合上面的工具可以對內(nèi)存溢出、問題程序進行排查。. WebLogic 連接池監(jiān)控此工具可以方便的監(jiān)控 WebLogic連接池的使用情況。通過對連接池運行情況的監(jiān)控,可以檢查連接池的最大最小連接數(shù)量配置的 是否合適。由于中間件集群的存在,連接到數(shù)據(jù)庫的總連接
16、數(shù)等于每個集群節(jié)點 的連接總數(shù)*集群節(jié)點的數(shù)量。而且由于生產(chǎn)環(huán)境下數(shù)據(jù)庫服務(wù)器的性能有高有 低,各個業(yè)務(wù)系統(tǒng)也不完全相同。因此不可能將所有連接池的最小連接數(shù)都配置 為一個非常大的值。一般的做法是將最小連接數(shù)配置為一個相對保守的值,而最 大連接數(shù)配置為一個能接受的較大的值。然后通過連接池監(jiān)控中的總連接數(shù)來判 斷最小值配置的是否合適。總連接數(shù)是說從某個連接池建立起來總共建立的連接 數(shù)量,如果這個值很大,說明此連接池經(jīng)常的擴大、收縮,一般來講這就是最小 連接配置的較小所導(dǎo)致的。這時可以增大最小值的設(shè)置,重新監(jiān)控使用情況. Jprofiler此工具實時的跟蹤中間件的運行情況,將內(nèi)存使用情
17、況,CPUS用情況等詳細信息顯示出來,可以用于排查內(nèi)存溢出、內(nèi)存泄露、問題程序等問題。但需要注 意的是這個工具對中間件的性能有一定的影響,所以如果在生產(chǎn)環(huán)境下使用,會 拖慢中間件運行的速度,有一定風險。一般推薦用在測試環(huán)境、或壓力較小的生 產(chǎn)環(huán)境下。f i i A 口 1aL Ihi4iihQ. MemoryAnalyzer專門用來分析JVM內(nèi)存轉(zhuǎn)儲文件的分析工具。內(nèi)存轉(zhuǎn)儲的意思是將JVM內(nèi)存中 的東西存儲成為一個專門的文件,然后通過特定的工具就可以對這個文件進行分 析。所以首先要將JVM的內(nèi)存轉(zhuǎn)儲出來才行,這需要用到JVM本身的一個功能,這 個功能受JVM版本的影響,只有較高的
18、版本的 JVM才能提供這個功能。具體要求 的最低版本號可以查閱MemoryAnalyzer工具的幫助文檔。在滿足要求的JVM版本配置上啟動參數(shù):-XX:+HeapDumpOnOutOfMemoryErrqr 即激活了內(nèi)存轉(zhuǎn)儲功能。這個參數(shù)的含義是當JVM發(fā)生內(nèi)存溢出即OutOfMemory時,JVM會把內(nèi)存中的東西存成一個文件,名為 java_pid 1464.hprof ,其中紅色 的部分為Java進程的進程標識符PID。文件存放的位置一般是中間件啟動命令所在的目錄。進行內(nèi)存轉(zhuǎn)儲時后臺會有所提示。這個工具對生產(chǎn)環(huán)境基本沒有什么 影響,推薦生產(chǎn)環(huán)境下調(diào)試問題采用rm b.tart incyL
19、DKH NOTICE 1 ' No man i£ e s-1 info because DKM is not run as a jar -DRM NOTICE J : canfZOP. prapeipt les uas Foundl in file :ZD «ZbeaZusep_pi*c JectzsZdtiinainQZinidan .K>rosleptles when Find. In OP_SVSJfilHIIS_DEBUG-falseL DRM NOT1 CE 1 " conf/support DBles wma found in File
20、2 ZD Zbea/ueerjivo jecteZdoinaincanfZsuppcii*trDE_ppopei*tles when Find In OP£¥£_PfllIH*CDRM DRM IDNM DRM DRH DRMIDNM DimCHECKING CHECKING CH1CKIHG CHECKING CHECKING CHECK1MG CHECKING CHECKINGNOTICE 1 HOT ICE J NOT I CE NOTICE 1 NOT ICE NOT ICE J NOTICE J NOTICE 1MM MiMKXMWXKIHXJitM M
21、X X !M X XDrmPoo1 : £JDA docsDmPoo L : TDLY doesDrnPoo1 : GVBft docsSJBH CUDOLINKl mot confIgi 旗ny TDL¥ UDOLINKJ nplt config! any GYBA CUDOLINKl not configi 視ny DLSVS UDOLtNKJDPoolf* 耗,同,* *,*,* *耗,同,*DnPo o1*DrnPo O IfDBM NOTICE ) : DRM: DpmPao1 : DLSYS does not config 已ny DrmPaol* Start
22、OK ?DniEftP License expired Date. 2010-6-10 23 :59 :592010-4-13 14:31:Ufe UniEflP V?orEf Low initialising. . ,Buent send In lit 一2810X0413-14e31 :09 >> DEBUG >> inoin >> CConso Le >> con.neusof t - businiesscDnso le rf irnincwor: 例模塊資源解析出屬性正片白心die母上的值為s tcstrcsourcc . pvopert
23、 "總的to®七key Jtestualiic C/UEB EjnuMCie1 = pi*opept iesl testkey J jJte-Efci/alue2010ZH413-14:31>> DEBUGsoujf-c&ConF igHandler r jav<a"59 ><2610-4-12下午02時3士分"秒elopnent Node>t >> il>>CST>nln >> Coiiisq Le* 1 >> canineusoif t .bus: Ir
24、iiefisrcorjiso le rf aineu4i*在邏輯子應(yīng)用busInc.ssconiso 1c 1中加聿臭塊資源口七EjccniplttHR甘0<Notice>UcbLof icS c rv ei*<BEft-800331><Startcid WchLogilc<2610-4-13java - lang. Ou 10£ Me no r y Ei*i*o r -CST>CST>Java.<Nfatice><Hotice><yebL&g icS e fm er><WcbLogii
25、cScrver ><REA-»RH3a><BEA 000355>q3您me# started L <Threftd '"LisstcnTh:heap spaceF和文件夾任招創(chuàng)建一個新文件夾將這個文件夾發(fā)布到 冒eb共享此文件夾appli cations_j rnystrysr_)rmfiltii«rt國 boot, propwti «=Con£i g. xml文件夾文件夾文件夾TEOFERTIES 文件JIML交檔泄置公domains我的交檔 共享文檔 我的電腦 網(wǎng)上鄰居回園酉國國m囹一config
26、. scsil. booted config Tcul. original6 KB BOOTED 文件C KB UEIG工NAL 文件D«f&ultAuthenticfctorlnit. IdiftD«ifauItAuth&ri ztrlrti t. Idi ftfileRealni. pr operti es installServi ce« sd j ava Di dl464, hprof1KB加文檔3KBLDIFT文件4KBLDIFT文件2KBID1FT文件IKBFtiOFEirriES 文件6KBWind班5 NT 命令.64M 581KB
27、WRDF即富hotfDLinpincy heap to Jaiija_piidl464ahpvofHeap dun)> file created 65SRW2H6R htes ln> 13-R36 secsl一)D: L « ut «r _pr 4 j « c 11X dem a i eis n7d4m «i n名稱,I大小類型jiimi "minim imiviimm m imu-im iiF-iimim t這樣通過中間件運行時自動的內(nèi)存溢出,當然也可以手工制造一個內(nèi)存溢出,就可以獲得內(nèi)存的轉(zhuǎn)儲文件。然后就可以通過MemoryAn
28、alyzer工具對其進行分析, 找到內(nèi)存溢出或泄漏的原因了«3Ml M . Problem Suspect 13.2.3. 常用配置. WebLogic 啟動內(nèi)存分配Windows修改 startWebLogic.cmd 添加如下文字:set MEM_ARGS=-Xms1024M -Xmx1024M -XX:PermSize=256M -XX:MaxPermSize=256M其他操作系統(tǒng)修改 startWebLogic.sh 添加如下文字:MEM_ARGS="-Xms1024M -Xmx1024M -XX:PermSize=256M -XX:MaxPermSi
29、ze=256M "其中:-Xms為堆內(nèi)存最小大小-Xmx為堆內(nèi)存最大大小-XX:PermSize 為永久保存區(qū)最小大小-XX:MaxPermSize為永久保存區(qū)最大大小. WebLogic 參數(shù)配置1 . 域JTA超時秒數(shù):600(默認值30,為可選調(diào)節(jié)項,在使用 WebLogic連接池時,如果應(yīng)用中存在執(zhí)行過于緩慢的事務(wù)操作,可以更改這個值,以便功能可以完成。但并沒有根本的解決問題,修改程序,加快業(yè)務(wù)操作的執(zhí)行速度才是根本 )2 . 域日志最小文件大小:1024限制保留的日志文件數(shù):勾選要保留的日志文件:303 .服務(wù)器日志Stdout嚴重程度閾值:Error最小文件
30、大小:1024限制保留的日志文件數(shù):勾選要保留的日志文件:30關(guān)閉Http日志4 .線程池配置線程計數(shù):100 (為CPl量*25, 一般不用超過100). WebLogic 連接池配置1 .拷貝工程lib下面的包ojdbc14.jar 或者合適的ojdbc14.jar至U WebLogic 的 Serve門ib 下面,類似于 D:beaweblogic81serverlib 下,覆蓋同 名文件(原始文件記得備份)。2 .啟動WebLogic進入控制臺,點擊【連接緩沖池】,點擊【配置新的JDBC連 接緩沖池】。選擇驅(qū)動程序,一般為 Oracle Thin XA 或Oracle T
31、hin 。他 們的區(qū)別是Thin XA驅(qū)動支持分布式事務(wù),而 Thin驅(qū)動不支持。具體選 擇什么根據(jù)需求確定。+0racle,s Driver (Thin XA) Versions; E. L 9. 0. L 9. 2. Oj 10*0racleT s Driver (Thin) Versions: 0» lj 9. 2,Q3 10配置JDBC連接緩沖池選擇數(shù)據(jù)庫下別步箱將有助干創(chuàng)建和部茶連樓綾沖池。如果埋意,可以稍后更改配置信息和部翦選項。為新的連接綠沖池選擇效據(jù)庫突型和斐動程序。數(shù)據(jù)庫類型 Oraclev數(shù)據(jù)厚嬖動程序*BEA's Oracle Driver (Type
32、4 XA) Versions:8.1. 7,9.0.1,9.2.0BEA* s Oracle Driver (Type 4) Versions: 8. 1. 7, 9.1. 1, 9. 2 0rOracle. s Driver (Thin XA) Versions:8. 1. 7, 9, 0. 1,9. 2. 0,10IOracle's Driver (Thin) Versions:8. 1.7Oracle's Driver (Thin) Versions:9. 0.1, 9.2. 0,10WebLogic, s Oracle Driver (Type 2 XA) Versio
33、ns: f. 1. 7, 9. 0. 1, 9. 2. 0注意并非要安裝列表中所有的驅(qū)動程序。使用之前,忽可能需要安裝選定的驅(qū)動程序。如果未列出您的驅(qū)動程序,請選擇其他'。Weblogic Server JDDC 己認證定義在接屬性玷 口;1521救據(jù)中服務(wù)器上用于連接到效據(jù)后的端口O數(shù)據(jù)庫JI1戶名 elarp物理敕據(jù)庫選接中使用的數(shù)據(jù)庫帳戶用戶名。密碼:確認定科:|物理效據(jù)庫連接中使用的皴據(jù)庫帳戶后碼?!?#187;ec<iuer.tr<ur»MA1K4£I«I«mydomain> JDBC 連接緩沖池ELARP連接到:my
34、domain ) 登錄名:weblogic | 退出常規(guī)配置在此頁中,您可以定義此JD日C連接緩沖池的連接配置。初始容量二1創(chuàng)建此JDBC連接輾沖池時要創(chuàng)建的物理數(shù)據(jù)庫連接俞至咻嚶喊).根據(jù)需要配置 這三個參數(shù)最大容量:叵2:此DBC連接繞沖池可以包含晌最大物理數(shù)據(jù)庫連接數(shù)前予控正感;容量增長:1此JDBC連接緩沖池容量擴展的增量0 - 32位正整數(shù):。A Swtement 塞存類型:LRU v用千堆護存儲在翅存中的prepared statement的筑法總使用新statement時.LRU將替換最近另Stsitement舞存大小10存儲在緩存中的prepared statem&nt
35、和callable弓emenl數(shù)目這可能會提高服努器性能* :0詞試保明的連長指定'.'eULogic號前用卜是否在將連接提供給客戶端之前測試該連侯電池顏在下面指定測試表看稱。:',在高軌選項中,根據(jù)需要勾選這三項*選中后會對數(shù)據(jù)庫性能造成一定的影咱,主要用 回泅次創(chuàng)建峋隹接,在數(shù)據(jù)庫和中間件之間網(wǎng)絡(luò)連接不穩(wěn)定的環(huán)境中匕不選則可靠性就降低了.指定置SLogic Stiver餐否在創(chuàng)建連播后且耨該連接潴加到箜沖池中用用連接列表之前時詩連接進行測試“(必須指定測試表名稱。:0湖試澤放的旌桂指定同曲Logic Seci是否在將隹接返回到讀JDBC隹樓緩沖?蚊前測試停建接。遨須
36、指定測祓表名稱。面;支持本地事務(wù)若使用Oracle Thin XA驅(qū)動需要勾選這項,使用 Oracle Thin驅(qū)動無此選項.指定如果沒有全局事務(wù),用于創(chuàng)建物理數(shù)據(jù)庫連接的XA驅(qū)動程序是否支持SQL口3 .點擊【數(shù)據(jù)源】,點擊【配置新的JDBC數(shù)據(jù)源】定義新的JDBC數(shù)據(jù)源。可以隨意起,但最好有意義名稱ELARP此JDBC數(shù)據(jù)源的名稱。需要對應(yīng)dr m_sys_dat as our c e表中記 錄的dbux 1字段JNDI 名稱 ELARP將此JDBC數(shù)據(jù)源綁定到的JHDI路徑。E允許全局事務(wù)指定此數(shù)據(jù)源是否將參與狽有全局(XA;4纖。一般在創(chuàng)建數(shù)據(jù)源時應(yīng)選中1 為非XA變動程序仿真的階段提
37、交指定JDBC次源是否將仿真全局事務(wù)中的參與。當關(guān)聯(lián)的連接緩沖池使用關(guān)聯(lián)新建JDBC數(shù)據(jù)源和連接緩沖池。緩沖池名稱ELARP m關(guān)聯(lián)緩沖池與此數(shù)據(jù)源相關(guān)聯(lián)的JDBC連接緩沖池。選定的連接緩沖池用于向客戶端應(yīng)用程序提移選擇要部署此JDBC數(shù)據(jù)源的服務(wù)器和群集。大多數(shù)情況下,應(yīng)該將數(shù)據(jù)力 接緩沖池的部署目標。獨立服務(wù)器H mvserver部署數(shù)據(jù)源4 .確認UNIEAP用戶中drm_sys_datasource表中是否有 WebLogic數(shù)據(jù)源配置及配置是否正確DSIDPOOLFROV1DER -1 DS NAMEIDSDtSCRiBEDRIVERNAMEDBT'TlPEDBJRLNEUD
38、OCUDOLINKNEUDOC皿址_奴勢口津匚匚orade ibc diiw OnxIeDiim Orach-jdbc giacte ijhin 132.166132.216:1521:博日的DL5WLIDOUNKDLSVS-PL5YS-aade jdbc: dii*%f QrcleDiiv«f Oracle-由亡 aiadte.lhH 132.1 GB 132.21 G1521 :出泊的SYS_WFUDOUNKuriH口時unihw datasource fade jdbc diiver OracleCiii*/er Oraclejdb<raiade:lhn:19G.1 BE
39、Ll 3221 E:1521 :惚g pfrtyELARPUDOUNKELARP淖 daflasDurceoracle jdbc.diiver OracleCiliver - »OracleMbc:oiacla:thn:132.1 EBJ 32.21 G1521:tslapptSJBlAUDOUNK占%3,懺字犯金汨Eu口hr-由新理若& "f-OracleCr Oracle:癡心:0 碼也如n:l 92.1 GBJi32.216:1521:3i君 prty >>TOLVUDOUNKTD這1r受要燈t/gbL昨工二中藪據(jù)說明 工口由1coig . .Or
40、acle jdbc oiadte:lhn 192.1681322161521 EgprtPREPORTUDOUNK.RE J服工&冏ver OrSWOluf Orachidbc oiactetfin 192.166132.2161521:闌廿的GYBADDaLIHKGYuh-u olie ii- uiif 口wcIeD曲亡口舊山小n 132.1 GB 132.21 G 1521 :惚舊印卯UNIEAPUDOUNKUNIEAPplaFarni dasource orade jdbc.diiver OracleCHi'/er Dracie-'心里口后心小打:廁92.1眼13
41、2216:1521:惆啟*ySY5JMUDOUNKSY5=FMarndatasauicBoracle jcbcdiver OraclBCiii1 Oracle品?Mm迪鄴爾132.16艮 132.21 G:1521:tslappt占尼WFWEBLOGIC| GYS_V/F nun/low dasourm cciKle pbc.diivw Or&clBOiivw Oracle營0鄧"SYSJMWEBLOGIC|SYS_FMafoim datftsauice Bofade idbc diiver 0 11adeOiimr SOracleofSYS_FMs_ UNIEAPWEBIL
42、QGI 匚uniNpapl&lQirn dM或bhf IHorade:jdbudii憶口rodeOiimr ,| OraclesUNIEAPaREFORrWEBLQGIC_ |fsIporFBreport_dalatsoJce B aaele jdbc diiyer OracItCHiv«r nOracle-sREPORTD_ NEUDOCWEBLaGlE:NEUDOC B«ud(M_dat3saulGe IBprade jdbc.diiveT OracleCi liver SOraclesME UDE-_ elSrpWEBLOGIC|ELtftPIBB* deAa
43、swrceSoracJe jctic dii'/er OraclECiii1 SlracieEUdRP二5 .修改OP.properties文件如下配置XTM_PROVIDER=UDOLINK XTM_PROVIDEWEBLOGICMANAGED_ENVIRONMENT=falSe MANAGED_ENVIRONMENT=true6 .重啟WebLogic,并在連接池監(jiān)控界面中確認,是否連接池已經(jīng)成功啟用. Web應(yīng)用配置會話超時秒):3600會話在失效之前保持非活勖狀態(tài)的時間量秒年Servlet重新闌我檢查1秒):-1根據(jù)實際需要調(diào)整,但不要太 長,且此參數(shù)的優(yōu)先皴低于
44、 veb. xml中的配置:sees ion-config)<sessiorL-timeout>30</ses si on-timeout ></session-config> 上述配置的單位為分WebLcgic&等待檢查SeMet是否已被修改并需要重新加載的時間單線程Servlet簸沖池大小:50用于單線程模式Servlet的緩沖池大小。已啟用索弓I目錄指定當未找到合適的索引文件時目標是否應(yīng)自動生成HTML目錄列表“已自用會話監(jiān)視指定是否為會話監(jiān)視創(chuàng)建運行時M日日日小生產(chǎn)環(huán)境下一般這兩個參數(shù) 都是-1,即不檢查。如果確 實需要不重啟服務(wù)的情況下 替
45、換可以修改第二個參數(shù),比如300J5P編譯命令:用于編譯生成的JSP Ser.他t的J3.a編譯器的完整路徑JSP頁檢查(秒):WebLogic導(dǎo)日向檢查JSP文件是否已更改并需要重新編譯的時間間隔i秒"3.3. 數(shù)據(jù)庫技術(shù)數(shù)據(jù)庫是業(yè)務(wù)數(shù)據(jù)最終存儲的位置,最為重要,也最為復(fù)雜。我們目前主要使用的是Oracle10g, 因此下面的所有講解都遵循這個前提進行。數(shù)據(jù)庫的相關(guān)問題不是簡單的一些文字能夠描述清楚的,這里只簡要的介紹一下最常遇到的一些問題。重點強調(diào)的是,由于數(shù)據(jù)庫中存儲著業(yè)務(wù)數(shù)據(jù),因此對它的操作要格外的小心,不熟悉的操作不要隨便執(zhí)行,一些重要的調(diào)整盡量申請專業(yè)的系統(tǒng)工程師或DBA
46、fe執(zhí)行,注意多備份。3.3.3. 常見問題. 內(nèi)存配置問題描述:此問題常見于一些初期業(yè)務(wù)壓力不大的系統(tǒng)中,這些系統(tǒng)由于初期業(yè)務(wù)壓力不大或缺少規(guī)劃,通常在 32位windows上運行著32位的oracle ,而且數(shù)據(jù)文件多直接放在本機硬盤上,好一點的有可能本機做個了RAID5。 這種數(shù)據(jù)庫通常不是專業(yè)的系統(tǒng)工程師或 DB砥裝的,因此很可能什么參數(shù)都沒有調(diào)整過,且硬件配置往往也較差,隨著數(shù)據(jù)量的增加,不可避免的越來越慢。解決方案:1. 重新規(guī)劃數(shù)據(jù)庫部署方案,并全面進行調(diào)整。2. 調(diào)整數(shù)據(jù)庫內(nèi)存參數(shù),看是否有所改觀。. 連接數(shù)配置問題描述:此問題常見于一些初期業(yè)務(wù)壓力
47、不大的系統(tǒng)中,這些系統(tǒng)由于初期業(yè)務(wù)壓力不大或缺少規(guī)劃,通常在 32位windows上運行著32位的oracle ,而且數(shù)據(jù)文件多直接放在本機硬盤上,好一點的有可能本機做個了RAID5。 這種數(shù)據(jù)庫通常不是專業(yè)的系統(tǒng)工程師或 DB砥裝的,因此很可能什么參數(shù)都沒有調(diào)整過, 由于默認的連接數(shù)較少,因此可能會有不夠用的情況。解決方案:1. 重新規(guī)劃數(shù)據(jù)庫部署方案,并全面進行調(diào)整。2. 調(diào)整連接數(shù)配置。. SQL語句問題問題描述:數(shù)據(jù)庫操作執(zhí)行的緩慢,除了和系統(tǒng)軟硬件配置有關(guān)外,還和SQL語句本身有著重大的關(guān)系,且絕大多數(shù)的情況都是后一種。解決方案:SQL語句的優(yōu)化本身也是一門學問,涉及方
48、方面面,這里不可能進行全面的講解,只進行基本的介紹,起到入門的作用即可。一般的,SQL語句的執(zhí)行過程可以分為分析階段和執(zhí)行階段,在分析階段數(shù)據(jù)庫對SQL語句進行語法分析、語義分析等操作并最終獲取SQL語句的執(zhí)行計劃,在執(zhí)行階段數(shù)據(jù)庫按照選定的執(zhí)行計劃執(zhí)行SQL語句并最終獲得數(shù)據(jù)。在這個過程中對性能影響較大的有兩塊:SQL語句的分析過程及根據(jù)分析獲得的執(zhí)行計劃。1. SQL語句的分析過程Oracle對SQL語句進行分析的過程中區(qū)分大小寫,即不同的SQL語句,即使僅僅是大小寫不同,Oracle都會認為這是完全不同的SQL語句。對于新的SQL 語句, Oracle 會進行一系列的復(fù)雜分析,這個分析過
49、程比較消耗資源,而分 析完成后,Oracle 會對這條語句進行散列,然后將語句放置到高速緩存中。如果之后申請執(zhí)行的 SQL語句能夠在高速緩存中查找到,則上述的分析過程不被執(zhí)行,Oracle 直接選用已經(jīng)分析過的版本直接執(zhí)行操作,反之, 則 Oracle需要重新執(zhí)行上述過程。這里面最常遇到的問題就是變量的綁定,Oracle 會認為下面的語句是完全不同的SQL語句。Select * from table1 where name = aaaSelect * from table1 where name = bbb這是十分糟糕的情況,正確的做法是使用變量綁定,由 Oracle在SQL®句的
50、執(zhí)行階段進行變量的綁定來完成。Select * from table1 where name = ?2執(zhí)行計劃Oracle最終執(zhí)行SQL語句是按照執(zhí)行計劃來進行的,因此執(zhí)行計劃的好壞就 十分關(guān)鍵。那么優(yōu)化 SQL語句的根本其實就是改變語句的執(zhí)行計劃。執(zhí)行計 劃受很多方面影響,下面列舉一些,并找?guī)讉€最常見的進行說明。數(shù)據(jù)庫的版本越高的數(shù)據(jù)庫版本在相同的情況下做出的執(zhí)行計劃就越好,所以在可能的 條件下,升級數(shù)據(jù)庫的版本是個好的主意。初始化參數(shù)如最重要的優(yōu)化器模式參數(shù),optimizer_mode ,此參數(shù)決定了Oracle 將使用何種優(yōu)化器進行執(zhí)行計劃編排。Oracle的優(yōu)化器分為兩種:基于規(guī)則的
51、優(yōu)化器(RBO和基于成本的優(yōu)化器(CBO) 。基于規(guī)則的優(yōu)化器嚴格按照優(yōu)先級的次序制定執(zhí)行計劃,而基于成本的優(yōu)化器則根據(jù)收集到的相關(guān)統(tǒng)計信息制定執(zhí)行計劃。Oracle10g中默認的optimizer_mode值為ALL_ROWS®用基于成本的優(yōu)化器。需要注意的是優(yōu)化器評估出的成本cost 是一個相對的值,即只有在環(huán)境完全相同的情況下,這個值才能夠相互比較,一般情況下,此值越小,代表SQL語句執(zhí)行的越快。在不同的環(huán)境下這個值完全不能互相比較。在有些極特殊的情況下,在相同的環(huán)境中有可能cost 小的執(zhí)行計劃反而比cost 大的執(zhí)行計劃更慢。因此改變SQL語句的執(zhí)行計劃后一定要進行實際的執(zhí)
52、行測試,不要想當然。數(shù)據(jù)庫的統(tǒng)計信息數(shù)據(jù)庫的統(tǒng)計信息是使用基于成本的優(yōu)化器的基礎(chǔ),統(tǒng)計信息不準確,則優(yōu)化器得出的執(zhí)行計劃就會不準。增加或減少索引這個應(yīng)該很好理解,不做過多說明。改變索引的類型和順序這個應(yīng)該很好理解,不做過多說明。改寫 SQL這個應(yīng)該很好理解,不做過多說明。使用 HintsHints 就是提示,作用是告訴Oracle 使用什么樣的方式制定執(zhí)行計劃,Hints 有很多總類,這里不做過多說明,僅舉個例子說明作用。使用規(guī)則優(yōu)化器制定執(zhí)行計劃Select /*+ rule */ * from table1 where name = aaa使用成本優(yōu)化器制定執(zhí)行計劃Select /*+ a
53、ll_rows */ * from table1 where name = aaa3.3.4. 常用工具. Oracle Enterprise ManagerOracle 的企業(yè)管理器,自然是最權(quán)威,最全面的工具了。與性能有關(guān)的工具主要在其性能選項卡中。這其中包括了很多具體的工具,常用的如:ADDMASH艮告,頂級活動,頂級使用者,快照(AWR SQL優(yōu)化指導(dǎo)。. Oracle Enterprise Manager Consol eOracle的企業(yè)管理器客戶端,可以脫離 Web形式的企業(yè)管理器單獨使用,這個工具需要單獨的安裝。常用的是會話查看功能,可以看到當前有多
54、少會話,會話的狀態(tài),會話的操作系統(tǒng)進程標識符,會話正在執(zhí)行的SQL及其執(zhí)行計劃等等的功能. PLSQL Developer 的 Sessions 功能此工具能方便的找到當前連接的會話,并查看會話執(zhí)行的SQL語句iQl T Mrd i 1'UMnlM v p mJHMn 1£T» kvhcBn *r. 動態(tài)性能試圖 v$process , v$sessionv$process視圖反映了當前系統(tǒng) Oracle的進程信息,v$session視圖反映了數(shù)據(jù)庫的會話信息,二者常被用來聯(lián)合起來做一些信息的查詢。連接方法為:select * from v$process p,v$session s where p.ADDR=s.PADDR;. 動態(tài)性能試圖v$sqlarea此視圖持續(xù)跟蹤所有shared pool中的SQL語句的信息,通過這些信息可以 幫助我們尋找問題SQL如:下面的語句是尋找基于成本優(yōu)化方式中成本最高的 SQL語句及執(zhí)行次數(shù)等相關(guān)信息,其中 OPTIMIZER_COST即為優(yōu)化
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024撫順礦務(wù)局職工工學院輔導(dǎo)員招聘筆試真題
- 2025年微機勵磁屏項目合作計劃書
- 體育賽事數(shù)據(jù)分析師筆試試題及答案
- 2025年高純四氧化三錳項目建議書
- 2025年核電站用電纜項目建議書
- 2024年涼山州會理市定向考聘社區(qū)工作者真題
- 消費贈與合同
- 小學科學教科版五年級上冊全冊易錯知識點專項練習(判斷選擇分單元編排附參考答案和點撥)
- 頂崗實習報告范文3000字
- 享稅收優(yōu)惠-8個備案管理稅務(wù)風險需防范
- 10kV高壓配電室交接性試驗報告
- 鄭榮祿博士談保險熱點話題
- 多維閱讀第4級Animal Fathers 動物爸爸 課件
- 藥品不良反應(yīng)報告事件表
- TJA圍手術(shù)期血液管理課件
- DB31T 405-2021 集中空調(diào)通風系統(tǒng)衛(wèi)生管理規(guī)范
- 新教材波音手冊查詢(高級)課件
- DB4404-T 29-2022 球墨鑄鐵排水井蓋管理規(guī)范
- 151 醫(yī)用一次性防護服質(zhì)量檢驗原始記錄(客戶需要根據(jù)實際修改)
- 現(xiàn)代漢語常用字表(拼音版本)
- 紅星水庫除險加固工程初步設(shè)計報告
評論
0/150
提交評論