Contents

Introduction

Prerequisites

Requirements

Componentes Utilizados

Problema

Troubleshoot

Etapas para obter o despejo de heap

Etapas para obter o despejo de thread

Introduction

Este documento descreve como coletar despejo de Heap e despejo de Thread para Tomcat do Cisco Customer Voice Portal (CVP) Voice eXtensible Markup Language Server (VXML).

Prerequisites

Requirements

A Cisco recomenda que você tenha conhecimento destes tópicos:

- CVP

- CVP VXML Server

- Aplicações VXML do CVP

Componentes Utilizados

As informações neste documento são baseadas nestas versões de software e hardware:

- CVP versão 11.5

- CVP VXML Server 11.5

The information in this document was created from the devices in a specific lab environment. Todos os dispositivos usados neste documento iniciaram com uma configuração limpa (padrão). Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.

Problema

Cenário 1. Ao monitorar o desempenho do VXML Server, você descobriu que ele usa 4 GB de memória.  Você gostaria de saber a causa raiz do vazamento de memória antes que ele trave.

Cenário 2. Ao monitorar o VXML Server, você descobriu que o servidor VXML usa segmentos altos ( ~ 500), o que é bastante incomum. Você gostaria de saber como analisar o uso do thread e descobrir o estado do thread e o componente/aplicativo que leva mais threads.

Por exemplo: O VXML Tomcat consome 4,5 GB de memória total, como mostrado na imagem.

Memória VXML a 4,5 GB

Troubleshoot

Etapas para obter o despejo de heap

Etapa 1. Faça o download da versão JDK semelhante à versão instalada no 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)

Etapa 2. Copie o JDK do desktop para o servidor 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"

Note: Basta baixar o JDK de http://www.oracle.com/technetwork/java/javaee/downloads/index.html e instalar o EXE na pasta local e copiar o JDK de sua máquina local para o CVP .

Etapa 3. Colete o ID do processo ( PID) do servidor VXML do Gerenciador de tarefas.

Etapa 4. Execute este comando para coletar HeapDump. ( Ex: jmap -dump:file=vxml.hprof <PID OF TOMCAT Instance).

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:O seu hProf é criado e é possível copiar para o sistema local e monitorar offline.

Etapas para obter o despejo de thread

A coleta de despejo de segmentos é relativamente fácil em comparação com o despejo de heap.

Etapa 1. Conecte-se ao CVP VXML Server em <CVP VXML Server>:9696 (9696 é a porta JMX padrão para VXML Server) que usa jVisualVM.

Etapa 2. Clique com o botão direito do mouse em JXM Connection e Collect Thread Dump.

Etapa 3. Aqui, o despejo de thread foi despejado no servidor remoto, onde pode ser salvo como um arquivo e usado para análise posterior.