WebSphere 應用服務器性能調優工具5

String node 


					String server 


					String name 


					double throughput 


					double jdbcThroughput 


					double avgResponseTime 


					double avgJdbcResponseTime 


					double avgWaitTime 


					long errorCount 


					double prepStmtCacheDiscardCount 


					long poolSize 


					long maxPoolSize 


					long minPoolSize 


					long usedPool 

 


					EjbEvent: 


					String node 


					String server 


					String beanName 


					String jarName 


					String methodName 


					String beanType 


					double throughput 


					double avgResponseTime 


					long concurrentInvocations 

 


					JcaPoolEvent: 


					String node 


					String server 


					String name 


					double throughput 


					double avgResponseTime 


					double avgWaitTime 


					long errorCount 


					long maxUsagePercentage 


					long poolSize 


					long maxPoolSize 


					long minPoolSize 


					long usedPool 

 


					PerformanceEvent: 


					double changeRateOfServletResponseTime 


					double changeRateOfServletThroughput 


					double changeRateOfWebPoolUsed 

 


					RunTimeEvent: 


					long cpuUsage 


					long heapSize 


					long maxHeapSize 


					long usedMemory 

 


					ProxyEvent: 


					double throughput 


					double proxiedThroughput 


					double localThroughput 


					double responseTime 


					double serverResponseTime 


					long outboundConnectionCount 


					long activeOutboundConnectionCount 


					long failedRequestCount 


					long cacheHitCountValidated 


					long cacheHitCountUnvalidated 


					long cacheMissCount 

 


					ServletEvent: 


					String name 


					String appName 


					double throughput 


					double avgResponseTime 


					long errorCount 


					long webPoolUsedSize 


					String server 


					String node 

 


					SessionEvent: 


					String name 


					long liveCount 


					long avgLifeTime 


					long noRoomForNewSessionCount 


					long affinityBreakCount 


					long timeoutInvalidationCount 


					long activateNonExistSessionCount 


					long cacheDiscardCount 


					String server 


					String node 

 


					ThreadPoolEvent: 


					String poolName ; 


					long maxSize 


					long minSize 


					long poolUsed 


					long poolSize 


					long declaredThreadHungCount 


					long clearedThreadHangCount 


					long concurrentHungThreadCount 


					String server 


					String node 

 


					TransactionEvent: 


					double throughput 


					double avgResponseTime 


					double globalTranResponseTime 


					double localTranResponseTime 


					double rolledbackPercentage 


					long rolledbackCount 


					long globalTimeoutCount 


					long localTimeoutCount

RunTimeEvent 為例,它包含的性能參數有 long cpuUsage long heapSize long maxHeapSize long usedMemory 。所以此規則可以對這四項指標進行監控和預警。從後面的代碼中我們可以清晰地看到,規則通過語句“RunTimeEvent($cpuUsage:cpuUsage,$usedMemory:usedMemory,$maxHeapSize:maxHeapSize);”對這幾個變量進行了賦值,然後分別對 CPU 和內存的使用情況作了判斷並採取了相應的預警行為。這些預警

行為將以警告(Alert)的形式在趨勢視圖界面中展現出來,同時也會在數據視圖中的 Alert 頁面出現,共分析和參考。如下圖所示。

20 規則 —— 警告



規則編輯器還提供了語法檢查功能,來確保您的自定義規則可以正常運行。只需點擊規則編輯器左上角的語法檢查按鈕即可。如果有規則中存在語法錯誤,編輯器將給與提示。如下圖所示。

21. 規則編輯器 —— 語法檢查


當通過語法檢查以後,您就可以通過點擊左上角的保存按鈕來使您的規則生效。此規則一旦生效,在以後的監控過程中就會對您所定義的性能參數進行監控和預警,並執行相應的行為。

總之,規則引擎模塊為 PTT 工具提供了一個用戶可以擴展和編程的接口,這可以讓 PTT 工具的監控結果更加符合用戶的環境和需求。因為沒有一個規則可以放之四海而皆準,所以用戶越了解自己的應用環境,指定符合自己環境的規則,PTT 工具就可以越好地產生更加貼近實際環境的預警,從而在第一時間捕獲異常。

WebSphere Application Server Performance Tuning Toolkit (PTT) 不但可以對服務器進行性能監控,還可以快速地幫助用戶進行服務器調優和故障診斷,並對監控的數據進行整體的總結和生成報表。接下來我們就通過實例展示如何使用 PTT 工具進行性能調優。

調整參數

環境搭建好後,我們需要對服務器進行調優使服務器達到最優的性能。PTT 工具提供兩種服務器調優的方式:通過調整參數頁面和執行調優腳本。

調整參數頁面是一個比較直觀的列表頁面,它可以幫助用戶檢查和更新服務器的 JVMWeb 容器、線程池等設置。在這個頁面中,用戶不但可以修改單個服務器的配置,還可以同時修改所有服務器的配置,從而減少用戶重複登錄服務器控制台頁面的時間。

為了節省啟動時間,PTT 工具默認不會讀取服務器的參數配置。用戶可以在 Tuning Parameters 頁面的右上角點擊“Retrieve Config from server”按鈕抽取指定的服務器配置。抽取成功後,頁面下方的服務器表格將顯示服務器的詳細配置信息。當然,用戶也可以選中所有服務器同時抽取。如圖 1 所示:

1. 抽取服務器配置


您可以在調整參數頁面中修改和查看以下信息:

目標服務器的服務器名稱和節點名稱;JVM 的初始 HeapSize、最大 HeapSizeJVM 參數和是否啟用 VerboseGCWeb 容器池的最小和最大值、Session 超時時間;Orb 線程池的最小和最大值;JMS 線程池的最小和最大值;默認線程池的最小和最大值;HTTS HTTPS Keep Alive 值和最大請求數。

在抽取服務器配置之後,用戶就可以更新服務器的配置了,被修改的參數值將被顯示成紅色。點擊右上角的“Update Config from server”按鈕。如圖 2 所示:

2. 更新服務器配置


這裡您可以放心地修改每一個參數,因為,PTT 工具會幫助我們檢測修改值是否有效。比如是否是數值,數值是否大於零。如果修改類型錯誤,PTT 工具會報出相應的錯誤提示,確保用戶修改的服務器參數都是正確無誤的。如圖 3 所示:

3. 修改配置錯誤提示


利用調整參數頁面進行服務器調優的好處是快速、準確。當服務器數量非常多的時候,一個頁面就可以同時修改多項參數,並提供正確性檢測。但調整參數頁面也有一些不足,就是用戶只能調整一些規定好的參數,對於一些特定的參數和較為複雜的調優設置,調整參數頁面就做不到了。

不過沒關係,PTT 工具還提供另一種調優方式,我們可以通過執行 wsadmin 腳本的方式進行特殊或者複雜的配置調優。腳本頁面位於 PTT 工具的左下角,它和拓撲結構頁面位於同一個標籤,點擊不同的標籤可以相互切換。如圖 4 所示:

4. 切換腳本頁面


腳本頁面提供三個默認的調優腳本:manageResource.py 是用來管理資源的,tuneResource.py 是用來調優資源的,如調整連接數或數據源等,tuneServer.py 是用來調整服務器參數的。在 tuneServer.py PTT 給用戶提供了許多較為普遍的調優方案,它可以根據您的操作系統和拓撲結構對您的環境進行細緻的調優,如清單 1 所示:

清單 1. JVM 參數調優

os = registry.getProperty(“os.name”)

if (os.find(“Windows”) > -1):

genericArgs = genericArgs + IBMJDKoptions

elif (os.find(“AIX”) > -1):

genericArgs = genericArgs + IBMJDKoptions

elif (os.find(“Linux”) > -1):

genericArgs = genericArgs + IBMJDKoptions

elif (os.find(“SunOS”) > -1):

genericArgs = genericArgs + SUNJDKoptions

elif (os.find(“HP-UX”) > -1):

genericArgs = genericArgs + HPJDKoptions

elif (os.find(“z/OS”) > -1):

genericArgs = genericArgs + IBMJDKoptions

minHeap = 768

maxHeap = 768

elif (os.find(“OS/400”) > -1):

genericArgs = genericArgs + ISerisJDKoptions

maxHeap = 0

用戶也可以打開此腳本進行自定製的修改。右鍵腳本選擇 Run Script 執行。在 Console 頁面中同樣可以看到執行過程和結果。如圖 5-6 所示:

5. 執行調優腳本

以下文章點擊率最高

Loading…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營