簡介
本檔案介紹如何從思科客戶語音入口網站(CVP)語音可延伸標籤語言伺服器(VXML)收集Tomcat的堆轉儲和執行緒轉儲。
必要條件
需求
思科建議您瞭解以下主題:
- CVP
- CVP VXML伺服器
- CVP VXML應用
採用元件
本文中的資訊係根據以下軟體和硬體版本:
- CVP版本11.5
- CVP VXML伺服器11.5
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
問題
方案1.在監控VXML伺服器效能時,您發現它使用4GB記憶體。 您希望在記憶體洩漏崩潰之前知道其根本原因。
案例2.在監控VXML伺服器時,您發現VXML伺服器使用高執行緒(~500),這種情況非常少見。您想瞭解如何分析執行緒使用情況,找出執行緒狀態和佔用更多執行緒的元件/應用程式。
例如:VXML Tomcat佔用4.5GB的總記憶體,如圖所示。
4.5 GB的VXML記憶體
疑難排解
獲取堆轉儲的步驟
步驟1.下載JDK版本(類似於CVP中安裝的版本)
C:\Cisco\CVP\jre\bin>java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) Client VM (build 24.51-b03, mixed mode)
步驟2.將JDK從案頭複製到CVP伺服器。
Download windows JDK exe
Open with 7-Zip
Dump contents into a directory %JDK-EXE%
cmd: cd %JDK-EXE%.rsrc\1033\JAVA_CAB10
cmd: extrac32 111
Now have a tools.zip in directory, open it in 7-Zip
Extract contents into a new directory %JDK-VERSION%
cmd: cd %JDK-VERSION%
cmd: for /r %x in (*.pack) do .\bin\unpack200 -r "%x" "%~dx%~px%~nx.jar"
附註:只需從http://www.oracle.com/technetwork/java/javaee/downloads/index.html下載JDK並在本地資料夾中安裝EXE,然後將JDK從本地電腦複製到CVP。
步驟3.從工作管理員收集VXML伺服器的進程ID(PID)。
步驟4.執行此命令以收集HeapDump。(例如: jmap -dump:file=vxml.hprof <TOMCAT例項的PID)。
C:\jdk1.7.0_80\jdk1.7.0_80\bin>jmap -dump:file=vxml.hprof 1308
Dumping heap to C:\jdk1.7.0_80\jdk1.7.0_80\bin\vxml.hprof ...
Heap dump file created
C:\jdk1.7.0_80\jdk1.7.0_80\bin>
注意:已建立hProf,您可以複製到本地系統並離線監視。
獲取執行緒轉儲的步驟
與堆轉儲相比,執行緒轉儲收集相對容易。
步驟1.連線到使用jVisualVM的<CVP VXML伺服器>:9696(9696是VXML伺服器的預設JMX埠)上的CVP VXML伺服器。
步驟2.按一下右鍵JXM連接和收集執行緒轉儲。
步驟3.此處執行緒轉儲已轉儲到遠端伺服器,可以儲存為檔案並用於進一步分析。