WebSphere效能調優全講解

lenx2000發表於2009-09-24

WebSphere效能調優全講解

一、最佳化概述

Ø        WebSphere引數調整,使執行更加穩定,有效最佳化伺服器

Ø        WebSphere實時監控,並透過等多途徑分析程式bug瓶頸

Ø        WebSphere監測工具,利用第三方監測工具,減少工作量,提高監控效率

Ø        WebSphere配置,開發特定配置檔案,減小伺服器開銷,增強使用者體驗性

Ø        WebSphere,利用機制,形成穩定高效的

1、引數調整

WebSphere的控制檯,在以往的專案中最常用的就是war包的部署以及程式的啟停等,對於WebSphere的配置引數沒有過多的涉及,使我們無法合理有效的利用伺服器,造成部分的浪費。透過分析及監控,我們可以設定合理的配置引數,使其維護機制等更為合理,使其提供的內部機制充分得到利用,還可以透過其提供的API介面,進行有針對性的程式最佳化。

2、監控最佳化

WebSphere自身提供了一個功能相當強大的監控程式——TPVTivoli Performance Viewer),透過開啟監控的開關,設定對各關注指標的計數器,來進行有針對性的監控,監控過程中可以控制的重新整理速度,日誌保留情況,來觀察各計數器的資料變化。其他的監控還包括LRjwebap等等,在監控的過程中,由於實時監控造成很大的人力開銷,所以第三方軟體的誕生,使我們監控的工作事半功倍,彌補了TPV的很多不足。第三方監控軟體包括預警通知,報表輸出,全域性監控,歷史查詢等重要功能。

3、檔案分析

在監控的過程中,以及日常運維中,會產生很多的日誌檔案,包括了垃圾回收日誌、應用程式日誌、伺服器錯誤日誌,以及堆轉儲檔案和執行緒池使用檔案等,這些檔案的產生可以使我們快速的定位錯誤位置,找出問題根源。提供了這些日誌檔案的分析工具和錯誤程式碼庫,方便我們分析和查詢,真正做到了監控——分析——最佳化一條龍服務。

4、架構設計

WebSphere在應對高負載時提供了一套機制——叢集,叢集可以幫助我們進行負載均衡以及保證系統的穩定性,在單機進行垂直部署或者多機的橫向部署,透過DM進行對節點的。叢集的方式很多,以應對不同的架構設計,但這些的前提是瞭解叢集的架構和原理,瞭解專案自身特點,這樣才能有針對性的進行設計,以發揮叢集的最大作用。


二、引數講解

1、連線池

 程式讀取庫有2種方式,一種是直接連線資料庫,一種是呼叫連線池。

1)       直連是程式直接建立物理連線,呼叫資料庫進行資料讀取。直連的建立會帶來很大的開銷,若程式中多處頻繁使用直連,會造成應用消耗過多,影響程式的

2)       連線池是建立和一個物理連線的緩衝池,其中會保留一定數量建立的物理連線不關閉,當有客戶端請求時,呼叫連線池,可以有效減少物理連線的建立次數,降低直連所帶來的系統開銷,緩解應用伺服器壓力,提高程式效能。

 

下面我對連線池各引數意義進行講解:

2、連線超時

概述:

連線超時是指,當對指定連線池進行請求時,池中沒有可用連線(連線全部被使用,或者資料庫請求超時),當請求時間到達指定之間時未響應,那麼這個時候就會產生超時異常,透過可以發現。

意義:

連線超時的設定,是對我們應用響應速度的一種把關,客戶往往要求我們的產品在多長時間必須有響應,所以連線超時的設定,可以讓我們發現哪些程式點有響應速度問題,可能是資料庫查詢語句問題,也有可能是程式邏輯死迴圈,再有可能就是資料庫表結構需要最佳化,還有可能是最大連線數到達最大值。

3最大連線數

概述:

最大連線數是指當前連線池中允許建立的最大物理連線數,當到達指定值後,將不允許建立物理連線。和連線超時相對應,當達到最大值後,連線請求將等待,直到池中有空閒連線為止,否則報連線超時錯誤。當使用機制時,會同時存在多個相同連線池,這個時候需要考慮最大數量的設定。

意義:

最大連線數可以有效控制建立物理連線的數量,連線池的大小影響著伺服器資源的佔用情況,若連線池過大,則會長期佔用伺服器可利用資源,若連線池過小,無法滿足現場應用高負載使用壓力。最大連線數的設定應根據TPV觀測資料進行合理配置。

4最小連線數

概述:

      最小連線數是指當前連線池要保留的最小物理連線,其決定未使用超時維護機制的下限,連線池的建立不是根據最小連線數而特意建立,而是根據使用者請求而建立,系統會一直維護最小的連線數目。

意義:

      最小連線數使應用伺服器保持一定數量的物理連線,利用應用伺服器維護機制,合理分配伺服器資源。當應用程式訪問頻繁,但訪問人數少的情況下,最小連線數的合理配置,可以將有效的資源進行充分利用,滿足特定應用需求。

5收集時間

概述:

收集時間是連線池維護機制的核心,是指每次維護連線池的時間間隔。其有兩個維護指標,分別為未使用超時和時效超時,其值應該小於兩個指標中的任何一個。每一次維護週期中,連線池都會將連線池中超時的物理連線關閉,以減少系統佔用資源。

意義:

      合理的收集時間設定,是幫助我們關閉不必要的連線,節省系統資源佔用的有效途徑。收集時間設定不易過大,因為時間間隔過長,會使很多未被使用的物理連線持續佔用資源。若收集時間過小,則頻繁的維護會帶來很多系統開銷,連線池的主要精力都放到了維護上。

6未使用的超時

概述:

      未使用的超時指池中的物理連線空閒未使用的時間間隔,每隔指定時間,系統會為連線標記,幫助收集時間在維護過程中進行關閉。未使用的超時應該小於實效超時時間,並且其以最小連線數為標準,當連線數超過最小連線數時,其才起作用。

意義:

      未使用超時的設定,幫助我們關閉不必要的空閒連線,釋放系統資源,並且減少資料庫開銷。根據現場環境使用情況,我們可以根據系統訪問頻繁程式,來定製合理的未使用超時,如果過小,當訪問頻繁程度大時,總需要重新建立,如果過大,當訪問頻繁程度不大時,連線池又空閒佔用過多。

7時效超時

概述:

      實效超時指關閉物理連線的時間間隔,這個值是指到達指定的時間後,關閉滿足時間條件的物理連線,若這個物理連線未使用,則直接關閉,若這個連線正在使用,則當前事務結束後,關閉此連線。這個值不受最小連線數的影響,若沒有新建立的連線,此機制會關閉連線直到為0

意義:

      時效超時的設定,是為了方式應用程式或者資料庫造成的資料庫連線持續佔用,可能導致的原因包括程式邏輯錯誤,資料庫當機導致的錯誤等。還有一種情況為人為導致,就是若某個使用者持續佔用一個資源不放,會導致其他使用者無法訪問。所以時效超時的設定,是對不合理使用應用,或者連結錯誤等進行強行關閉,保證程式的穩定性和永續性。


lenx整理

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11134849/viewspace-615478/,如需轉載,請註明出處,否則將追究法律責任。

相關文章