前言
IT系統(tǒng)在運(yùn)行維護(hù)的過(guò)程中,由于需求變更導(dǎo)致的應(yīng)用程序修改,或者日常維護(hù)中的不及時(shí)、全面,都會(huì)導(dǎo)致系統(tǒng)逐步出現(xiàn)諸如以下各種問(wèn)題:
-
系統(tǒng)性能逐步下降。
-
需求變更越來(lái)越困難、變更涉及面增大,錯(cuò)誤的發(fā)生更頻繁,對(duì)系統(tǒng)的影響也越來(lái)越大。
-
?為及時(shí)滿足生產(chǎn)部門的要求,在IT規(guī)劃外增加了小型應(yīng)用系統(tǒng)或功能,通過(guò)各種方式“掛接”到核心生產(chǎn)系統(tǒng)上,給IT系統(tǒng)持續(xù)的合理演進(jìn)制造了障礙。
IT系統(tǒng)的維護(hù),除了日常的維護(hù)工作,如:系統(tǒng)監(jiān)控、數(shù)據(jù)清理、故障處理等外,需要在一段時(shí)間內(nèi),對(duì)其進(jìn)行一次從系統(tǒng)平臺(tái)、業(yè)務(wù)、應(yīng)用架構(gòu)三個(gè)層面進(jìn)行全面的檢查,根據(jù)檢查的結(jié)果,提出進(jìn)行
-
系統(tǒng)優(yōu)化、
-
系統(tǒng)部署調(diào)整、
-
程序和業(yè)務(wù)模型重構(gòu)和修改、
-
系統(tǒng)架構(gòu)調(diào)整
的方案或者針對(duì)未來(lái)的IT規(guī)劃的建議。
檢查流程
IT系統(tǒng)檢查一般過(guò)程如下:
收集問(wèn)題
問(wèn)題收集需要考慮IT系統(tǒng)的所有涉眾,對(duì)于移動(dòng)運(yùn)營(yíng)商,包括:IT支持中心、市場(chǎng)部、客戶服務(wù)部,更全面的需要包括財(cái)務(wù)部、其他軟件廠商。
收集問(wèn)題需要包括:?jiǎn)栴}名稱、描述、期望結(jié)果、提出人、問(wèn)題解決反饋人。
問(wèn)題收集后需要及時(shí)在小組內(nèi)進(jìn)行初步檢查問(wèn)題描述是否具體,對(duì)于籠統(tǒng)含糊的問(wèn)題,需要進(jìn)一步啟發(fā)提出者進(jìn)行更具體的描述。
收集問(wèn)題不宜過(guò)多,耗費(fèi)過(guò)長(zhǎng)的時(shí)間。如果問(wèn)題過(guò)多過(guò)雜,需要抓住重點(diǎn)的幾個(gè)問(wèn)題進(jìn)行解決。
問(wèn)題分析
對(duì)收集的問(wèn)題進(jìn)行分析。
去除重復(fù)問(wèn)題。有一些問(wèn)題的描述方式不一樣,但是其本質(zhì)所指問(wèn)題為一個(gè),可以考慮合并成一個(gè)問(wèn)題。
對(duì)問(wèn)題進(jìn)行分類。首先按產(chǎn)品或子系統(tǒng)進(jìn)行分類,在按問(wèn)題類型分,一般問(wèn)題類型分為:
1.
功能錯(cuò)誤:在某種情況下,功能執(zhí)行不正確,這類問(wèn)題需要盡量進(jìn)行重現(xiàn)。
2.
功能缺失:目前系統(tǒng)未包含功能,可以開(kāi)發(fā)提供
3.
配置錯(cuò)誤:由于業(yè)務(wù)參數(shù)配置錯(cuò)誤
4.
性能:性能問(wèn)題,需要明確時(shí)間、業(yè)務(wù)、業(yè)務(wù)量等信息。
5.
易用性:多于操作類錯(cuò)誤等,都可以歸納為這類。
6.
穩(wěn)定性。
系統(tǒng)檢查
對(duì)IT軟件的系統(tǒng)平臺(tái)進(jìn)行檢查,以期發(fā)現(xiàn)
i. ?程序問(wèn)題
ii. 系統(tǒng)性能問(wèn)題
iii. 系統(tǒng)配置不合理。
iv. 系統(tǒng)容量不足
?? 等各方面的問(wèn)題。
系統(tǒng)平臺(tái)的檢查包括:
i.硬件平臺(tái)及操作系統(tǒng)。包括:主機(jī)CPU使用、內(nèi)存、磁盤陣列I/O效率、網(wǎng)絡(luò)帶寬等。
ii.數(shù)據(jù)庫(kù)。包括:SQL語(yǔ)句效率、表空間大小以及熱點(diǎn)表空間、熱點(diǎn)表,索引使用等檢查分析
iii.Tuxedo服務(wù)器。服務(wù)異常錯(cuò)誤、服務(wù)排隊(duì)情況、服務(wù)部署、超時(shí)服務(wù)檢查
iv.Web應(yīng)用服務(wù)器(Weblogic)。服務(wù)器內(nèi)存使用,服務(wù)器配置、執(zhí)行隊(duì)列等檢查
應(yīng)用檢查
從業(yè)務(wù)的視角進(jìn)行檢查。業(yè)務(wù)檢查的目的是發(fā)現(xiàn)
i.應(yīng)用系統(tǒng)的錯(cuò)誤。
ii.業(yè)務(wù)流程性能、運(yùn)行效率問(wèn)題。
iii.不合理的實(shí)現(xiàn)。
對(duì)業(yè)務(wù)的檢查,除了各個(gè)子系統(tǒng)外,對(duì)外部接口的檢查也包含在內(nèi)。業(yè)務(wù)檢查可以通過(guò)分析業(yè)務(wù)日志和業(yè)務(wù)數(shù)據(jù)得到。業(yè)務(wù)檢查更側(cè)重在對(duì)各涉眾所反映的問(wèn)題分析上。
架構(gòu)檢查
架構(gòu)檢查包括應(yīng)用系統(tǒng)的部署、應(yīng)用系統(tǒng)的軟件架構(gòu)二方面。架構(gòu)檢查需要從企業(yè)架構(gòu)的高度看企業(yè)當(dāng)前的IT系統(tǒng)現(xiàn)狀。
架構(gòu)檢查可以參考企業(yè)的架構(gòu)框架,目前,國(guó)內(nèi)企業(yè)很少有這方面的完備的定義,所以,架構(gòu)檢查應(yīng)該基于一般性原則,對(duì)不符合的部份提出改進(jìn)建議。中國(guó)移動(dòng)和中國(guó)聯(lián)通都有企業(yè)范圍的技術(shù)標(biāo)準(zhǔn)和業(yè)務(wù)規(guī)范,是架構(gòu)檢查的重要依據(jù)。
但是對(duì)違背一般性原則的部份,改進(jìn)起來(lái)具有一定的難度,同時(shí)也是比較容易指出的。在實(shí)際的環(huán)境中,架構(gòu)方面的問(wèn)題總是五花八門,如:沒(méi)有統(tǒng)一的用戶驗(yàn)證及授權(quán)系統(tǒng)、在電信企業(yè)中混亂的數(shù)據(jù)業(yè)務(wù)(新業(yè)務(wù))的開(kāi)通等。
檢查報(bào)告
檢查的最后一步,是提交最終的檢查報(bào)告。
檢查報(bào)告需詳盡闡述問(wèn)題,有可供選擇的解決方案,并比較各種解決方案的優(yōu)缺點(diǎn)。檢查報(bào)告還需要給出系統(tǒng)優(yōu)化及改進(jìn)的漸進(jìn)過(guò)程。
問(wèn)題收集
問(wèn)題調(diào)研提綱的編寫
問(wèn)題調(diào)研提綱是啟發(fā)使用者回憶和總結(jié)系統(tǒng)可能存在的問(wèn)題,以避免使用者提出的問(wèn)題描述不準(zhǔn)確或有遺漏。
?
?
功能
|
系統(tǒng)中缺少哪些功能,哪些工作需要人工處理?
系統(tǒng)中哪些功能會(huì)出錯(cuò)?(由于業(yè)務(wù)規(guī)則限制)
系統(tǒng)中哪些功能幾乎沒(méi)有被使用?
系統(tǒng)中哪些數(shù)據(jù)不能被查看?
系統(tǒng)中哪些數(shù)據(jù)可能存在問(wèn)題?
系統(tǒng)中哪些數(shù)據(jù)不能被準(zhǔn)確的核對(duì)或驗(yàn)證?
|
?
性能
|
什么功能、在什么時(shí)候會(huì)出現(xiàn)響應(yīng)問(wèn)題?
什么功能在業(yè)務(wù)高峰時(shí),會(huì)出現(xiàn)性能下降?
是否有一些系統(tǒng)的接入(如:渠道)的性能存在問(wèn)題?如:營(yíng)業(yè)廳、WAP營(yíng)業(yè)廳、Web自助服務(wù)、短信營(yíng)業(yè)廳等。
|
?
容量
|
?是否存在CPU資源、內(nèi)存、磁盤空間、網(wǎng)絡(luò)帶寬的不足?
|
?穩(wěn)定性
|
?描述系統(tǒng)出現(xiàn)過(guò)的故障?
是否由于應(yīng)用系統(tǒng)問(wèn)題重啟系統(tǒng)?
|
?易用性
???
|
哪些應(yīng)用的界面不好使用,易于出錯(cuò)?
哪些功能需要頻繁切換界面才能完成?
|
?
靈活性
|
?哪些功能模塊被頻繁修改
哪些數(shù)據(jù)模型被頻繁修改?
哪些用戶界面很類似?
|
?
架構(gòu)
??
|
?哪些接口經(jīng)常出現(xiàn)錯(cuò)誤?
哪些接口經(jīng)常需要升級(jí)?
|
?
維護(hù)
|
?應(yīng)用升級(jí)過(guò)程中存在哪些問(wèn)題?
需求變更的及時(shí)性如何?
|
問(wèn)題收集表格
?序號(hào)
|
?問(wèn)題性質(zhì)
|
?問(wèn)題類別
|
?問(wèn)題描述
|
?
??改進(jìn)要求和建議?
|
?提出人
?
|
?優(yōu)先級(jí)
|
?
|
?管理/技術(shù)
|
?按調(diào)研問(wèn)卷類別分
|
?
|
?
|
?
|
?
|
工作流程
發(fā)放問(wèn)題調(diào)查、問(wèn)題收集、故障清單收集、IT支撐相關(guān)用戶投訴收集(最終用戶,通過(guò)呼叫中心的統(tǒng)計(jì)表格收集)、問(wèn)題初步確認(rèn)、提交完整問(wèn)題清單。
問(wèn)題分析
對(duì)問(wèn)題列表進(jìn)行初步分析,明晰形成問(wèn)題的原因,并提出初步的解決或改進(jìn)方案。
在最終形成報(bào)告的過(guò)程中,需要對(duì)所有問(wèn)題的方案進(jìn)行匯總和整合,合并成相對(duì)完整的系統(tǒng)的解決方案。
由于IT系統(tǒng)的問(wèn)題涉及面很廣,對(duì)問(wèn)題的分析更多的依賴分析者的專業(yè)知識(shí)和經(jīng)驗(yàn)。不可能提供一個(gè)工具或者方法。
一般使用“頭腦風(fēng)暴法”,并使用因果圖來(lái)尋找問(wèn)題背后的真正原因。
對(duì)一些描述信息不足以判斷原因的問(wèn)題,可以通過(guò)測(cè)試系統(tǒng)或者在生產(chǎn)系統(tǒng)中使用測(cè)試數(shù)據(jù),通過(guò)重現(xiàn)問(wèn)題出現(xiàn)的情景來(lái)進(jìn)行分析。
下表是一般常見(jiàn)的原因:
類型
|
問(wèn)題
|
原因
|
方法提示
|
功能
|
功能錯(cuò)誤
|
1.
???
需求理解問(wèn)題
2.
???
業(yè)務(wù)概念和規(guī)則歧義
3.
???
操作錯(cuò)誤
4.
???
后續(xù)升級(jí)功能影響
|
1.
???
整理需求和業(yè)務(wù)規(guī)則
2.
???
和使用者溝通簡(jiǎn)化界面操作
|
?
|
數(shù)據(jù)不準(zhǔn)確
|
5.
???
數(shù)據(jù)沒(méi)有按合理粒度區(qū)分
6.
???
日志記錄不全
|
3.
???
整理數(shù)據(jù)流及稽核圖
*
檢查
|
性能
|
偶發(fā)性能問(wèn)題
|
7.
???
變更程序錯(cuò)誤
8.
???
某些業(yè)務(wù)數(shù)據(jù)增加而導(dǎo)致的性能下降(如:產(chǎn)品數(shù)據(jù)等)
9.
???
應(yīng)用平臺(tái)問(wèn)題,如:過(guò)多異常錯(cuò)誤。
10.
??
系統(tǒng)平臺(tái)問(wèn)題,如:磁盤
I/O
|
4.
???
修改業(yè)務(wù)數(shù)據(jù)的查詢算法等,避免其數(shù)據(jù)量變化影響性能
|
?
|
業(yè)務(wù)高峰性能問(wèn)題
|
11.
??
系統(tǒng)處理能力不足
12.
??
系統(tǒng)部署不合理,導(dǎo)致資源爭(zhēng)用
|
5.
???
系統(tǒng)擴(kuò)容
6.
???
部署調(diào)整
|
架構(gòu)
|
接口頻繁增加和修改
|
13.
??
接口協(xié)議不夠抽象
14.
??
沒(méi)有統(tǒng)一的接口規(guī)范
|
7.
???
制定接口規(guī)范
|
?
|
數(shù)據(jù)模型修改
|
15.
??
業(yè)務(wù)模型不穩(wěn)定
|
8.
???
結(jié)合新需求整合業(yè)務(wù)模型
|
?
|
外圍子系統(tǒng)增加
|
16.
??
原系統(tǒng)不夠靈活,不能支持新的需求
|
9.
???
升級(jí)系統(tǒng),終合化、專業(yè)化。
|
?
對(duì)一些系統(tǒng)的數(shù)據(jù)之間存在核對(duì)關(guān)系等的,可以采用數(shù)據(jù)核對(duì)圖來(lái)厘清數(shù)據(jù)之間的關(guān)系。
系統(tǒng)檢查
操作系統(tǒng)檢查
檢查每臺(tái)主機(jī)的CPU使用、內(nèi)存變化、交換區(qū)、存儲(chǔ)使用、I/O效率等情況。
方法:使用vmstat、sar、iostat、netstat、ps、top、df、ipcs、time、svmon等操作系統(tǒng)命令。各種操作系統(tǒng)也有自己的性能工具,如:HP-UX的glance、AIX的tprof等。
一般而言,CPU使用率長(zhǎng)時(shí)間(連續(xù)30分鐘至1小時(shí))超過(guò)80%,則CPU資源存在不足。空閑內(nèi)存根據(jù)內(nèi)存使用情況看,建議大于1G的空閑內(nèi)存。磁盤的檢查需要結(jié)合磁盤陣列的管理軟件,通常要求不要有明顯的“熱點(diǎn)”。
??可以使用Excel趨勢(shì)線檢查CPU等資源使用率的變動(dòng)情況,如下圖:
?
檢查操作系統(tǒng)環(huán)境變量和核心參數(shù)
?操作系統(tǒng)環(huán)境變量和核心參數(shù)的設(shè)置,是由應(yīng)用系統(tǒng)決定的。如:對(duì)于文件處理、網(wǎng)絡(luò)連接比較多的應(yīng)用需要較大的可打開(kāi)文件句柄數(shù),網(wǎng)絡(luò)連接的相關(guān)參數(shù)、對(duì)于較多IPC的應(yīng)用需要修改消息隊(duì)列、共享內(nèi)存、信號(hào)量等核心參數(shù)。
服務(wù)器類型
|
相關(guān)需調(diào)整核心參數(shù)
|
后臺(tái)文件批處理
|
打開(kāi)文件句柄數(shù)
,
異步
I/O
,
|
批量數(shù)據(jù)庫(kù)服務(wù)器
|
共享內(nèi)存
|
OLTP
數(shù)據(jù)庫(kù)
|
共享內(nèi)存
|
Tuxedo
服務(wù)器
|
消息隊(duì)列、共享內(nèi)存、網(wǎng)絡(luò)
|
Web
服務(wù)器(
Weblogic
)
|
網(wǎng)絡(luò)
|
注:特殊調(diào)整
LDR_CNTRL=NAMEDSHLIB=xxx,doubletext32(AIX5.3可設(shè)置,以避免共享庫(kù)使用私有內(nèi)存段)
?
檢查CPU資源消耗較多、內(nèi)存使用較多、I/O頻繁的進(jìn)程
使用ps 或 top 命令檢查CPU、內(nèi)存消耗較多的進(jìn)程。
并進(jìn)一步使用dbx、gdb等調(diào)試工具檢查程序運(yùn)行的指令,或者使用svmon等檢查內(nèi)存的情況。
dbx 等調(diào)試命令,可以發(fā)現(xiàn)系統(tǒng)消耗資源較大的指令。但是只有在有調(diào)試選項(xiàng)的情況下的發(fā)布版本,才能顯示具體的語(yǔ)言代碼。
在AIX中,可以使用truss –p pid 檢查系統(tǒng)調(diào)用。
svmon可以顯示進(jìn)程所占內(nèi)存的細(xì)節(jié)信息。可以協(xié)助發(fā)現(xiàn)內(nèi)存泄漏問(wèn)題。
下面以AIX為例,說(shuō)明svmon的用法:
?
其中:
pid:進(jìn)程號(hào)
Command:進(jìn)程命令
Inuse:RAM 中進(jìn)程使用的頁(yè)數(shù)加上屬于終止進(jìn)程但仍駐留在 RAM 中的持久頁(yè)面數(shù)。這個(gè)值等于總內(nèi)存大小減去空閑列表中的頁(yè)數(shù)。
Pin:鎖定在 RAM 的頁(yè)面的數(shù)量。(一個(gè)鎖定的頁(yè)面就是一直駐留在 RAM 中而不能調(diào)出的頁(yè)面)。?
PgSp: 描述調(diào)頁(yè)空間使用情況的統(tǒng)計(jì)信息,以 4KB 大小的頁(yè)顯示。該數(shù)據(jù)只有當(dāng)不使用 -r 標(biāo)志時(shí)才會(huì)報(bào)告。報(bào)告的值是所使用的實(shí)際調(diào)頁(yè)空間頁(yè)面數(shù),這表明這些頁(yè)面調(diào)出到了調(diào)頁(yè)空間中。它與 vmstat 命令的不同在于 vmstat 命令的 avm 一欄顯示的是已訪問(wèn)但不一定調(diào)出的虛擬內(nèi)存。
Virtual:在進(jìn)程虛擬空間中分配的頁(yè)數(shù)。?
Vsid:虛擬的段ID
Esid: 有效的段ID,ESid只有當(dāng)段屬于進(jìn)程的地址空間時(shí)才合法 進(jìn)程空間的段ID,從0X0-0XF,其中0X0:核心的代碼和數(shù)據(jù),為系統(tǒng)保留、0X1:用戶代碼、0x2:用戶棧、數(shù)據(jù) 0x3-0xC:為shmat和mmap使用的、0xD:共享庫(kù)代碼、0xE:為shmat和mmap使用的、0xF:預(yù)處理共享庫(kù)代碼 注意:大內(nèi)存模式下,0x2-0x6都為用戶棧、數(shù)據(jù)
Type:Segment的類型分五種。
persistent Segments:用于操作文件及目錄
working Segments:用戶實(shí)現(xiàn)進(jìn)程數(shù)據(jù)區(qū)及共享內(nèi)存段
client Segments:用于實(shí)現(xiàn)象NFS/CD-ROM FS這樣的文件系統(tǒng)
mapping Segments:用于實(shí)現(xiàn)文件在內(nèi)存中的映射
real memory mapping Segments:用于從虛擬地址空間存取IO空間
?
如果一個(gè)進(jìn)程有工作段(private working segment)的 Inuse、Pgspace 和 Address Range 值在不斷增加:極可能是內(nèi)存泄漏。
數(shù)據(jù)庫(kù)檢查
存儲(chǔ)空間檢查
檢查各個(gè)數(shù)據(jù)庫(kù)的各個(gè)表空間的存儲(chǔ)空間的使用率、剩余空間。
根據(jù)業(yè)務(wù)量以及空間的變化歷史分析存儲(chǔ)空間的容量。此工作需要事先定時(shí)采集數(shù)據(jù)。
性能檢查
可以從下面多個(gè)角度,對(duì)數(shù)據(jù)庫(kù)性能進(jìn)行分析。
進(jìn)程分析
數(shù)據(jù)庫(kù)的進(jìn)程數(shù)是影響到數(shù)據(jù)庫(kù)性能的一個(gè)重要因素,分析一個(gè)月來(lái)的總的進(jìn)程情況和每天活動(dòng)的進(jìn)程情況,可以知道數(shù)據(jù)庫(kù)的繁忙程度的趨勢(shì),如果某天的進(jìn)程數(shù)異常,可以繼續(xù)分析該表的數(shù)據(jù),總結(jié)出哪臺(tái)機(jī)器的連接數(shù)異常,并進(jìn)而跟蹤到應(yīng)用進(jìn)程的異常。
I/O使用分析
對(duì)各類表空間的物理讀/寫所消耗的I/O進(jìn)行匯總分析,找出消耗I/O大的表空間類別,進(jìn)而為這類表空間對(duì)應(yīng)的業(yè)務(wù)應(yīng)用優(yōu)化提供依據(jù)。
空間分析
ORACLE 數(shù)據(jù)庫(kù)中的表經(jīng)過(guò)大量的插入操作后,表的高水位線(HWM)會(huì)不斷的提高,并且在進(jìn)行了刪除操作后,雖然表中的數(shù)據(jù)減少了,但表的HWM并沒(méi)有下 降,HWM不斷的增高一方面浪費(fèi)了存儲(chǔ)空間,另外一方面造成了表存儲(chǔ)結(jié)構(gòu)的稀疏,在通過(guò)索引掃描或表掃描查找數(shù)據(jù)時(shí),都會(huì)造成CPU資源和IO資源的浪 費(fèi);同樣的情況也出現(xiàn)在索引的存儲(chǔ)上,因此在數(shù)據(jù)庫(kù)運(yùn)行一段時(shí)間后,需要對(duì)表和索引的存儲(chǔ)稀疏度進(jìn)行分析,抽取出空間使用問(wèn)題嚴(yán)重的表或索引,進(jìn)行數(shù)據(jù)的 重組。
Top SQL分析
從shared pool中分別通過(guò)下面的SQL查詢中最耗CPU及最耗物理IO的SQL,逐一進(jìn)行分析如下:
--消耗CPU最多的SQL
SELECT hash_value,module,sql_text,round(buffer_gets/EXECUTIONS,1) "ratio(%)", buffer_gets,PARSE_CALLS,EXECUTIONS
??FROM v$sqlarea
??WHERE EXECUTIONS>100
?ORDER BY 4 DESC;?
--消耗物理讀最多的SQL
SELECT hash_value,module,sql_text,round(disk_reads/EXECUTIONS,1) "ratio(%)", disk_reads,PARSE_CALLS,EXECUTIONS
??FROM v$sqlarea
??WHERE EXECUTIONS>100
?ORDER BY 4 DESC;
異常檢查
分析數(shù)據(jù)庫(kù)維護(hù)日志,發(fā)現(xiàn)數(shù)據(jù)庫(kù)可能存在的問(wèn)題,特別是不穩(wěn)定、故障方面的問(wèn)題,增加系統(tǒng)穩(wěn)定性、降低故障風(fēng)險(xiǎn)。
Tuxedo服務(wù)器檢查
服務(wù)部署檢查
檢查各個(gè)服務(wù)進(jìn)程數(shù)是否合理? 避免有進(jìn)程閑,有進(jìn)程排隊(duì)的情況
檢查進(jìn)程接收和發(fā)送隊(duì)列配置是否合理?不要讓過(guò)多的進(jìn)程共享消息隊(duì)列,一般建議不要超過(guò)20個(gè)
檢查進(jìn)程調(diào)用進(jìn)程的配置是否合理??
檢查各個(gè)進(jìn)程中的業(yè)務(wù)邏輯是否合理? 主要是把一些調(diào)用響應(yīng)時(shí)間和頻率不一致的業(yè)務(wù)邏輯分開(kāi)部署。
問(wèn)題檢查
檢查Tuxedo的ULOG,分析錯(cuò)誤信息。
配置檢查
由于程序變更,用戶業(yè)務(wù)增加等原因,可能會(huì)導(dǎo)致本來(lái)合理的配置需要進(jìn)一步調(diào)整。
可能涉及的參數(shù)包括:
MAXACCESS MAXSERVER WSL參數(shù)等。
如:在一個(gè)項(xiàng)目中,為支持無(wú)線接入,我們修改WSL(客戶端偵聽(tīng)服務(wù)進(jìn)程)參數(shù)壓縮門限到10K。大大地提高了無(wú)線接入的速度。
??
WSL ? SRVGRP = GRPWSL ? SRVID = 150 CLOPT = "-A -t -- -n //10.238.12.104:46000 -H //10.238.26.65:46000 -m20 -M30 -x10 -c10240000 -T3 -t 30"
//CLOPT:命令行參數(shù)
// ?-A:提供所有服務(wù)。
// ?-t:1可以和Tuxedo7.1前的WSH互操作
// ?-n:WSL的偵聽(tīng)地址,格式為://hostname:port_number或//#.#.#.#:port_number
// ?-H:外部網(wǎng)絡(luò)地址,WSH供客戶端使用的地址,一般在有路由器時(shí)使用。
// ?-m -M:最少的和最多的WSH進(jìn)程,-m在[0-256] -M[-m,4096]
// ?-x:每個(gè)WSH能支持的客戶端數(shù)
// ?-c:buffer壓縮門限
// ?-T:客戶端空閑時(shí)間(單位分鐘)
// ?-t:2客戶端初始化tpinit的允許的時(shí)間為此值*SCANUNIT
// [-p minwshport] and [-P maxwshport]:WSH可用的端口范圍?
Weblogic檢查
配置檢查
JVM參數(shù)調(diào)整
JVM Heap size 和GC
1)
如果Heap Size大,則GC比較少,但是慢。反之,GC比較多,但是快
2)
如果Heap Size過(guò)小,會(huì)出現(xiàn)java.lang.OutOfMemoryError
3)
可以通過(guò)控制臺(tái)配置Low Memory GCThreshold以發(fā)現(xiàn)低內(nèi)存情況。
4)
收集GC信息
AIX:?
% java -Xms256m -Xmx1792m ?–verbosegc -Xverbosegclog:verbosegclog -classpath $CLASSPATH
-Dweblogic.Name=%SERVER_NAME% -Dbea.home="C:\bea"
-Dweblogic.management.username=%WLS_USER%
-Dweblogic.management.password=%WLS_PW%
-Dweblogic.management.server=%ADMIN_URL%
-Dweblogic.ProductionModeEnabled=%STARTMODE%
-Djava.security.policy="%WL_HOME%\server\lib\weblogic.policy" weblogic.Server
使用AIX的JDK,推薦-xms –xmx配置大小不一致
其他JDK-xms –xmx大小一致?
HPUX使用下列選項(xiàng):
-Xverbosegc:file=/tmp/gc$$.out
5)
GC信息分析
GC不應(yīng)超過(guò)3-5s
Heap 如果85% Free,需要減少Heap Size。
6)
在多CPU的機(jī)器上使用并行的垃圾收集算法,以減少垃圾收集的暫停時(shí)間。?
Weblogic參數(shù)調(diào)整
1)
設(shè)置Java參數(shù)
set JAVA_HOME=C:\bea\jdk141_03
"%JAVA_HOME%\bin\java" -hotspot -Xms512m -Xmx512m -classpath %CLASSPATH% -
?
2)
盡量使用“Native IO”性能包
檢查Config-〉Tuning頁(yè)
3)
調(diào) 整執(zhí)行隊(duì)列的線程數(shù),為了設(shè)置理想的執(zhí)行隊(duì)列的線程數(shù),我們可以啟動(dòng)管理控制臺(tái),在域(如:mydomain)> 服務(wù)器> server實(shí)例(如:myserver)> 監(jiān)視> 性能中監(jiān)控最大負(fù)載時(shí)執(zhí)行隊(duì)列的吞吐量和隊(duì)列中的等待請(qǐng)求數(shù),據(jù)此確定理想的數(shù)值。
配置在config.xml
<ExecuteQueue
NameName="String"
NotesNotes="String"
QueueLengthQueueLength="number"
ThreadCountThreadCount="number"
ThreadsIncreaseThreadsIncrease="number"
ThreadsMaximumThreadsMaximum="number"
/>
一般值:Execute queue threads count = CPU counts + stuck threads count
不要把Stuck Thread Max Time 和 Stuck Thread Time Interval 設(shè)置得過(guò)低,以至于在處理高峰期間,常規(guī)請(qǐng)求被誤認(rèn)為是卡住得線程。?
Socket Reader,ThreadPoolPercentSocketReaders缺省設(shè)為33,1/3的線程用于Socket Reader。 ? ? ? ??
4)
JDBC連接池
InitialCapacity
MaxCapacity
設(shè)置Statement Cache
推薦1個(gè)cpu 配置 25-30連接
5)
調(diào)優(yōu)TCP連接緩存數(shù)
???
WebLogic Server用Accept Backlog參數(shù)規(guī)定服務(wù)器向操作系統(tǒng)請(qǐng)求的隊(duì)列大小,默認(rèn)值為50。當(dāng)系統(tǒng)重載負(fù)荷時(shí),這個(gè)值可能過(guò)小,日志中報(bào)Connection Refused,導(dǎo)致有效連接請(qǐng)求遭到拒絕,此時(shí)可以提高Accept Backlog 25%直到連接拒絕錯(cuò)誤消失。對(duì)于Portal類型的應(yīng)用,默認(rèn)值往往是不夠的。Login Timeout和SSL Login Timeout參數(shù)表示普通連接和SSL連接的超時(shí)時(shí)間,如果客戶連接被服務(wù)器中斷或者SSL容量大,可以嘗試增加該值。
推薦8192
6)
調(diào)整日志輸出級(jí)別
如:mydomain)> 服務(wù)器> server實(shí)例Logging
Weblogic應(yīng)用調(diào)整
1)
配置執(zhí)行隊(duì)列控制線程使用
保證關(guān)鍵應(yīng)用/避免非關(guān)鍵線程影響/
創(chuàng)建執(zhí)行隊(duì)列
<Server
?Name="examplesServer"
?ListenPort="7001"
?NativeIOEnabled="true"/>
?
<ExecuteQueue Name="default"
??ThreadCount="15"/>
?
<ExecuteQueue Name="CriticalAppQueue"
??ThreadCount="4"/>
?...
</Server>
分配Servlet和JSP到指定執(zhí)行隊(duì)列
<servlet>
?? <servlet-name>MainServlet</servlet-name>
?? <jsp-file>/myapplication/critical.jsp</jsp-file>
?? <init-param>
?? ? ?<param-name>wl-dispatch-policy</param-name>
?? ? ?<param-value>CriticalAppQueue</param-value>
?? </init-param>
</servlet>
JSP性能
1)
使用weblogic.jspc編譯JSP
2)
確定一下參數(shù)配置
<jsp-descriptor>?
<jsp-param>?
<param-name>precompile</param-name>?
<param-value>false</param-value>?
</jsp-param>?
<jsp-param>?
<param-name>pageCheckSeconds</param-name>
<param-value>-1</param-value>?
</jsp-param>
</jsp-descriptor>?
?
pageCheckSeconds和servlet-reload-check-secs 這兩個(gè)參數(shù)要么設(shè)置為-1,要么設(shè)大一點(diǎn),如180s
??EJB檢查
?? ? ? weblogic-ejb-jar.xmls
?? ? ? ?
initial-beans-in-free-pool
max-beans-in-free-pool
max-beans-in-cache
?? ??
weblogic 控制臺(tái)檢查一下信息:
?? ? ?Pool Miss Ratio:
所有 bean 實(shí)例都在使用中,因?yàn)檎?qǐng)求的數(shù)量很多。在這種情況中,空閑池中沒(méi)有可用實(shí)例來(lái)響應(yīng)新的請(qǐng)求。這就導(dǎo)致產(chǎn)生一次請(qǐng)求池失敗,檢查原因是否需要增加max-beans-in-free-pool
?Pool Timeout Ratio:
池 超時(shí)率過(guò)高意味著池沒(méi)有根據(jù)調(diào)用數(shù)量恰當(dāng)調(diào)整。隨著請(qǐng)求數(shù)量不斷增加, EJB 容器創(chuàng)建更多的實(shí)例,直到其達(dá)到 maximum-beans-in-free-pool 值。如果所有的實(shí)例都處于活動(dòng)狀態(tài),并且已經(jīng)達(dá)到最大空閑池大小,則新的方法請(qǐng)求必須等待,直到實(shí)例返回到池中。等待期間就是池的超時(shí)值,它與為無(wú)狀態(tài) EJB 配置的事務(wù)超時(shí)值相同。可以降到超時(shí)時(shí)間設(shè)置或者增加max-beans-in-free-pool
max-beans-in-cache:
容 器在交易中第一次裝載bean時(shí)是從數(shù)據(jù)庫(kù)調(diào)用的,此時(shí)bean也被放在緩存中。如果緩存的空間太小,有些bean就被滯留在數(shù)據(jù)庫(kù)中。這樣,如果不考慮 前面提到的前兩種特殊情況的話,這些bean在下次調(diào)用時(shí)就必須重新從數(shù)據(jù)庫(kù)裝載。從緩存調(diào)用bean也意味著此時(shí)不必調(diào)用 setEntityContext()。如果bean的關(guān)鍵(主)鍵是組合域或者比較復(fù)雜,也能省卻設(shè)置它們的時(shí)間。
n
問(wèn)題檢查
1)
檢查weblogic日志,分析錯(cuò)誤信息。
2)
檢查weblogic是否 hang
java weblogic.Admin -url t3://localhost:7001 -username weblogic -password ? ? ? ?weblogic PING
?? ?3) cluster啟不來(lái)
檢查一下網(wǎng)絡(luò)是否能ping通
??
檢查udp是否通 multcasttest
??
應(yīng)用檢查
應(yīng)用功能正確性
核對(duì)業(yè)務(wù)數(shù)據(jù)。核對(duì)數(shù)據(jù)的方法有:
-
?
-
數(shù)據(jù)流中的不同環(huán)節(jié)之間。
-
不同類型的相互關(guān)聯(lián)的業(yè)務(wù)數(shù)據(jù)。如:用戶數(shù)變化和終端數(shù)變化核對(duì)。
-
業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)日志
檢查異常數(shù)據(jù)。如:檢查超時(shí)訂單、錯(cuò)誤訂單數(shù)。
業(yè)務(wù)流程效率
檢查應(yīng)用系統(tǒng)中的業(yè)務(wù)流程和系統(tǒng)處理流程,評(píng)估流程合理性和各個(gè)處理環(huán)節(jié)的性能。
對(duì)業(yè)務(wù)流程和處理流程進(jìn)行重組,提高流程效率。
流程重組一般包括:
-
?
-
提高流程自動(dòng)化程度,避免人工處理影響效率。
-
對(duì)流程中易于出錯(cuò)或者存在漏洞的環(huán)節(jié),增加審核環(huán)節(jié)。
應(yīng)用系統(tǒng)演進(jìn)
應(yīng)用系統(tǒng)由于不斷的維護(hù),增加或者修改功能實(shí)現(xiàn),需要定期對(duì)系統(tǒng)進(jìn)行重構(gòu),以更好支持應(yīng)用系統(tǒng)未來(lái)的靈活性。
應(yīng)用系統(tǒng)演進(jìn)形式一般為:
功能整合
功 能整合有二種情況,一種是整合多個(gè)相似的功能,形成融合的抽象的功能,如:在電信支撐系統(tǒng)中,支持了VPN業(yè)務(wù)的受理、又支持了企業(yè)郵箱業(yè)務(wù)的受理等,隨 著企業(yè)客戶的業(yè)務(wù)種類的增多,必須抽象出一個(gè)集團(tuán)業(yè)務(wù)受理的功能,能夠定制各種集團(tuán)業(yè)務(wù)的受理,而不是每個(gè)集團(tuán)業(yè)務(wù)進(jìn)行一次受理功能的開(kāi)發(fā)。另一種是整合 相關(guān)功能。如:在數(shù)據(jù)業(yè)務(wù)開(kāi)通中,有時(shí)需要進(jìn)行基本功能的開(kāi)通,而基本功能的開(kāi)通由原業(yè)務(wù)開(kāi)通系統(tǒng)完成,而數(shù)據(jù)業(yè)務(wù)開(kāi)通由另外補(bǔ)充的功能實(shí)現(xiàn),因此,需要 把這些功能整合成一個(gè)綜合的業(yè)務(wù)開(kāi)通系統(tǒng)。
功能獨(dú)立
由于企業(yè)管理理念的進(jìn)步,IT系統(tǒng)功能的不斷完善,原有的很多系統(tǒng)逐步完善,可以逐漸獨(dú)立成專業(yè)的應(yīng)用系統(tǒng)。
如: 資源管理,原本只是業(yè)務(wù)管理的一個(gè)模塊,由于業(yè)務(wù)發(fā)展,資源管理流程的精細(xì)化、資源種類的增加等原因,逐步獨(dú)立成資源管理系統(tǒng)。營(yíng)銷管理,原系統(tǒng)只是一些 簡(jiǎn)單的營(yíng)銷的資料管理,隨著系統(tǒng)發(fā)展,逐步獨(dú)立成一個(gè)集合營(yíng)銷自動(dòng)化,分析型CRM的綜合營(yíng)銷管理平臺(tái),獨(dú)立成一個(gè)專業(yè)的系統(tǒng)。
架構(gòu)檢查
硬件平臺(tái)
??根據(jù)對(duì)系統(tǒng)的檢查,提出硬件平臺(tái)的調(diào)整建議。
??檢查項(xiàng):
-
?
-
硬件平臺(tái)處理能力是否滿足規(guī)劃時(shí)期內(nèi)的業(yè)務(wù)高峰能力要求?
-
硬件處理能力是否便于擴(kuò)展?
-
是否存在單點(diǎn)故障?
-
是否存在安全性問(wèn)題?
??
應(yīng)用基礎(chǔ)設(shè)施
對(duì)企業(yè)范圍內(nèi)的應(yīng)用基礎(chǔ)設(shè)施進(jìn)行檢查,如:Web應(yīng)用服務(wù)器,LDAP服務(wù)器等,提出升級(jí)調(diào)整建議:
檢查項(xiàng):
-
?
-
對(duì)照行業(yè)要求和技術(shù)發(fā)展,是否需要引進(jìn)新的應(yīng)用基礎(chǔ)設(shè)施。如:BRMS,BPMS、LDAP、ESB等系統(tǒng)。
-
是否需要統(tǒng)一企業(yè)內(nèi)的應(yīng)用基礎(chǔ)設(shè)施。避免多種不同協(xié)議、不同廠商的基礎(chǔ)設(shè)施之間的集成成本。
應(yīng)用系統(tǒng)
根據(jù)企業(yè)應(yīng)用架構(gòu)的原則,對(duì)應(yīng)用系統(tǒng)提出調(diào)整、升級(jí)建議。
這些原則來(lái)自:
-
?
-
?企業(yè)架構(gòu)原則,如:中國(guó)移動(dòng)等推出的企業(yè)內(nèi)的應(yīng)用系統(tǒng)業(yè)務(wù)技術(shù)規(guī)范。
-
?業(yè)內(nèi)最佳實(shí)踐,如:電信行業(yè),可參考的TMF的推薦。
-
?最新技術(shù)進(jìn)展。如:基于SOA進(jìn)行架構(gòu)。
檢查項(xiàng):
-
?
-
不同的應(yīng)用是否重復(fù)開(kāi)發(fā)了業(yè)務(wù)功能?可以重新對(duì)子系統(tǒng)進(jìn)行規(guī)劃。
-
是否有業(yè)務(wù)功能沒(méi)有被完全覆蓋? 可以規(guī)劃新的子系統(tǒng)
-
是否可以把多種功能,進(jìn)行整合成一個(gè)綜合的系統(tǒng)?如:統(tǒng)一接口系統(tǒng),綜合服務(wù)開(kāi)通系統(tǒng)。
-
是否可以把一個(gè)具有復(fù)雜的,多種功能的系統(tǒng),按專業(yè)進(jìn)行拆分,以追求更高穩(wěn)定性和性能。
-
系統(tǒng)間是否具有過(guò)于復(fù)雜的接口關(guān)系?
-
不同的系統(tǒng),是否具有相同的數(shù)據(jù),如何保證這些數(shù)據(jù)一致。
-
面向第三方系統(tǒng),是否具有標(biāo)準(zhǔn)的接口定義?
特殊檢查項(xiàng):(來(lái)自某企業(yè))
-
?
-
不同的展現(xiàn)渠道是否具有相同的業(yè)務(wù)邏輯?
-
系統(tǒng)必須統(tǒng)一認(rèn)證和授權(quán)。
檢查報(bào)告
檢查報(bào)告的格式如下:
一、概述:
描述系統(tǒng)當(dāng)前的現(xiàn)狀,IT系統(tǒng)檢查和優(yōu)化的目的。
二、問(wèn)題分析
1、系統(tǒng)資源分析:
分析系統(tǒng)的各種資源存在問(wèn)題。
2、應(yīng)用系統(tǒng)分析:
分析應(yīng)用系統(tǒng)存在的問(wèn)題。
3、問(wèn)題分析:
分析收集的IT系統(tǒng)的問(wèn)題
三、優(yōu)化調(diào)整方案
對(duì)前面分析的解決方案。包括:
1、部署調(diào)整方案
2、應(yīng)用調(diào)整設(shè)計(jì)方案
四、系統(tǒng)演進(jìn)建議
對(duì)系統(tǒng)未來(lái)的演進(jìn)提出建議
五、附錄
分析過(guò)程中使用的各種數(shù)據(jù)、表格等。
|