性能工程系列之一性能測(cè)試篇課件_第1頁(yè)
性能工程系列之一性能測(cè)試篇課件_第2頁(yè)
性能工程系列之一性能測(cè)試篇課件_第3頁(yè)
性能工程系列之一性能測(cè)試篇課件_第4頁(yè)
性能工程系列之一性能測(cè)試篇課件_第5頁(yè)
已閱讀5頁(yè),還剩97頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

性能工程系列之二性能調(diào)優(yōu)介紹PQA測(cè)試部2010年5月性能工程系列之二性能調(diào)優(yōu)介紹PQA測(cè)試部1議題Oracle調(diào)優(yōu)Aix系統(tǒng)調(diào)優(yōu)WebLogic調(diào)優(yōu)議題Oracle調(diào)優(yōu)2調(diào)優(yōu)被分成不同的階段:應(yīng)用設(shè)計(jì)和開發(fā)數(shù)據(jù)庫(kù)配置布署應(yīng)用故障解決和調(diào)優(yōu)調(diào)優(yōu)被分成不同的階段:應(yīng)用設(shè)計(jì)和開發(fā)3調(diào)優(yōu)基本原則如果某個(gè)部分不是瓶頸,就不要嘗試去優(yōu)化優(yōu)化是為系統(tǒng)提供足夠的資源并且充分的使用資源,而不是無(wú)節(jié)制的擴(kuò)充資源優(yōu)化有時(shí)候也意味著合理的分配或者劃分任務(wù)優(yōu)化可能會(huì)過(guò)頭,注意協(xié)調(diào)整個(gè)系統(tǒng)的性能調(diào)優(yōu)基本原則如果某個(gè)部分不是瓶頸,就不要嘗試去優(yōu)化4OracleTuningOracleTuning5優(yōu)化的基本方法設(shè)立合理的性能優(yōu)化目標(biāo)測(cè)量并記錄當(dāng)前性能selectsysteminformation確定當(dāng)前oracle的性能瓶頸(等待什么)把等待事件記錄確定當(dāng)前的os瓶頸優(yōu)化所需的部分(應(yīng)用程序、數(shù)據(jù)庫(kù)、i/o、爭(zhēng)用、os、存儲(chǔ)、網(wǎng)絡(luò)等)跟蹤并實(shí)施更改過(guò)程測(cè)量并記錄當(dāng)前性能重復(fù)3-7,直到滿足優(yōu)化目標(biāo)優(yōu)化的基本方法設(shè)立合理的性能優(yōu)化目標(biāo)6Oracle9i內(nèi)存建議視圖及參數(shù)V$DB_CACHE_ADVICEV$SHARED_POOL_ADVICEV$PGA_TARGET_ADVICEdb_block_sizedb_cache_sizedb_file_multiblock_read_countProcessessga_max_sizeOracle9i內(nèi)存建議視圖及參數(shù)V$DB_CACHE_AD7等待事件兩類等待事件:空閑等待:oracle正在等待某種動(dòng)作的發(fā)生clientmessage(客戶機(jī)消息);NULLevent(NULL事件);pipeget(管道取操作);SQL*NETmessagefromclient(來(lái)自客戶端的消息);rdbmsipcmessage(數(shù)據(jù)庫(kù)icp消息)等非空閑等待事件:數(shù)據(jù)庫(kù)發(fā)生了競(jìng)爭(zhēng)bufferbusywaits(數(shù)據(jù)高速緩存忙等待);dbfilescatteredread(數(shù)據(jù)文件離散讀取);dbfilesequentialread(數(shù)據(jù)文件順序讀);enqueue(隊(duì)列)、freebufferwaits(空閑緩沖區(qū)等待);latchfree(拴空閑);logfileparallelwrite(日志文件并行寫入);logfilesync(日志文件同步)等等待事件兩類等待事件:8常見非空閑等待事件bufferbusywaits(數(shù)據(jù)高速緩存忙等待,多個(gè)進(jìn)程在對(duì)一個(gè)塊做操作)dbfileparallelwrite(數(shù)據(jù)文件并行寫)dbfilescatteredread(數(shù)據(jù)文件離散讀取)dbfilesequentialread(數(shù)據(jù)文件順序讀)dbfilesinglewrite(數(shù)據(jù)文件單次寫)directpathread(直接路徑讀取)directpathwrite(直接路徑寫出)enqueue(隊(duì)列)freebufferinspected(空閑數(shù)據(jù)緩沖區(qū)探測(cè))freebufferwaits(空閑緩沖區(qū)等待)latchfree(鎖存器空閑)librarycacheloadlock(庫(kù)高速緩存裝載鎖)常見非空閑等待事件bufferbusywaits(數(shù)據(jù)高9常見非空閑等待事件librarycachelock(庫(kù)高速緩存鎖)librarycachepin(庫(kù)高速緩存執(zhí)行鎖)logbufferspace(日志緩沖區(qū)空間分配)logfileparallelwrite(日志文件并行寫入)logfilesinglewrite(日志文件單次寫),提交頻繁會(huì)出現(xiàn)logfileswitch(archivingneeded)歸檔沒(méi)完成,造成logwrite不能覆蓋,logfileswitch(checkpointincomplete)logfilesync(日志文件同步)timerinsksawat(歸檔過(guò)慢)Transaction(事務(wù)阻塞)undosegmentextension(回滾段動(dòng)態(tài)擴(kuò)展,回滾段不停的動(dòng)態(tài)擴(kuò)展,事物大,事物長(zhǎng)時(shí)間不結(jié)束)常見非空閑等待事件librarycachelock(庫(kù)高10檢查I/O統(tǒng)計(jì)的診斷SQL>selectd.tablespace_nameTABLESPACE,d.file_name,f.phyrds,f.phyblkrd,2>f.readtim,f.phywrts,f.phyblkwrt,f.writetim3>fromv$filestatf,dba_data_filesd4>wheref.file#=d.file_idorderbytablespace_name,file_name;TABLESPACEFILE_NAMEPHYRDSPHYBLKRDREADTIMPHYWRTSPHYBLKWRTWRITETIM

USERS/u03/users01.dbf65012416752384205645648860SAMPLE/u02/sample01.dbf880880SYSTEM/u01/system01.dbf806153819851161161721TEMP/u04/temp01.dbf1686664836756750……..1)Users有65012次讀、564次寫,而sample為8次讀、8次寫,說(shuō)明數(shù)據(jù)分布不均衡把users中的表movie到sample上2)索引訪問(wèn)才8塊,而數(shù)據(jù)訪問(wèn)為416752塊,說(shuō)明索引和表放在同一個(gè)表空間上而沒(méi)有放在索引表空間上3)通過(guò)users可以看出,65012次讀確讀到了416752個(gè)塊,說(shuō)明單次讀了多塊,大概一個(gè)io讀了6塊,說(shuō)明走的是全表掃描,沒(méi)有有效利用索引,索引一個(gè)io盡讀一個(gè)塊,因此索引有問(wèn)題,可能沒(méi)有使用索引、可能就要求全表掃描,system為806塊,可能用戶表放在這里了,或者發(fā)生解析需要用到數(shù)據(jù)字典信息。檢查I/O統(tǒng)計(jì)的診斷SQL>selectd.tables11索引--數(shù)據(jù)庫(kù)加速利器邏輯上單列/組合索引唯一/非唯一索引物理上

分區(qū)或非分區(qū)B樹正?;蚍聪蜴I位圖索引--數(shù)據(jù)庫(kù)加速利器邏輯上12創(chuàng)建索引:提示平衡查詢與DML操作的需求.將索引放在單獨(dú)的表空間.對(duì)于大的索引考慮使用NOLOGGING.索引的INITRANS應(yīng)該比相應(yīng)表的INITRANS設(shè)置的高一些.插入操作導(dǎo)致在適當(dāng)?shù)膲K中插入索引項(xiàng)刪除行只導(dǎo)致邏輯刪除索引項(xiàng),刪除的行所占用的空間難以用于新項(xiàng),直到刪除塊中的所有項(xiàng),所以對(duì)于更新和刪除比較多的索引需要定期重建,保持索引的性能.創(chuàng)建索引:提示平衡查詢與DML操作的需求.13索引為何失效?對(duì)索引字段進(jìn)行計(jì)算索引字段與數(shù)據(jù)類型不符合不等于符號(hào)對(duì)索引字段使用了函數(shù)(to_date,to_char)查詢數(shù)據(jù)選取范圍過(guò)大復(fù)合索引的前導(dǎo)列未被使用字符可以轉(zhuǎn)換成數(shù)字優(yōu)先級(jí)別高的使用索引索引為何失效?對(duì)索引字段進(jìn)行計(jì)算14重建索引SQL>ANALYZEINDEXacct_no_idxVALIDATESTRUCTURE;Indexanalyzed.表的名稱為indx_stats;SQL>SELECT(DEL_LF_ROWS_LEN/LF_ROWS_LEN)*1002ASwastage3FROMindex_stats;pct_used越低建議重建WASTAGE

24如果Wastage>20%就應(yīng)該考慮重建!SQL>ALTERINDEXacct_no_idxREBUILD;Indexaltered.重建索引SQL>ANALYZEINDEXacct_no15索引可能降低查詢性能若查詢數(shù)據(jù)比例占表數(shù)據(jù)百分比過(guò)大則降低性能影響百分比大小的因素IO能力buffercache大小數(shù)據(jù)有序度(dba_indexes.CLUSTERING_FACTOR)表數(shù)據(jù)行大小與block大小索引可能降低查詢性能若查詢數(shù)據(jù)比例占表數(shù)據(jù)百分比過(guò)大則降低性16優(yōu)化模式在Oracle9i,兩種優(yōu)化模式可以被選擇:基于規(guī)則的Rule-based:使用一個(gè)分級(jí)系統(tǒng)語(yǔ)法(Syntax)驅(qū)動(dòng)和字典(dictionary)驅(qū)動(dòng)的Oracle從早期版本提供RBO優(yōu)化器,至Oracle10g該優(yōu)化器不再被支持基于代價(jià)的Cost-based:選擇最低代價(jià)的路徑統(tǒng)計(jì)(Statistics)驅(qū)動(dòng),靜態(tài)的統(tǒng)計(jì)信息從Oracle7(1992)>Oracle10g主要支持的優(yōu)化器優(yōu)化模式在Oracle9i,兩種優(yōu)化模式可以被選擇:17設(shè)置優(yōu)化模式在實(shí)例級(jí):optimizer_mode={choose|rule|first_rows|first_rows_n|all_rows}在會(huì)話級(jí):altersessionsetoptimizer_mode={choose|rule|first_rows|first_rows_n|all_rows}在語(yǔ)句級(jí):使用提示(hints)設(shè)置優(yōu)化模式在實(shí)例級(jí):18SoftparseandHardparseSoftparse軟解析,通過(guò)hash計(jì)算查找sql在共享池中存在于是重用執(zhí)行計(jì)劃的過(guò)程Hardparse硬解析,通過(guò)hash計(jì)算查找發(fā)現(xiàn)sql在共享池中不存在,于是重新產(chǎn)生執(zhí)行計(jì)劃的過(guò)程

軟解析和硬解析對(duì)資源的消耗差異很大SoftparseandHardparseSoft19SQL優(yōu)化基本原則減少重分析合理使用索引使用合理的表連接方式減少不必要的排序降低邏輯讀SQL優(yōu)化基本原則減少重分析20數(shù)據(jù)庫(kù)共享池為什么要使用共享池

SQL解析代價(jià)比較高 有限周期內(nèi)系統(tǒng)一般運(yùn)行大量重復(fù)代碼 系統(tǒng)的sql數(shù)量總是有限的 合理的使用共享池能夠降低重分析的次數(shù)如何減少重分析的次數(shù) 配置足夠大的共享池 采取統(tǒng)一的語(yǔ)句書寫規(guī)則 使用綁定變量 在不能使用綁定變量的基礎(chǔ)上使語(yǔ)句實(shí)現(xiàn)代碼共享數(shù)據(jù)庫(kù)共享池為什么要使用共享池21不使用綁定的影響使用更多的共享池來(lái)緩存sql和執(zhí)行計(jì)劃使用更多的cpu資源將產(chǎn)生更多的數(shù)據(jù)庫(kù)內(nèi)部鎖導(dǎo)致共享池管理代價(jià)的增加不使用綁定的影響使用更多的共享池來(lái)緩存sql和執(zhí)行計(jì)劃22數(shù)據(jù)庫(kù)對(duì)綁定的補(bǔ)救措施Cursor_sharing=force/exact/similar我們?yōu)槭裁催€要強(qiáng)調(diào)在程序中綁定cursor_sharing存在bugcursor_sharing影響sql執(zhí)行計(jì)劃cursor_sharing消耗額外內(nèi)存和cpu在應(yīng)用中綁定的代價(jià)低,維護(hù)的代價(jià)很高由數(shù)據(jù)庫(kù)設(shè)置Cursor_sharing風(fēng)險(xiǎn)很高數(shù)據(jù)庫(kù)對(duì)綁定的補(bǔ)救措施Cursor_sharing=fo23連接方式合并連接(sortmergejoin):是集合的合并操作,一般是在沒(méi)有有效的索引時(shí)使用循環(huán)嵌套連接(nestedloopjoin):是一種循環(huán)的行操作,對(duì)于事務(wù)型處理是首選。在OLTP系統(tǒng)中常見,使用有效的索引來(lái)執(zhí)行操作。散列連接(hashjoin):使用連接表的全表掃描完成。Oracle執(zhí)行每個(gè)表的全表掃描,并根據(jù)內(nèi)存情況,將每個(gè)表分成所需的多散列分區(qū),然后通過(guò)另一個(gè)表的相應(yīng)分區(qū)試探這個(gè)散列表。散列連接適合大表的連接。注意設(shè)置合適的參數(shù):hash_area_size和hash_mutilblock_io_count連接方式合并連接(sortmergejoin):24RBO下Sql語(yǔ)句的優(yōu)化規(guī)則在RBO模式下,Sql語(yǔ)句的執(zhí)行遵循著規(guī)則級(jí)別的優(yōu)先級(jí):SinglerowbyROWIDSinglerowbyclusterjoinSinglerowbyhashclusterkeywithuniquekeySinglerowbyuniqueindexClusterjoinHashclusterkeyIndexedclusterkeyCompositekeySingle-columnnon-uniqueindexBoundedrangesearchonindexedcolumnsUnboundedrangesearchonindexedcolumnsSort-mergejoinMAXorMINofindexedcolumnORDERBYonindexedcolumnsFulltable-scanRBO下Sql語(yǔ)句的優(yōu)化規(guī)則在RBO模式下,Sql語(yǔ)句的執(zhí)行25寫SQL語(yǔ)句的一些提示從I/O的觀點(diǎn)來(lái)看,使用索引沒(méi)有意義時(shí)建議使用全表掃描如果查詢中包含了子查詢,那么注意首先優(yōu)化子查詢注意關(guān)聯(lián)子查詢,盡量減少關(guān)聯(lián)子查詢的使用,因?yàn)樗拇鷥r(jià)很高,并且非常消耗CPU在Sql語(yǔ)句中使用notexists代替notin用表連接替換EXISTS使用帶有前導(dǎo)字段的like來(lái)替換substr函數(shù)考慮使用unionall代替多個(gè)or連接操作如果經(jīng)常執(zhí)行主細(xì)表的聯(lián)合查詢,建立外鍵索引考慮使用非唯一索引支持唯一性約束條件寫SQL語(yǔ)句的一些提示從I/O的觀點(diǎn)來(lái)看,使用索引沒(méi)有意義時(shí)26寫SQL語(yǔ)句的一些提示主動(dòng)的確定使用循環(huán)嵌套、合并連接、散列連接,盡可能測(cè)試使用一種代價(jià)較小的連接方式。如果需要在pl/sql程序中使用動(dòng)態(tài)sql,建議使用executeimmediate對(duì)于非常大的表,考慮使用表和索引的分區(qū)如果需要在創(chuàng)建索引的時(shí)候減少所需時(shí)間,可以在會(huì)話集設(shè)置比較大的sort_area_size考慮更多的使用decode函數(shù),而不是在pl/sql中作判斷一定要周期性的收集信息,及時(shí)發(fā)現(xiàn)系統(tǒng)中的潛在問(wèn)題寫SQL語(yǔ)句的一些提示主動(dòng)的確定使用循環(huán)嵌套、合并連接、散列27寫SQL語(yǔ)句的一些提示選擇最有效率的驅(qū)動(dòng)表很多情況下ORACLE并不能為我們的SQL語(yǔ)句選擇最有效的驅(qū)動(dòng)表,在我們自己確定了合適的驅(qū)動(dòng)表之后,可以使用HINT:ORDERED,LEADING來(lái)指定合適的驅(qū)動(dòng)表WHERE子句中的連接條件書寫順序那些可以過(guò)濾掉最大數(shù)量記錄的條件必須寫在WHERE子句的末尾減少對(duì)表的訪問(wèn)次數(shù)(減少邏輯讀)避免索引列的類型隱式轉(zhuǎn)換造成的索引無(wú)效寫SQL語(yǔ)句的一些提示選擇最有效率的驅(qū)動(dòng)表28AIXTuningAIXTuning29AIX性能分析與故障診斷掌握基本的性能調(diào)試工具掌握基本的故障診斷工具AIX性能分析與故障診斷掌握基本的性能調(diào)試工具30一般性能分析過(guò)程CPU瓶頸??jī)?nèi)存瓶頸?I/O瓶頸?網(wǎng)絡(luò)瓶頸?vmstatpslspssvmonvmstatsarnicepsiostatlslvfilemonfileplaceMoretestnetstatnfsstatnfsonoifconfignetpmonYYYYNNNN一般性能分析過(guò)程CPU瓶頸??jī)?nèi)存瓶頸?I/O瓶頸?網(wǎng)絡(luò)瓶頸?31性能分析工具 iostat vmstat sar topas svmon性能分析工具 iostat vmstat sar t32iostatCPU的使用狀態(tài)-%user,表示平均用戶占用時(shí)間-%sys,表示系統(tǒng)花費(fèi)CPU時(shí)間-%idle,表示CPU空閑時(shí)間-%iowait,表示CPU等待I/O所花費(fèi)時(shí)間iostatCPU的使用狀態(tài)33iostat分析:如果%idle數(shù)值都很高而且%iowait數(shù)值也很高,大于25,這個(gè)說(shuō)明系統(tǒng)存在I/O或則硬盤瓶頸內(nèi)存不夠而引起頻繁的swap空間的數(shù)據(jù)交換,導(dǎo)致數(shù)據(jù)存取存在交換空間的I/O瓶頸硬盤上面數(shù)據(jù)不合理的分布數(shù)據(jù)的fragment不合理高數(shù)值的%iowait有可能下面幾個(gè)原因:iostat分析:內(nèi)存不夠而引起頻繁的swap空間的數(shù)據(jù)交換34iostat硬盤使用狀態(tài)-%tm_act表示某個(gè)硬盤處于active狀態(tài)的百分比-tps表示每秒某個(gè)硬盤有多少個(gè)數(shù)據(jù)傳輸次數(shù)-Kb_readKb_wrtn分別顯示從開機(jī)到運(yùn)行iostat這個(gè)命令這段時(shí)間內(nèi)對(duì)硬盤的read和write的總數(shù)據(jù)量,單位kb

iostat硬盤使用狀態(tài)35vmstat CPU空閑時(shí)間百分比=id%+wa% 算CPU平均一分鐘空閑多少時(shí)間 (99+92+95+86+7+96)÷100÷5×60=56.16(秒)vmstat CPU空閑時(shí)間百分比=id%+wa36vmstatkthr參數(shù)

-r 等待CPU運(yùn)行的隊(duì)列個(gè)數(shù) 若r數(shù)值偏大,表明CPU太忙

-b 等待I/O操作的阻塞隊(duì)列個(gè)數(shù) 若b數(shù)值偏大,表明系統(tǒng)I/O出現(xiàn)瓶頸vmstatkthr參數(shù)37vmstatCPU瓶頸如果sy和us參數(shù)的數(shù)值加起來(lái)接近100,表示系統(tǒng)CPU使用率太高,同時(shí)也會(huì)看到r的數(shù)值也大于1內(nèi)存瓶頸

內(nèi)存不足,換頁(yè)將變得頻繁,這時(shí)pi(in)和po(out)參數(shù)將不是0,同時(shí)avm和fre數(shù)值的比值懸殊很大,fre數(shù)值很小.vmstatCPU瓶頸38Sar查看系統(tǒng)活動(dòng)狀態(tài)信息查看系統(tǒng)所有活動(dòng)狀態(tài)信息Sar查看系統(tǒng)活動(dòng)狀態(tài)信息查看系統(tǒng)所有活動(dòng)狀態(tài)信息39Topas哪個(gè)進(jìn)程使用CPU最多Topas哪個(gè)進(jìn)程使用CPU最多40svmon

svmon命令用來(lái)查看系統(tǒng)當(dāng)前的內(nèi)存的具體使用 通過(guò)不同的選項(xiàng)參數(shù),可以查看某個(gè)命令、進(jìn)程、用戶等使用內(nèi)存的具體狀態(tài)svmon svmon命令用來(lái)查看系統(tǒng)當(dāng)前的內(nèi)存的具體使用41errpt每個(gè)管理員例行查錯(cuò)命令列出錯(cuò)誤日志的詳細(xì)信息#errpt–a顯示具體某個(gè)錯(cuò)誤項(xiàng)的詳細(xì)信息#errpt-a-jE18E984Ferrpt每個(gè)管理員例行查錯(cuò)命令列出錯(cuò)誤日志的詳細(xì)信息42WeblogicTuningWeblogicTuning43WEBLOGIC的性能調(diào)整對(duì)于weblogic本身的堵塞,需要用threaddump來(lái)進(jìn)行分析WEBLOGIC的性能調(diào)整對(duì)于weblogic本身的堵塞,需44如何觀察weblogic性能Weblogic的java進(jìn)程的cpu占用率一般不超過(guò)60%JVM的gc回收要正常,有負(fù)載時(shí)平均3-4秒回收一次即可,如過(guò)于頻繁,會(huì)形成小鋸齒,導(dǎo)致CPUboundWeblogic的executethread數(shù)目要足夠,監(jiān)控是否出現(xiàn)超出此線程數(shù)目的情況隊(duì)列中空閑線程數(shù)。隊(duì)列中等待時(shí)間最長(zhǎng)的請(qǐng)求。隊(duì)列長(zhǎng)度,根據(jù)隊(duì)列中等待請(qǐng)求數(shù)來(lái)衡量的。JVM堆還剩余的內(nèi)存量。如何觀察weblogic性能Weblogic的java進(jìn)程的45Weblogic掛起的原因Hang即掛起,在weblogic中表現(xiàn)為運(yùn)行weblogic的java進(jìn)程還存在weblogic不響應(yīng)請(qǐng)求weblogic請(qǐng)求處理很慢Weblogic掛起的原因系統(tǒng)內(nèi)存不足系統(tǒng)CPU繁忙系統(tǒng)文件描述符不夠線程死鎖JVM有GC方面的bug其他原因(如Oracle)Weblogic掛起的原因Hang即掛起,在weblogic46如何調(diào)整weblogic的性能合理調(diào)整JVM的內(nèi)存占用,一般單個(gè)JVM不要超過(guò)1GB為耗時(shí)較長(zhǎng)的servlet或jsp創(chuàng)建單獨(dú)的隊(duì)列,而不是全部servlet或jsp使用同一個(gè)defult隊(duì)列,如為清單查詢,費(fèi)用查詢等耗時(shí)較長(zhǎng)的servlet創(chuàng)建單獨(dú)的隊(duì)列為提高吞吐量,將JVM的內(nèi)存最小值和最大值設(shè)成相等啟用nativeIO,默認(rèn)為啟用(NativeIOEnabled=true)增加默認(rèn)的defalut執(zhí)行隊(duì)列大小,我們的系統(tǒng)一般配成70左右,初始即為70不動(dòng)態(tài)增加Servlet或jsp盡量少的在程序中組織數(shù)據(jù),否則會(huì)極大地消耗JVM的內(nèi)存和CPU,導(dǎo)致堵塞,如需要一個(gè)1萬(wàn)條數(shù)據(jù)的報(bào)表,這1萬(wàn)條數(shù)據(jù)在jsp中進(jìn)行循環(huán)格式化會(huì)消耗大量的cpu當(dāng)weblogic的性能監(jiān)控界面顯示有堵塞時(shí),使用threaddump方法生成JVM的內(nèi)部日志,并進(jìn)行分析Threaddump結(jié)果中重點(diǎn)關(guān)注STATE:MW狀態(tài)的servlet或jsp如何調(diào)整weblogic的性能合理調(diào)整JVM的內(nèi)存占用,一般47Weblogic阻塞的判斷和處理當(dāng)前臺(tái)無(wú)法登陸等問(wèn)題出現(xiàn)時(shí)一般是由于weblogic阻塞察看weblogic的性能監(jiān)控界面,發(fā)現(xiàn)等待的隊(duì)列數(shù)一直在增加則表示weblogic產(chǎn)生堵塞JVM的gc回收過(guò)于頻繁,如小鋸齒形狀或成一條近水平的直線,通常表示weblogic的整體性能很低下Threaddump是分析weblogic堵塞的最常用方法,通常每隔5-10秒執(zhí)行一次,連續(xù)執(zhí)行3-5次即可用使用javaweblogic.Admint3://server:portPING來(lái)ping該服務(wù)器。如果服務(wù)器能夠響應(yīng)此ping,則可能是應(yīng)用程序正在掛起而不是服務(wù)器自身C:\>javaweblogic.Admin-urlt3://xxiong02:7001-usernameweblogic-passwordweblogicPING11Sending1pingof1byte.RTT=~21milliseconds,or~21milliseconds/packetWeblogic阻塞的判斷和處理當(dāng)前臺(tái)無(wú)法登陸等問(wèn)題出現(xiàn)時(shí)一48Weblogic阻塞的判斷和處理如果執(zhí)行隊(duì)列有空閑線程,則可能是沒(méi)有分配足夠的SocketReader線程。>SocketReader線程接受來(lái)自ListenThread隊(duì)列的傳入請(qǐng)求,并將該請(qǐng)求放入ExecuteThread隊(duì)列中。>如果ThreadDump中沒(méi)有SocketReader線程,則在某個(gè)地方存在導(dǎo)致SocketReader線程消失的錯(cuò)誤。應(yīng)當(dāng)始終保持至少有三個(gè)SocketReader線程。一個(gè)SocketReader線程一般用于輪詢功能,另外兩個(gè)用于處理請(qǐng)求。>缺省情況下,WebLogicServer實(shí)例在啟動(dòng)時(shí)創(chuàng)建三個(gè)SocketReader線程。如果一個(gè)Clustersystem在高峰期使用的SocketReader線程超過(guò)三個(gè),則增加SocketReader線程的數(shù)量。>ThreadPoolPercentSocketReaders屬性設(shè)定要用于從javaSocket中讀取消息的執(zhí)行線程的最大百分比。此屬性的最佳值是針對(duì)應(yīng)用程序設(shè)定的。缺省值為33,有效范圍是1到99Weblogic阻塞的判斷和處理如果執(zhí)行隊(duì)列有空閑線程,則可49Weblogic阻塞的判斷和處理在系統(tǒng)運(yùn)行過(guò)程中出現(xiàn)weblogichang的情況,通常我們要首先檢查操作系統(tǒng)是否出現(xiàn)內(nèi)存和cpubound確認(rèn)tuxedo端有無(wú)堵塞,如tuxedo有堵塞,首先確認(rèn)是否數(shù)據(jù)庫(kù)端導(dǎo)致此堵塞數(shù)據(jù)庫(kù)端導(dǎo)致的tuxedo堵塞常見有鎖的問(wèn)題,執(zhí)行效率低下的問(wèn)題等如tuxedo端無(wú)堵塞,對(duì)java進(jìn)程執(zhí)行kill-3生成threaddump進(jìn)行分析Weblogic阻塞的判斷和處理在系統(tǒng)運(yùn)行過(guò)程中出現(xiàn)webl50謝謝!謝謝!51性能工程系列之二性能調(diào)優(yōu)介紹PQA測(cè)試部2010年5月性能工程系列之二性能調(diào)優(yōu)介紹PQA測(cè)試部52議題Oracle調(diào)優(yōu)Aix系統(tǒng)調(diào)優(yōu)WebLogic調(diào)優(yōu)議題Oracle調(diào)優(yōu)53調(diào)優(yōu)被分成不同的階段:應(yīng)用設(shè)計(jì)和開發(fā)數(shù)據(jù)庫(kù)配置布署應(yīng)用故障解決和調(diào)優(yōu)調(diào)優(yōu)被分成不同的階段:應(yīng)用設(shè)計(jì)和開發(fā)54調(diào)優(yōu)基本原則如果某個(gè)部分不是瓶頸,就不要嘗試去優(yōu)化優(yōu)化是為系統(tǒng)提供足夠的資源并且充分的使用資源,而不是無(wú)節(jié)制的擴(kuò)充資源優(yōu)化有時(shí)候也意味著合理的分配或者劃分任務(wù)優(yōu)化可能會(huì)過(guò)頭,注意協(xié)調(diào)整個(gè)系統(tǒng)的性能調(diào)優(yōu)基本原則如果某個(gè)部分不是瓶頸,就不要嘗試去優(yōu)化55OracleTuningOracleTuning56優(yōu)化的基本方法設(shè)立合理的性能優(yōu)化目標(biāo)測(cè)量并記錄當(dāng)前性能selectsysteminformation確定當(dāng)前oracle的性能瓶頸(等待什么)把等待事件記錄確定當(dāng)前的os瓶頸優(yōu)化所需的部分(應(yīng)用程序、數(shù)據(jù)庫(kù)、i/o、爭(zhēng)用、os、存儲(chǔ)、網(wǎng)絡(luò)等)跟蹤并實(shí)施更改過(guò)程測(cè)量并記錄當(dāng)前性能重復(fù)3-7,直到滿足優(yōu)化目標(biāo)優(yōu)化的基本方法設(shè)立合理的性能優(yōu)化目標(biāo)57Oracle9i內(nèi)存建議視圖及參數(shù)V$DB_CACHE_ADVICEV$SHARED_POOL_ADVICEV$PGA_TARGET_ADVICEdb_block_sizedb_cache_sizedb_file_multiblock_read_countProcessessga_max_sizeOracle9i內(nèi)存建議視圖及參數(shù)V$DB_CACHE_AD58等待事件兩類等待事件:空閑等待:oracle正在等待某種動(dòng)作的發(fā)生clientmessage(客戶機(jī)消息);NULLevent(NULL事件);pipeget(管道取操作);SQL*NETmessagefromclient(來(lái)自客戶端的消息);rdbmsipcmessage(數(shù)據(jù)庫(kù)icp消息)等非空閑等待事件:數(shù)據(jù)庫(kù)發(fā)生了競(jìng)爭(zhēng)bufferbusywaits(數(shù)據(jù)高速緩存忙等待);dbfilescatteredread(數(shù)據(jù)文件離散讀取);dbfilesequentialread(數(shù)據(jù)文件順序讀);enqueue(隊(duì)列)、freebufferwaits(空閑緩沖區(qū)等待);latchfree(拴空閑);logfileparallelwrite(日志文件并行寫入);logfilesync(日志文件同步)等等待事件兩類等待事件:59常見非空閑等待事件bufferbusywaits(數(shù)據(jù)高速緩存忙等待,多個(gè)進(jìn)程在對(duì)一個(gè)塊做操作)dbfileparallelwrite(數(shù)據(jù)文件并行寫)dbfilescatteredread(數(shù)據(jù)文件離散讀取)dbfilesequentialread(數(shù)據(jù)文件順序讀)dbfilesinglewrite(數(shù)據(jù)文件單次寫)directpathread(直接路徑讀取)directpathwrite(直接路徑寫出)enqueue(隊(duì)列)freebufferinspected(空閑數(shù)據(jù)緩沖區(qū)探測(cè))freebufferwaits(空閑緩沖區(qū)等待)latchfree(鎖存器空閑)librarycacheloadlock(庫(kù)高速緩存裝載鎖)常見非空閑等待事件bufferbusywaits(數(shù)據(jù)高60常見非空閑等待事件librarycachelock(庫(kù)高速緩存鎖)librarycachepin(庫(kù)高速緩存執(zhí)行鎖)logbufferspace(日志緩沖區(qū)空間分配)logfileparallelwrite(日志文件并行寫入)logfilesinglewrite(日志文件單次寫),提交頻繁會(huì)出現(xiàn)logfileswitch(archivingneeded)歸檔沒(méi)完成,造成logwrite不能覆蓋,logfileswitch(checkpointincomplete)logfilesync(日志文件同步)timerinsksawat(歸檔過(guò)慢)Transaction(事務(wù)阻塞)undosegmentextension(回滾段動(dòng)態(tài)擴(kuò)展,回滾段不停的動(dòng)態(tài)擴(kuò)展,事物大,事物長(zhǎng)時(shí)間不結(jié)束)常見非空閑等待事件librarycachelock(庫(kù)高61檢查I/O統(tǒng)計(jì)的診斷SQL>selectd.tablespace_nameTABLESPACE,d.file_name,f.phyrds,f.phyblkrd,2>f.readtim,f.phywrts,f.phyblkwrt,f.writetim3>fromv$filestatf,dba_data_filesd4>wheref.file#=d.file_idorderbytablespace_name,file_name;TABLESPACEFILE_NAMEPHYRDSPHYBLKRDREADTIMPHYWRTSPHYBLKWRTWRITETIM

USERS/u03/users01.dbf65012416752384205645648860SAMPLE/u02/sample01.dbf880880SYSTEM/u01/system01.dbf806153819851161161721TEMP/u04/temp01.dbf1686664836756750……..1)Users有65012次讀、564次寫,而sample為8次讀、8次寫,說(shuō)明數(shù)據(jù)分布不均衡把users中的表movie到sample上2)索引訪問(wèn)才8塊,而數(shù)據(jù)訪問(wèn)為416752塊,說(shuō)明索引和表放在同一個(gè)表空間上而沒(méi)有放在索引表空間上3)通過(guò)users可以看出,65012次讀確讀到了416752個(gè)塊,說(shuō)明單次讀了多塊,大概一個(gè)io讀了6塊,說(shuō)明走的是全表掃描,沒(méi)有有效利用索引,索引一個(gè)io盡讀一個(gè)塊,因此索引有問(wèn)題,可能沒(méi)有使用索引、可能就要求全表掃描,system為806塊,可能用戶表放在這里了,或者發(fā)生解析需要用到數(shù)據(jù)字典信息。檢查I/O統(tǒng)計(jì)的診斷SQL>selectd.tables62索引--數(shù)據(jù)庫(kù)加速利器邏輯上單列/組合索引唯一/非唯一索引物理上

分區(qū)或非分區(qū)B樹正?;蚍聪蜴I位圖索引--數(shù)據(jù)庫(kù)加速利器邏輯上63創(chuàng)建索引:提示平衡查詢與DML操作的需求.將索引放在單獨(dú)的表空間.對(duì)于大的索引考慮使用NOLOGGING.索引的INITRANS應(yīng)該比相應(yīng)表的INITRANS設(shè)置的高一些.插入操作導(dǎo)致在適當(dāng)?shù)膲K中插入索引項(xiàng)刪除行只導(dǎo)致邏輯刪除索引項(xiàng),刪除的行所占用的空間難以用于新項(xiàng),直到刪除塊中的所有項(xiàng),所以對(duì)于更新和刪除比較多的索引需要定期重建,保持索引的性能.創(chuàng)建索引:提示平衡查詢與DML操作的需求.64索引為何失效?對(duì)索引字段進(jìn)行計(jì)算索引字段與數(shù)據(jù)類型不符合不等于符號(hào)對(duì)索引字段使用了函數(shù)(to_date,to_char)查詢數(shù)據(jù)選取范圍過(guò)大復(fù)合索引的前導(dǎo)列未被使用字符可以轉(zhuǎn)換成數(shù)字優(yōu)先級(jí)別高的使用索引索引為何失效?對(duì)索引字段進(jìn)行計(jì)算65重建索引SQL>ANALYZEINDEXacct_no_idxVALIDATESTRUCTURE;Indexanalyzed.表的名稱為indx_stats;SQL>SELECT(DEL_LF_ROWS_LEN/LF_ROWS_LEN)*1002ASwastage3FROMindex_stats;pct_used越低建議重建WASTAGE

24如果Wastage>20%就應(yīng)該考慮重建!SQL>ALTERINDEXacct_no_idxREBUILD;Indexaltered.重建索引SQL>ANALYZEINDEXacct_no66索引可能降低查詢性能若查詢數(shù)據(jù)比例占表數(shù)據(jù)百分比過(guò)大則降低性能影響百分比大小的因素IO能力buffercache大小數(shù)據(jù)有序度(dba_indexes.CLUSTERING_FACTOR)表數(shù)據(jù)行大小與block大小索引可能降低查詢性能若查詢數(shù)據(jù)比例占表數(shù)據(jù)百分比過(guò)大則降低性67優(yōu)化模式在Oracle9i,兩種優(yōu)化模式可以被選擇:基于規(guī)則的Rule-based:使用一個(gè)分級(jí)系統(tǒng)語(yǔ)法(Syntax)驅(qū)動(dòng)和字典(dictionary)驅(qū)動(dòng)的Oracle從早期版本提供RBO優(yōu)化器,至Oracle10g該優(yōu)化器不再被支持基于代價(jià)的Cost-based:選擇最低代價(jià)的路徑統(tǒng)計(jì)(Statistics)驅(qū)動(dòng),靜態(tài)的統(tǒng)計(jì)信息從Oracle7(1992)>Oracle10g主要支持的優(yōu)化器優(yōu)化模式在Oracle9i,兩種優(yōu)化模式可以被選擇:68設(shè)置優(yōu)化模式在實(shí)例級(jí):optimizer_mode={choose|rule|first_rows|first_rows_n|all_rows}在會(huì)話級(jí):altersessionsetoptimizer_mode={choose|rule|first_rows|first_rows_n|all_rows}在語(yǔ)句級(jí):使用提示(hints)設(shè)置優(yōu)化模式在實(shí)例級(jí):69SoftparseandHardparseSoftparse軟解析,通過(guò)hash計(jì)算查找sql在共享池中存在于是重用執(zhí)行計(jì)劃的過(guò)程Hardparse硬解析,通過(guò)hash計(jì)算查找發(fā)現(xiàn)sql在共享池中不存在,于是重新產(chǎn)生執(zhí)行計(jì)劃的過(guò)程

軟解析和硬解析對(duì)資源的消耗差異很大SoftparseandHardparseSoft70SQL優(yōu)化基本原則減少重分析合理使用索引使用合理的表連接方式減少不必要的排序降低邏輯讀SQL優(yōu)化基本原則減少重分析71數(shù)據(jù)庫(kù)共享池為什么要使用共享池

SQL解析代價(jià)比較高 有限周期內(nèi)系統(tǒng)一般運(yùn)行大量重復(fù)代碼 系統(tǒng)的sql數(shù)量總是有限的 合理的使用共享池能夠降低重分析的次數(shù)如何減少重分析的次數(shù) 配置足夠大的共享池 采取統(tǒng)一的語(yǔ)句書寫規(guī)則 使用綁定變量 在不能使用綁定變量的基礎(chǔ)上使語(yǔ)句實(shí)現(xiàn)代碼共享數(shù)據(jù)庫(kù)共享池為什么要使用共享池72不使用綁定的影響使用更多的共享池來(lái)緩存sql和執(zhí)行計(jì)劃使用更多的cpu資源將產(chǎn)生更多的數(shù)據(jù)庫(kù)內(nèi)部鎖導(dǎo)致共享池管理代價(jià)的增加不使用綁定的影響使用更多的共享池來(lái)緩存sql和執(zhí)行計(jì)劃73數(shù)據(jù)庫(kù)對(duì)綁定的補(bǔ)救措施Cursor_sharing=force/exact/similar我們?yōu)槭裁催€要強(qiáng)調(diào)在程序中綁定cursor_sharing存在bugcursor_sharing影響sql執(zhí)行計(jì)劃cursor_sharing消耗額外內(nèi)存和cpu在應(yīng)用中綁定的代價(jià)低,維護(hù)的代價(jià)很高由數(shù)據(jù)庫(kù)設(shè)置Cursor_sharing風(fēng)險(xiǎn)很高數(shù)據(jù)庫(kù)對(duì)綁定的補(bǔ)救措施Cursor_sharing=fo74連接方式合并連接(sortmergejoin):是集合的合并操作,一般是在沒(méi)有有效的索引時(shí)使用循環(huán)嵌套連接(nestedloopjoin):是一種循環(huán)的行操作,對(duì)于事務(wù)型處理是首選。在OLTP系統(tǒng)中常見,使用有效的索引來(lái)執(zhí)行操作。散列連接(hashjoin):使用連接表的全表掃描完成。Oracle執(zhí)行每個(gè)表的全表掃描,并根據(jù)內(nèi)存情況,將每個(gè)表分成所需的多散列分區(qū),然后通過(guò)另一個(gè)表的相應(yīng)分區(qū)試探這個(gè)散列表。散列連接適合大表的連接。注意設(shè)置合適的參數(shù):hash_area_size和hash_mutilblock_io_count連接方式合并連接(sortmergejoin):75RBO下Sql語(yǔ)句的優(yōu)化規(guī)則在RBO模式下,Sql語(yǔ)句的執(zhí)行遵循著規(guī)則級(jí)別的優(yōu)先級(jí):SinglerowbyROWIDSinglerowbyclusterjoinSinglerowbyhashclusterkeywithuniquekeySinglerowbyuniqueindexClusterjoinHashclusterkeyIndexedclusterkeyCompositekeySingle-columnnon-uniqueindexBoundedrangesearchonindexedcolumnsUnboundedrangesearchonindexedcolumnsSort-mergejoinMAXorMINofindexedcolumnORDERBYonindexedcolumnsFulltable-scanRBO下Sql語(yǔ)句的優(yōu)化規(guī)則在RBO模式下,Sql語(yǔ)句的執(zhí)行76寫SQL語(yǔ)句的一些提示從I/O的觀點(diǎn)來(lái)看,使用索引沒(méi)有意義時(shí)建議使用全表掃描如果查詢中包含了子查詢,那么注意首先優(yōu)化子查詢注意關(guān)聯(lián)子查詢,盡量減少關(guān)聯(lián)子查詢的使用,因?yàn)樗拇鷥r(jià)很高,并且非常消耗CPU在Sql語(yǔ)句中使用notexists代替notin用表連接替換EXISTS使用帶有前導(dǎo)字段的like來(lái)替換substr函數(shù)考慮使用unionall代替多個(gè)or連接操作如果經(jīng)常執(zhí)行主細(xì)表的聯(lián)合查詢,建立外鍵索引考慮使用非唯一索引支持唯一性約束條件寫SQL語(yǔ)句的一些提示從I/O的觀點(diǎn)來(lái)看,使用索引沒(méi)有意義時(shí)77寫SQL語(yǔ)句的一些提示主動(dòng)的確定使用循環(huán)嵌套、合并連接、散列連接,盡可能測(cè)試使用一種代價(jià)較小的連接方式。如果需要在pl/sql程序中使用動(dòng)態(tài)sql,建議使用executeimmediate對(duì)于非常大的表,考慮使用表和索引的分區(qū)如果需要在創(chuàng)建索引的時(shí)候減少所需時(shí)間,可以在會(huì)話集設(shè)置比較大的sort_area_size考慮更多的使用decode函數(shù),而不是在pl/sql中作判斷一定要周期性的收集信息,及時(shí)發(fā)現(xiàn)系統(tǒng)中的潛在問(wèn)題寫SQL語(yǔ)句的一些提示主動(dòng)的確定使用循環(huán)嵌套、合并連接、散列78寫SQL語(yǔ)句的一些提示選擇最有效率的驅(qū)動(dòng)表很多情況下ORACLE并不能為我們的SQL語(yǔ)句選擇最有效的驅(qū)動(dòng)表,在我們自己確定了合適的驅(qū)動(dòng)表之后,可以使用HINT:ORDERED,LEADING來(lái)指定合適的驅(qū)動(dòng)表WHERE子句中的連接條件書寫順序那些可以過(guò)濾掉最大數(shù)量記錄的條件必須寫在WHERE子句的末尾減少對(duì)表的訪問(wèn)次數(shù)(減少邏輯讀)避免索引列的類型隱式轉(zhuǎn)換造成的索引無(wú)效寫SQL語(yǔ)句的一些提示選擇最有效率的驅(qū)動(dòng)表79AIXTuningAIXTuning80AIX性能分析與故障診斷掌握基本的性能調(diào)試工具掌握基本的故障診斷工具AIX性能分析與故障診斷掌握基本的性能調(diào)試工具81一般性能分析過(guò)程CPU瓶頸??jī)?nèi)存瓶頸?I/O瓶頸?網(wǎng)絡(luò)瓶頸?vmstatpslspssvmonvmstatsarnicepsiostatlslvfilemonfileplaceMoretestnetstatnfsstatnfsonoifconfignetpmonYYYYNNNN一般性能分析過(guò)程CPU瓶頸??jī)?nèi)存瓶頸?I/O瓶頸?網(wǎng)絡(luò)瓶頸?82性能分析工具 iostat vmstat sar topas svmon性能分析工具 iostat vmstat sar t83iostatCPU的使用狀態(tài)-%user,表示平均用戶占用時(shí)間-%sys,表示系統(tǒng)花費(fèi)CPU時(shí)間-%idle,表示CPU空閑時(shí)間-%iowait,表示CPU等待I/O所花費(fèi)時(shí)間iostatCPU的使用狀態(tài)84iostat分析:如果%idle數(shù)值都很高而且%iowait數(shù)值也很高,大于25,這個(gè)說(shuō)明系統(tǒng)存在I/O或則硬盤瓶頸內(nèi)存不夠而引起頻繁的swap空間的數(shù)據(jù)交換,導(dǎo)致數(shù)據(jù)存取存在交換空間的I/O瓶頸硬盤上面數(shù)據(jù)不合理的分布數(shù)據(jù)的fragment不合理高數(shù)值的%iowait有可能下面幾個(gè)原因:iostat分析:內(nèi)存不夠而引起頻繁的swap空間的數(shù)據(jù)交換85iostat硬盤使用狀態(tài)-%tm_act表示某個(gè)硬盤處于active狀態(tài)的百分比-tps表示每秒某個(gè)硬盤有多少個(gè)數(shù)據(jù)傳輸次數(shù)-Kb_readKb_wrtn分別顯示從開機(jī)到運(yùn)行iostat這個(gè)命令這段時(shí)間內(nèi)對(duì)硬盤的read和write的總數(shù)據(jù)量,單位kb

iostat硬盤使用狀態(tài)86vmstat CPU空閑時(shí)間百分比=id%+wa% 算CPU平均一分鐘空閑多少時(shí)間 (99+92+95+86+7+96)÷100÷5×60=56.16(秒)vmstat CPU空閑時(shí)間百分比=id%+wa87vmstatkthr參數(shù)

-r 等待CPU運(yùn)行的隊(duì)列個(gè)數(shù) 若r數(shù)值偏大,表明CPU太忙

-b 等待I/O操作的阻塞隊(duì)列個(gè)數(shù) 若b數(shù)值偏大,表明系統(tǒng)I/O出現(xiàn)瓶頸vmstatkthr參數(shù)88vmstatCPU瓶頸如果sy和us參數(shù)的數(shù)值加起來(lái)接近100,表示系統(tǒng)CPU使用率太高,同時(shí)也會(huì)看到r的數(shù)值也大于1內(nèi)存瓶頸

內(nèi)存不足,換頁(yè)將變得頻繁,這時(shí)pi(in)和po(out)參數(shù)將不是0,同時(shí)avm和fre數(shù)值的比值懸殊很大,fre數(shù)值很小.vmstatCPU瓶頸89Sar查看系統(tǒng)活動(dòng)狀態(tài)信息查看系統(tǒng)所有活動(dòng)狀態(tài)信息Sar查看系統(tǒng)活動(dòng)狀態(tài)信息查看系統(tǒng)所有活動(dòng)狀態(tài)信息90Topas哪個(gè)進(jìn)程使用CPU最多Topas哪個(gè)進(jìn)程使用CPU最多91svmon

svmon命令用來(lái)查看系統(tǒng)當(dāng)前的內(nèi)存的具體使用 通過(guò)不同的選項(xiàng)參數(shù),可以查看某個(gè)命令、進(jìn)程、用戶等使用內(nèi)存的具體狀態(tài)svmon svmon命令用來(lái)查看系統(tǒng)當(dāng)前的內(nèi)存的具體使用92errpt每個(gè)管理員例行查錯(cuò)命令列出錯(cuò)誤日志的詳細(xì)信息#errpt–a顯示具體某個(gè)錯(cuò)誤項(xiàng)的詳細(xì)信息#errpt-a-jE18E984Ferrpt每個(gè)管理員例行查錯(cuò)命令列出錯(cuò)誤日志的詳細(xì)信息93WeblogicTuningWeblogicTuning94WEBLOGIC的性能調(diào)整對(duì)于weblogic本身的堵塞,需要用threaddump來(lái)進(jìn)行分析WEBLOGIC的性能調(diào)整對(duì)于weblogic本身的堵塞,需95如何觀察weblogic性能Weblogic的java進(jìn)程的cpu占用率一般不超過(guò)60%JVM的gc回收要正常,有負(fù)載時(shí)平均3-4秒回收一次即可,如過(guò)于頻繁,會(huì)形成小鋸齒,導(dǎo)致CPUbound

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論