Este original descreve como usar o utilitário de Lista Ps a fim debugar um problema do escape de memória em um servidor do CallManager da Cisco. Os sistemas operacionais de Windows apoiam a utilidade do monitoramento de desempenho que os administradores se usam para ver a informação detalhada sobre o processo CPU e a utilização de memória. Contudo, não captura a utilização de memória para os processos que começaram depois que a utilidade do monitoramento de desempenho começa. Os saques do PsList para encher esta diferença.
Nota: O PsList é um utilitário livre. Você pode transferi-lo de SysInternals .
A Cisco recomenda que você tenha conhecimento destes tópicos:
Sistemas operacionais de Windows
Cisco CallManager
Monitoramento de desempenho de Windows
As informações neste documento são baseadas nestas versões de software e hardware:
Cisco CallManager
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a sua rede estiver ativa, certifique-se de que entende o impacto potencial de qualquer comando.
Consulte as Convenções de Dicas Técnicas da Cisco para obter mais informações sobre convenções de documentos.
O comportamento padrão do PsList é mostrar a informação CPU-orientada para todos os processos que são executado atualmente no sistema local. A informação alistada para cada processo inclui o tempo onde o processo executa, a quantidade de tempo o processo executa em modos do núcleo e do usuário, e a quantidade de memória física que o OS atribui ao processo. O Switches dos dados da linha de comando permite que você ver a informação de processo orientada pela memória, as estatísticas da linha, ou todos os três tipos de dados.
Este é o formato da utilidade:
pslist [-?] [-d] [-m] [-x][-t][-s [n] [-r n]][\\computer [-u username] [-p password]] [name | pid]
Esta lista fornece uma descrição detalhada de cada parâmetro:
-? — Indica as opções apoiadas e as unidades de medida usadas para valores de saída.
- d — Este interruptor tem estatísticas da mostra do PsList para todas as linhas ativas no sistema, e linhas dos grupos com seus próprios processo.
- m — Este interruptor tem a informação orientada pela memória da mostra do PsList para cada processo, um pouco do que o padrão da informação CPU-orientada.
- x — Com este interruptor, o PsList mostra o CPU, a memória, e a informação da linha para cada um dos processos especificados.
- t — Mostra a árvore dos processos.
- [n] s — Faz com que o PsList seja executado em um modo similar a um modo de atualização do gerenciador de tarefa. Pressione a chave de escape para especificar opcionalmente o número de segundos onde executa e aborte este modo.
- r n — Taxa de atualização do modo do gerenciador de tarefa nos segundos (o padrão é 1).
nome — Em vez de alistar todos os processos do corredor no sistema, este parâmetro reduz a varredura do PsList 2 aqueles processos que começam com o processo do nome. Por exemplo, o pslist exp indica estatísticas para todos os processos que começam com o “exp”. Isto inclui o explorador.
- u — Este parâmetro representa o username. Se você quer matar um processo em um sistema remoto e a conta que você está executando dentro não tem privilégios administrativos no sistema remoto, a seguir você deve entrar como um administrador que usa esta opção da linha de comando. Se você não inclui a senha com - a opção p, a seguir o PsList alertam-no para a senha sem ecoar sua entrada ao indicador.
- p — Este parâmetro representa a senha. Esta opção deixa-o especificar a senha de login na linha de comando de modo que você possa usar o PsList dos arquivos de lote. Se você especifica um nome da conta e omite - a opção p, PsList alerta-o interativamente para uma senha.
\ \ computador — Em vez de mostrar a informação de processo para o sistema local, Lista Ps exibe informação para o sistema do Windows 2000 NT especificado. Inclua - o interruptor u com um nome de usuário e senha para entrar ao sistema remoto se suas credenciais de segurança não o permitem obter a informação de contador do desempenho do sistema remoto.
pid — Em vez de alistar todos os processos do corredor no sistema, este parâmetro reduz a varredura do PsList ao processo que tem o processo especificado ID (PID). Por exemplo, o pslist 53 despeja estatísticas para o processo com PID 53.
Termine estas etapas para setup o PsList no servidor do CallManager da Cisco:
Crie um arquivo de lote (memory.bat) com o bloco de notas ou um aplicativo similar. O índice do arquivo de lote contém:
echo %date% %time% >>c:\cron\mem.txt c:\dnld\pslist.exe -m >>c:\cron\mem.tx
Permita o serviço do task scheduler no servidor do CallManager da Cisco.
Selecione o iniciar > programas > ferramentas administrativas > serviços.
Clicar com o botão direito o task scheduler (veja a seta A em figura 1).
Clique o começo (veja a seta B dentro) da caixa emergente.
Figura 1: Serviços
Programe seu arquivo de lote para ser executado periodicamente.
Cisco recomenda um intervalo dos minutos 10. Você pode ajustar este assunto do intervalo à necessidade do problema. Toma somente alguns segundos para ser executado e consequentemente não aumenta a carga.
Clique o começo, aponte aos ajustes, e clique o Control Panel.
Fazer duplo clique tarefas programadas.
Clique em Next.
O clique consulta.
Navegue para selecionar o programa para programar.
Neste caso, o diretório é cron (considera a seta A em figura 2) e o programa é mem.txt (veja a seta B em figura 2).
Figura 2: Selecione o programa para programar
Clique aberto.
Nota: Se você usa o assistente programado da tarefa, verifique propriedades avançadas abertas para ver se há esta tarefa quando eu clico o revestimento e clico então o revestimento para continuar.
Datilografe um nome para esta tarefa.
Clique diário.
Clique em Next.
Selecione o tempo e o dia onde você quer esta tarefa começar.
Clique em Next.
Incorpore o nome e a senha de um usuário. A tarefa é executado como se foi começada pelo usuário.
Clique em Next.
Verifique propriedades avançadas abertas para ver se há esta tarefa quando eu clico o revestimento e clico então o revestimento para continuar.
Clique a programação.
Clique avançado.
Verifique a tarefa da repetição e especifique então o número de minutos ou de horas onde você quer a tarefa repetir.
Clique a APROVAÇÃO duas vezes.
Espere o uso para crescer.
Recolha o log. Para cada um a corrida do PsList, isto é a saída:
Process memory detail for EVOICE-R16-CM1: Name Pid VM WS Priv Priv Pk Faults NonP Page Idle 0 0 16 0 0 1 0 0 System 8 1676 224 24 164 562211 0 0 SMSS 204 5256 376 1076 2760 886 1 6 CSRSS 232 30880 2604 1556 1592 2333 7 61 WINLOGON 256 35580 1296 7084 8800 16883 66 35 SERVICES 284 127396 89808 4032 6636 6713985 622 122 .. .. 13:15:29.35
Nota: Desabilite o trabalho programado quando você termina. Se não, o log enche o disco.
Use o script pslistmem.pl para analisar gramaticalmente o log e para prepend o número do exemplo a cada linha.
#!/usr/bin/perl $inst=0; #init var to count number of instances $tinfo=""; #init var to store date/time info while($_ = <STDIN>){ #if this line contains a timestamp like 11:11:11.11 if (/(\d+:\d+:\d+.\d+)/){ $inst++; #increment the instance counter $tinfo=$_; #save time/date to append to all rows of this instance next; # skip to next line of input } #if this line contains a word followed by at least 8 numbers if (/((\w)(\s)+(\d)+(\s)+(\d)+(\s)+(\d)+(\s)+(\d)+(\s)+(\d)+(\s)+(\d)+(\s)+(\d)+(\s)+(\d)+)/){ tr/\r\n//d; #strip CR LF to keep the date/time on the same line print "$inst\t$_\t$tinfo"; # print instance counter, input line, then date/time for this instance next; # skip to next line of input }
O script prepends o número 1 a todas as linhas no primeiro grupo de saídas do PsList. Prepends o número 2 ao segundo grupo e assim por diante (veja setas A, B e C em figura 2). Igualmente descasca linhas de cabeçalho. Isto permite que você classifique pelo PID e use a primeira coluna para manter as linhas na ordem temporal.
Nota: A fim executar este script Perl, você precisa de transferir um intérprete Perl tal como ActivePerl de www.activestate.com.
Invoque o script pslistmam.pl como esta saída mostra:
cat mem.txt | pslistmem.pl | sort -k 3 >out.txt
Mem.txt e out.txt representam o arquivo de entrada e saída respectivamente para pslistmem.pl. Classifica a saída pelo nome de processo. No arquivo de saída (veja Figure3), a coluna 1 é o número do grupo prepended, a coluna 2 é o nome de processo, a coluna 3 é o processo ID, a coluna 4 é a memória virtual (VM), a coluna 5 é o grupo de funcionamento (WS), a coluna 6 é o contagem de byte privado, e a coluna 7 é o pico do contagem de byte privado. Se você olha as tendências do VM, da WS, e do contagem de byte privado, apresentam-no com uma tendência geral do consumo de memória por um processo específico.
Figura 3: Saída para o script PsListMem.pl