Sommario

Introduzione

Prerequisiti

Requisiti

Componenti usati

Problema

Risoluzione dei problemi

Passaggi per ottenere il dump dell'heap

Passaggi per ottenere il dump del thread

Introduzione

In questo documento viene descritto come raccogliere i dump heap e dei thread per Tomcat da Cisco Customer Voice Portal (CVP) Voice eXtensible Markup Language Server (VXML).

Prerequisiti

Requisiti

Cisco raccomanda la conoscenza dei seguenti argomenti:

- CVP

- Server VXML CVP

- Applicazioni VXML CVP

Componenti usati

Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:

- CVP versione 11.5

- CVP VXML Server 11.5

Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.

Problema

Scenario 1. Durante il monitoraggio delle prestazioni del server VXML è stato rilevato che utilizza 4 GB di memoria.  Si desidera conoscere la causa principale della perdita di memoria prima che si arresti in modo anomalo.

Scenario 2. Durante il monitoraggio del server VXML, è stato rilevato che il server VXML utilizza thread elevati ( ~ 500), il che è piuttosto insolito. Si desidera sapere come analizzare l'utilizzo dei thread e individuare lo stato del thread e il componente/applicazione che richiede più thread.

Ad esempio: VXML Tomcat utilizza 4,5 GB di memoria totale, come illustrato nell'immagine.

Memoria VXML a 4,5 GB

Risoluzione dei problemi

Passaggi per ottenere il dump dell'heap

Passaggio 1. Scaricare la versione JDK simile alla versione installata in 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)

Passaggio 2. Copiare JDK dal desktop al server 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"

Nota: È sufficiente scaricare JDK da http://www.oracle.com/technetwork/java/javaee/downloads/index.html e installare EXE nella cartella locale e copiare JDK dal computer locale a CVP.

Passaggio 3. Raccogliere l'ID processo ( PID) del server VXML da Gestione attività.

Passaggio 4. Eseguire questo comando per raccogliere HeapDump. (ad esempio: jmap -dump:file=vxml.hprof <PID DELL'istanza TOMCAT).

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>

Nota:il profilo hProf viene creato ed è possibile copiarlo sul sistema locale e monitorarlo in modalità non in linea.

Passaggi per ottenere il dump del thread

La raccolta di dump del thread è relativamente semplice rispetto al dump dell'heap.

Passaggio 1. Connettersi al server VXML CVP in <server VXML CVP>:9696 (9696 è la porta JMX predefinita per il server VXML) che utilizza jVisualVM.

Passaggio 2. Fare clic con il pulsante destro del mouse su JXM Connection e selezionare Thread Dump.

Passaggio 3. In questo caso viene eseguito il dump del thread nel server remoto, dove può essere salvato come file e utilizzato per ulteriori analisi.