




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、BS系統疑難問題分析與調優 常見方法介紹應用系統部署實施之后可能會出現一些部分功能模塊不可用、系統運行緩慢、系統崩潰等莫名奇妙的問題,這些問題現象多種多樣,導致問題的原因也并不相同,解決起來更是千差萬別。分析與調優的方法并不能一概而論,但也并不是毫無規律可言,掌握一些要領、思路、常用的排查手段及常見的問題解決辦法有助于縮短問題解決的周期。本文將以專題介紹及案例分析的方式對這些思路和方法做一些總結,希望能夠幫助各個項目有效的排查并解決這些問題。疑難問題分析與系統調優是件十分復雜的事情,生產環境的復雜多樣決定了不可能有人能夠有百分之百的把握解決所有的問題,無論是從經驗、技術還是邏輯的角度來說都是這
2、樣。因此這項工作對人員的要求就較高,為了能夠幫助不太熟悉這項工作的人員盡快進入角色,以往的經驗總結就顯得非常重要。因此本文永遠都不會完結,僅做一個拋磚引玉,希望在以后的工作中,能夠得到不斷的完善。1. 要領敏銳的頭腦,縝密的思維,細致的工作,廣泛的聯想能夠幫助更好的適應這項工作。敏銳的頭腦:強調能夠快速的到記憶或文檔中找到匹配或近似匹配當前問題的問題。這一點尤為重要,如果在記憶中或文檔中找不到痕跡,則此問題就是 個全新的問題,而一個全新的問題對于任何人來說都是一件棘手的事情。縝密的思維:在當前人類認知的世界中,任何事情都是有因才有果,也就是所謂的符合邏輯。任何奇怪的現象,包括違背常識的事情,都
3、有著其內在的原因。因此即便是遇到嚴重違背常理的事情也不要慌亂,此時就需要用以往的一些經驗及其他渠道,如網絡、他人等查找可能的原因,然后逐一的按照邏輯進行排查。細致的工作:這能幫助你搜集到用以定位問題的關鍵點,用以支持判斷邏輯的證據,用以觸發聯想的觸點,也能保證已有的環境不會被破壞或改變。廣泛的聯想:基于已有的事情廣泛的聯想、尋找相關的事情,常常非常有助于事情的解決,也有助于將單個的、破碎的事情片段聯系在一起形成一系列環環相扣的鏈條。2. 總體思路處理問題的總體思路如下:根據問題匯報、粗略的問題描述或一些已有的手段清晰、明確的定義問題;基于問題定義進行分析,尋找可能引發問題的原因;在某種環境下模
4、擬、重現問題進一步確定問題原因;對于分析出的問題進行修改;對問題修改的結果進行驗證。問題定義:這個步驟十分關鍵,因為問題的匯報和粗略的問題描述往往并不準確,有時甚至是錯誤的。因此不能過分的相信這些匯報和描述,因為不準確的問題描述會將你引上歧路,大大延緩問題的解決時間。所以除了了解已有的問題描述外,還需要做一些相關的試驗用以確定已有描述的準確性。問題分析:基于問題定義進行分析,尋找可能引發問題的原因。這個步驟找到的有可能不是根本原因,而且由于事情的復雜性,有可能會造成誤判。這種情況不可能避免,因此下最終的結論時要慎重。在一些復雜的問題中可能需要與其他幾個步驟一起進行迭代,才能判定問題的成因。問題
5、重現:重現問題有助于進一步確定問題的成因,也有助于將來問題解決后的回歸測試。是在生產環境還是測試環境下重現問題,有很多因素,但其中最重要的一個因素是這個過程是否會不可逆的改變現有的生產環境。問題修改:對分析出的問題進行修改。問題驗證:基于修改的結果進行回歸測試,驗證問題是否解決。一般來講在條件允許的情況下,盡可能的先在測試環境下進行驗證,確認無誤后再在生產環境下進行驗證。切忌過分的相信自己的能力。3. 專題3.1. 客戶端技術在B/S系統中,傳統web客戶端組件及其各種變種,主要承擔了界面展現及請求發送與接收的工作。傳統的web客戶端組件包括:HTML各種Script , XML CSS。變種
6、主要指隨著 Web2.0而新興起的一些技術:Flash ,基于腳本的RIA,各種 類型的自定義控件。這些組件或技術負責前臺頁面的展現,而與后臺的通信一般通過HTTPW議來進行。3.1.1. 常見問題. 腳本性能問題描述:腳本性能問題主要在基于腳本的RIA 解決方案中體現比較明顯,這種解決方案為了達到良好的交互效果,大量的使用了腳本語言對頁面進行渲染,由于腳本的復雜性,及瀏覽器的對腳本優化還不到位,經常會有一些性能問題。解決方案:1. 在滿足兼容性的前提條件下,盡量升級客戶端到較新版本的瀏覽器。新版本的瀏覽器一般內部會做優化,加快HTMU口腳本的解析速度。2. 換用較新版本的RIA
7、解決方案或較快的其他RIA解決方案。新版本的同類型RIA解決方案一般在性能方面都會有所提升。如果最新版本的依然無法滿足渲染速度的要求,只能考慮更換其他RIA解決方案。3. 更換客戶機硬件配置。RIA 技術的理念是充分的利用客戶機的資源進行渲染,在維持服務器壓力不變、甚至降低服務器壓力的情況下,給用戶帶來更好的交互體驗。這里的一個前提是客戶機的硬件配置不錯,因此如果客戶機硬件配置較低,則需要考慮升級客戶機硬件或者放棄使用RIA技術。. 同步調用問題描述:在瀏覽器進行同步調用時,直到所有的同步調用都完成,頁面才會展現出來。如果其中的某個請求的響應速度較慢,則會拖累整個頁面進入一種 空
8、白、假死的狀態,用戶體驗十分不好。解決方案:1. 請求的響應較慢一般是由于中間件或數據庫處理的慢而造成的,所以根本的解決辦法是調整中間件、數據庫或者算法,后臺處理的速度上來了,前臺的頁面出來的也自然就快了。2. 在某些情況下,調整中間件、數據庫或者算法實施成本都太高,為了快速的改善用戶體驗,一個重要的方案就是異步請求,將較慢的請求改成異步形式的,就可以避免一條臭魚壞了一鍋湯的結果了。. 帶寬占用問題描述:有些應用,特別是采用了RIA 技術的應用,經常會向中間件請求大量的資源,嚴重的占用了網絡帶寬資源,無形中同時對網絡和中間件資源都造成了巨大的浪費,加重了他們的負擔。解決方案:1.
9、 在客戶端緩存基本不變的靜態文件,減少文件的下載次數。2. 對腳本文件進行語法壓縮,減小腳本文件的大小。3. 對HTTR向應開啟GZIP壓縮,對于文本型的資源能夠有效的縮減傳輸的流 量。3.1.2. 常用工具. HttpWatchPro此工具可以將客戶端發出的Http 請求細節捕獲出來,并記錄每個請求的時間,使用這個工具可以清楚的定位究竟客戶機請求了些什么資源,以及哪些資源的請3.2. 中間件技術中間件即BS系統中的應用服務器,我們生產環境下最常用的就是WebLogic系列。中間件是 Web應用程序的容器,負責接收客戶端請求,進行業務邏輯處理, 并最終與數據庫交互完成整個過程。因
10、此其地位十分重要,有很多種類型的問題 發生在這個層面。3.2.1. 常見問題. 內存配置問題描述:中問件的控制臺經常出現OutOfMemory錯誤,則很有可能是因為部署實施時沒有修改JVM的默認內存配置參數,造成可用內存過少所致。解決方案:1 .通過簡單的修改JVM內存參數即可,但要注意,修改完后要進行驗證,確認參數是否起作用,不要想當然. 內存溢出問題描述:如果內存參數已經修改成功,而中間件的控制臺還是經常出現OutOfMemory昔誤,則很有可能是由于代碼編寫的不好,消耗內存過大所致。解決方案:1 .通過使用合適的JVM內存監控、分析工具,捕獲到發生內存溢出的程
11、序,進而修改代碼解決問題。. 內存泄露問題描述:如果中間件重啟后的一段時間沒有問題,但運行幾天或更長的時問后卻出現OutOfMemory錯誤,則很有可能是出現了內存泄露。內存泄露和內存溢出是有很大區別的。內存溢出通常是由于代碼寫的不好,程序運行消耗大量的內存,很有可能程序還沒有執行完成就發生了錯誤,即OutOfMemory錯誤。而內存泄露一般是程序執行已經完成,但是使用到的內存資源卻無法釋放,隨著程序的不斷運行,這部分不能釋放的內存資源越來越多,直至最后發生內存溢出錯誤。解決方案:1. 內存泄露程度和排查的難易的程度成反比,即內存泄露越嚴重排查起來越簡單,內存泄露越輕微排查起來越
12、困難。通過使用合適的JVM內存監控、分析工具,可以逐漸找到發生內存泄露的程序,進而修改代碼解決問題。. 線程配置問題描述:中間件是以線程的方式處理客戶端請求的,因此線程是否夠用并能有效的工作就決定了客戶端的每個請求能否順利完成。如果線程數配置過少,客戶端的請求就不能得到及時的響應,如果配置過大,又造成資源的浪費。解決方案:1 .通過修改中間件的線程相關配置可以逐漸找到適合生產系統的線程數量. 連接池配置問題描述:在業務應用程序中,不可避免的要進行數據庫相關的操作,為了保證數據庫連接的高效和穩定,在生產環境中一般都使用中間件自帶的連接池。數據庫連接消耗數據庫主機的資源
13、,所以連接池配置過大,造成資源的浪費,配解決方案:1 .通過修改中間件的連接池相關配置可以逐漸找到適合生產系統的連接池數量。. 問題程序問題描述:這里所謂的問題程序指在 JAVA程序代碼中使用循環次數很多,且循環體中又帶有大量操作的循環程序,這種程序是最常見的一種問題程序。這種程序大量占用中間件的資源,可能也會大量的占用數據庫資源,而且通常來講執解決方案:行速度較慢,一般都會造成比較壞的影響。一 一1 .通過監控工具找到這些問題程序,修改代碼解決問題。3.2.2. 常用工具. WebLogic 控制臺性能監控此工具可以方便的監控 WebLogic內存及線程資源的使用
14、情況。內存監控包括總量及當前已用量兩個值及當前已用量變化的曲線。通過內存總量可以驗證內存參數配置是否起作用。通過總量及當前已用量可以得出剩余的內存量,對這個參數進行一段時間的采集即可判斷出是否存在內存泄露。通過當前已用量的變化曲線可以用以預估系統是否存在消耗內存資源過大的程序,通常表現為一條很陡的曲線。通過這條曲線還可以發現所謂的問題程序,問題程序一般會表現為一條劇烈起伏的折線。線程監控包括空閑線程數和隊列長度值。如果空閑線程數經常很小,且隊列長度經常有較大的值,可能的一個原因就是線程配置的不太合適了。日志記錄翁規性能I安全鞋監視配置 協議控制JMS | JTA在此頁中,您可以監視有關此服.務
15、器的性能信息口空閑轉程數:15空閑的線程數量分配給此隊列的空閑繪程數。最早的特定請求TueAp1312 04 52CST201。等待時間最長的請求放入隊列的日期和時間O吞吐量隊列已經處理的請求教。沒管徜處理的需求隊列_3222 WebLogic執行線程監控此工具配合上面的工具一起使用,可以詳細的了解當前中間件上運行著哪些 線程。配合上面的工具可以對內存溢出、問題程序進行排查。. WebLogic 連接池監控此工具可以方便的監控 WebLogic連接池的使用情況。通過對連接池運行情況的監控,可以檢查連接池的最大最小連接數量配置的 是否合適。由于中間件集群的存在,連接到數據庫的總連接
16、數等于每個集群節點 的連接總數*集群節點的數量。而且由于生產環境下數據庫服務器的性能有高有 低,各個業務系統也不完全相同。因此不可能將所有連接池的最小連接數都配置 為一個非常大的值。一般的做法是將最小連接數配置為一個相對保守的值,而最 大連接數配置為一個能接受的較大的值。然后通過連接池監控中的總連接數來判 斷最小值配置的是否合適。總連接數是說從某個連接池建立起來總共建立的連接 數量,如果這個值很大,說明此連接池經常的擴大、收縮,一般來講這就是最小 連接配置的較小所導致的。這時可以增大最小值的設置,重新監控使用情況. Jprofiler此工具實時的跟蹤中間件的運行情況,將內存使用情
17、況,CPUS用情況等詳細信息顯示出來,可以用于排查內存溢出、內存泄露、問題程序等問題。但需要注 意的是這個工具對中間件的性能有一定的影響,所以如果在生產環境下使用,會 拖慢中間件運行的速度,有一定風險。一般推薦用在測試環境、或壓力較小的生 產環境下。f i i A 口 1aL Ihi4iihQ. MemoryAnalyzer專門用來分析JVM內存轉儲文件的分析工具。內存轉儲的意思是將JVM內存中 的東西存儲成為一個專門的文件,然后通過特定的工具就可以對這個文件進行分 析。所以首先要將JVM的內存轉儲出來才行,這需要用到JVM本身的一個功能,這 個功能受JVM版本的影響,只有較高的
18、版本的 JVM才能提供這個功能。具體要求 的最低版本號可以查閱MemoryAnalyzer工具的幫助文檔。在滿足要求的JVM版本配置上啟動參數:-XX:+HeapDumpOnOutOfMemoryErrqr 即激活了內存轉儲功能。這個參數的含義是當JVM發生內存溢出即OutOfMemory時,JVM會把內存中的東西存成一個文件,名為 java_pid 1464.hprof ,其中紅色 的部分為Java進程的進程標識符PID。文件存放的位置一般是中間件啟動命令所在的目錄。進行內存轉儲時后臺會有所提示。這個工具對生產環境基本沒有什么 影響,推薦生產環境下調試問題采用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*在邏輯子應用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和文件夾任招創建一個新文件夾將這個文件夾發布到 冒eb共享此文件夾appli cations_j rnystrysr_)rmfiltii«rt國 boot, propwti «=Con£i g. xml文件夾文件夾文件夾TEOFERTIES 文件JIML交檔泄置公domains我的交檔 共享文檔 我的電腦 網上鄰居回園酉國國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這樣通過中間件運行時自動的內存溢出,當然也可以手工制造一個內存溢出,就可以獲得內存的轉儲文件。然后就可以通過MemoryAn
28、alyzer工具對其進行分析, 找到內存溢出或泄漏的原因了«3Ml M . Problem Suspect 13.2.3. 常用配置. WebLogic 啟動內存分配Windows修改 startWebLogic.cmd 添加如下文字:set MEM_ARGS=-Xms1024M -Xmx1024M -XX:PermSize=256M -XX:MaxPermSize=256M其他操作系統修改 startWebLogic.sh 添加如下文字:MEM_ARGS="-Xms1024M -Xmx1024M -XX:PermSize=256M -XX:MaxPermSi
29、ze=256M "其中:-Xms為堆內存最小大小-Xmx為堆內存最大大小-XX:PermSize 為永久保存區最小大小-XX:MaxPermSize為永久保存區最大大小. WebLogic 參數配置1 . 域JTA超時秒數:600(默認值30,為可選調節項,在使用 WebLogic連接池時,如果應用中存在執行過于緩慢的事務操作,可以更改這個值,以便功能可以完成。但并沒有根本的解決問題,修改程序,加快業務操作的執行速度才是根本 )2 . 域日志最小文件大小:1024限制保留的日志文件數:勾選要保留的日志文件:303 .服務器日志Stdout嚴重程度閾值:Error最小文件
30、大小:1024限制保留的日志文件數:勾選要保留的日志文件:30關閉Http日志4 .線程池配置線程計數:100 (為CPl量*25, 一般不用超過100). WebLogic 連接池配置1 .拷貝工程lib下面的包ojdbc14.jar 或者合適的ojdbc14.jar至U WebLogic 的 Serve門ib 下面,類似于 D:beaweblogic81serverlib 下,覆蓋同 名文件(原始文件記得備份)。2 .啟動WebLogic進入控制臺,點擊【連接緩沖池】,點擊【配置新的JDBC連 接緩沖池】。選擇驅動程序,一般為 Oracle Thin XA 或Oracle T
31、hin 。他 們的區別是Thin XA驅動支持分布式事務,而 Thin驅動不支持。具體選 擇什么根據需求確定。+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連接緩沖池選擇數據庫下別步箱將有助干創建和部茶連樓綾沖池。如果埋意,可以稍后更改配置信息和部翦選項。為新的連接綠沖池選擇效據庫突型和斐動程序。數據庫類型 Oraclev數據厚嬖動程序*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注意并非要安裝列表中所有的驅動程序。使用之前,忽可能需要安裝選定的驅動程序。如果未列出您的驅動程序,請選擇其他'。Weblogic Server JDDC 己認證定義在接屬性玷 口;1521救據中服務器上用于連接到效據后的端口O數據庫JI1戶名 elarp物理敕據庫選接中使用的數據庫帳戶用戶名。密碼:確認定科:|物理效據庫連接中使用的皴據庫帳戶后碼。“»ec<iuer.tr<ur»MA1K4£I«I«mydomain> JDBC 連接緩沖池ELARP連接到:my
34、domain ) 登錄名:weblogic | 退出常規配置在此頁中,您可以定義此JD日C連接緩沖池的連接配置。初始容量二1創建此JDBC連接輾沖池時要創建的物理數據庫連接俞至咻嚶喊).根據需要配置 這三個參數最大容量:叵2:此DBC連接繞沖池可以包含晌最大物理數據庫連接數前予控正感;容量增長:1此JDBC連接緩沖池容量擴展的增量0 - 32位正整數:。A Swtement 塞存類型:LRU v用千堆護存儲在翅存中的prepared statement的筑法總使用新statement時.LRU將替換最近另Stsitement舞存大小10存儲在緩存中的prepared statem&nt
35、和callable弓emenl數目這可能會提高服努器性能* :0詞試保明的連長指定'.'eULogic號前用卜是否在將連接提供給客戶端之前測試該連侯電池顏在下面指定測試表看稱。:',在高軌選項中,根據需要勾選這三項*選中后會對數據庫性能造成一定的影咱,主要用 回泅次創建峋隹接,在數據庫和中間件之間網絡連接不穩定的環境中匕不選則可靠性就降低了.指定置SLogic Stiver餐否在創建連播后且耨該連接潴加到箜沖池中用用連接列表之前時詩連接進行測試“(必須指定測試表名稱。:0湖試澤放的旌桂指定同曲Logic Seci是否在將隹接返回到讀JDBC隹樓緩沖?蚊前測試停建接。遨須
36、指定測祓表名稱。面;支持本地事務若使用Oracle Thin XA驅動需要勾選這項,使用 Oracle Thin驅動無此選項.指定如果沒有全局事務,用于創建物理數據庫連接的XA驅動程序是否支持SQL口3 .點擊【數據源】,點擊【配置新的JDBC數據源】定義新的JDBC數據源。可以隨意起,但最好有意義名稱ELARP此JDBC數據源的名稱。需要對應dr m_sys_dat as our c e表中記 錄的dbux 1字段JNDI 名稱 ELARP將此JDBC數據源綁定到的JHDI路徑。E允許全局事務指定此數據源是否將參與狽有全局(XA;4纖。一般在創建數據源時應選中1 為非XA變動程序仿真的階段提
37、交指定JDBC次源是否將仿真全局事務中的參與。當關聯的連接緩沖池使用關聯新建JDBC數據源和連接緩沖池。緩沖池名稱ELARP m關聯緩沖池與此數據源相關聯的JDBC連接緩沖池。選定的連接緩沖池用于向客戶端應用程序提移選擇要部署此JDBC數據源的服務器和群集。大多數情況下,應該將數據力 接緩沖池的部署目標。獨立服務器H mvserver部署數據源4 .確認UNIEAP用戶中drm_sys_datasource表中是否有 WebLogic數據源配置及配置是否正確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昨工二中藪據說明 工口由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,并在連接池監控界面中確認,是否連接池已經成功啟用. Web應用配置會話超時秒):3600會話在失效之前保持非活勖狀態的時間量秒年Servlet重新闌我檢查1秒):-1根據實際需要調整,但不要太 長,且此參數的優先皴低于
44、 veb. xml中的配置:sees ion-config)<sessiorL-timeout>30</ses si on-timeout ></session-config> 上述配置的單位為分WebLcgic&等待檢查SeMet是否已被修改并需要重新加載的時間單線程Servlet簸沖池大小:50用于單線程模式Servlet的緩沖池大小。已啟用索弓I目錄指定當未找到合適的索引文件時目標是否應自動生成HTML目錄列表“已自用會話監視指定是否為會話監視創建運行時M日日日小生產環境下一般這兩個參數 都是-1,即不檢查。如果確 實需要不重啟服務的情況下 替
45、換可以修改第二個參數,比如300J5P編譯命令:用于編譯生成的JSP Ser.他t的J3.a編譯器的完整路徑JSP頁檢查(秒):WebLogic導日向檢查JSP文件是否已更改并需要重新編譯的時間間隔i秒"3.3. 數據庫技術數據庫是業務數據最終存儲的位置,最為重要,也最為復雜。我們目前主要使用的是Oracle10g, 因此下面的所有講解都遵循這個前提進行。數據庫的相關問題不是簡單的一些文字能夠描述清楚的,這里只簡要的介紹一下最常遇到的一些問題。重點強調的是,由于數據庫中存儲著業務數據,因此對它的操作要格外的小心,不熟悉的操作不要隨便執行,一些重要的調整盡量申請專業的系統工程師或DBA
46、fe執行,注意多備份。3.3.3. 常見問題. 內存配置問題描述:此問題常見于一些初期業務壓力不大的系統中,這些系統由于初期業務壓力不大或缺少規劃,通常在 32位windows上運行著32位的oracle ,而且數據文件多直接放在本機硬盤上,好一點的有可能本機做個了RAID5。 這種數據庫通常不是專業的系統工程師或 DB砥裝的,因此很可能什么參數都沒有調整過,且硬件配置往往也較差,隨著數據量的增加,不可避免的越來越慢。解決方案:1. 重新規劃數據庫部署方案,并全面進行調整。2. 調整數據庫內存參數,看是否有所改觀。. 連接數配置問題描述:此問題常見于一些初期業務壓力
47、不大的系統中,這些系統由于初期業務壓力不大或缺少規劃,通常在 32位windows上運行著32位的oracle ,而且數據文件多直接放在本機硬盤上,好一點的有可能本機做個了RAID5。 這種數據庫通常不是專業的系統工程師或 DB砥裝的,因此很可能什么參數都沒有調整過, 由于默認的連接數較少,因此可能會有不夠用的情況。解決方案:1. 重新規劃數據庫部署方案,并全面進行調整。2. 調整連接數配置。. SQL語句問題問題描述:數據庫操作執行的緩慢,除了和系統軟硬件配置有關外,還和SQL語句本身有著重大的關系,且絕大多數的情況都是后一種。解決方案:SQL語句的優化本身也是一門學問,涉及方
48、方面面,這里不可能進行全面的講解,只進行基本的介紹,起到入門的作用即可。一般的,SQL語句的執行過程可以分為分析階段和執行階段,在分析階段數據庫對SQL語句進行語法分析、語義分析等操作并最終獲取SQL語句的執行計劃,在執行階段數據庫按照選定的執行計劃執行SQL語句并最終獲得數據。在這個過程中對性能影響較大的有兩塊:SQL語句的分析過程及根據分析獲得的執行計劃。1. SQL語句的分析過程Oracle對SQL語句進行分析的過程中區分大小寫,即不同的SQL語句,即使僅僅是大小寫不同,Oracle都會認為這是完全不同的SQL語句。對于新的SQL 語句, Oracle 會進行一系列的復雜分析,這個分析過
49、程比較消耗資源,而分 析完成后,Oracle 會對這條語句進行散列,然后將語句放置到高速緩存中。如果之后申請執行的 SQL語句能夠在高速緩存中查找到,則上述的分析過程不被執行,Oracle 直接選用已經分析過的版本直接執行操作,反之, 則 Oracle需要重新執行上述過程。這里面最常遇到的問題就是變量的綁定,Oracle 會認為下面的語句是完全不同的SQL語句。Select * from table1 where name = aaaSelect * from table1 where name = bbb這是十分糟糕的情況,正確的做法是使用變量綁定,由 Oracle在SQL®句的
50、執行階段進行變量的綁定來完成。Select * from table1 where name = ?2執行計劃Oracle最終執行SQL語句是按照執行計劃來進行的,因此執行計劃的好壞就 十分關鍵。那么優化 SQL語句的根本其實就是改變語句的執行計劃。執行計 劃受很多方面影響,下面列舉一些,并找幾個最常見的進行說明。數據庫的版本越高的數據庫版本在相同的情況下做出的執行計劃就越好,所以在可能的 條件下,升級數據庫的版本是個好的主意。初始化參數如最重要的優化器模式參數,optimizer_mode ,此參數決定了Oracle 將使用何種優化器進行執行計劃編排。Oracle的優化器分為兩種:基于規則的
51、優化器(RBO和基于成本的優化器(CBO) 。基于規則的優化器嚴格按照優先級的次序制定執行計劃,而基于成本的優化器則根據收集到的相關統計信息制定執行計劃。Oracle10g中默認的optimizer_mode值為ALL_ROWS®用基于成本的優化器。需要注意的是優化器評估出的成本cost 是一個相對的值,即只有在環境完全相同的情況下,這個值才能夠相互比較,一般情況下,此值越小,代表SQL語句執行的越快。在不同的環境下這個值完全不能互相比較。在有些極特殊的情況下,在相同的環境中有可能cost 小的執行計劃反而比cost 大的執行計劃更慢。因此改變SQL語句的執行計劃后一定要進行實際的執
52、行測試,不要想當然。數據庫的統計信息數據庫的統計信息是使用基于成本的優化器的基礎,統計信息不準確,則優化器得出的執行計劃就會不準。增加或減少索引這個應該很好理解,不做過多說明。改變索引的類型和順序這個應該很好理解,不做過多說明。改寫 SQL這個應該很好理解,不做過多說明。使用 HintsHints 就是提示,作用是告訴Oracle 使用什么樣的方式制定執行計劃,Hints 有很多總類,這里不做過多說明,僅舉個例子說明作用。使用規則優化器制定執行計劃Select /*+ rule */ * from table1 where name = aaa使用成本優化器制定執行計劃Select /*+ a
53、ll_rows */ * from table1 where name = aaa3.3.4. 常用工具. Oracle Enterprise ManagerOracle 的企業管理器,自然是最權威,最全面的工具了。與性能有關的工具主要在其性能選項卡中。這其中包括了很多具體的工具,常用的如:ADDMASH艮告,頂級活動,頂級使用者,快照(AWR SQL優化指導。. Oracle Enterprise Manager Consol eOracle的企業管理器客戶端,可以脫離 Web形式的企業管理器單獨使用,這個工具需要單獨的安裝。常用的是會話查看功能,可以看到當前有多
54、少會話,會話的狀態,會話的操作系統進程標識符,會話正在執行的SQL及其執行計劃等等的功能. PLSQL Developer 的 Sessions 功能此工具能方便的找到當前連接的會話,并查看會話執行的SQL語句iQl T Mrd i 1'UMnlM v p mJHMn 1£T» kvhcBn *r. 動態性能試圖 v$process , v$sessionv$process視圖反映了當前系統 Oracle的進程信息,v$session視圖反映了數據庫的會話信息,二者常被用來聯合起來做一些信息的查詢。連接方法為:select * from v$process p,v$session s where p.ADDR=s.PADDR;. 動態性能試圖v$sqlarea此視圖持續跟蹤所有shared pool中的SQL語句的信息,通過這些信息可以 幫助我們尋找問題SQL如:下面的語句是尋找基于成本優化方式中成本最高的 SQL語句及執行次數等相關信息,其中 OPTIMIZER_COST即為優化
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 食品安全與營養:食品加工技術的新視角分析
- 項目管理人才培養方案及實施路徑
- 高維光子量子位的量子密鑰共享技術研究-洞察闡釋
- 涌泉穴與足部反射區對應關系研究-洞察闡釋
- 超高分辨率X射線源設計-洞察闡釋
- 對齊線在智能家居中的協同應用研究-洞察闡釋
- 礦產經紀行業供應鏈管理與政策法規創新-洞察闡釋
- 無損檢測技術在關鍵設備監控中的實踐與應用
- 【某板料裁切機的結構設計計算案例2300字】
- 【企業文化建設分析的理論基礎2800字】
- 2025年班組長綜合管理技能競賽理論考試題庫500題(含答案)
- 蘇州市公司員工2025年度勞動合同模板:勞動合同簽訂與員工考核評估
- 致遠OA系統培訓
- 2024-2025學年四川省成都市錦江區八年級上學期期末數學試卷(含答案)
- 2025中級工程機械維修工技能鑒定精練考試指導題庫及答案(濃縮300題)
- 工程合作居間服務合同范本
- 大學英語四級高頻詞匯1500+六級高頻詞匯1500
- 人教版小升初數學考試卷(含答案解析)
- 《基礎護理學(第七版)》考前強化模擬練習試題庫500題(含答案)
- 中學教科研課題管理制度
- 6.2平行四邊形的判定第1課時(同步課件)-2023-2024學年八年級數學下冊同步課堂(北師大版)
評論
0/150
提交評論