Introduction
Este documento descreve como trabalhar com processos zombie vistos no CUCM, IMnP e outros produtos Cisco UC quando conectado usando a CLI do administrador.
Prerequisites
Requirements
A Cisco recomenda que você tenha conhecimento do uso da CLI do administrador nos servidores UC:
- Cisco Unified Communications Manager (CUCM)
- Cisco Unified Instant Messaging and Presence Server (IMnP)
- Cisco Unity Connection Server (CUC)
Componentes Utilizados
Este documento não se restringe a versões de software e hardware específicas.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Informações de Apoio
Os servidores de Comunicações Unificadas são essencialmente aplicativos baseados em SO Linux. Quando um processo morre no Linux, nem todos são removidos da memória imediatamente, seu descritor de processo (PID) fica na memória, o que leva apenas uma pequena quantidade de memória. Esse processo se torna um processo inoperante e o pai do processo é notificado de que o processo filho morreu. O processo pai deve ler o status de saída do processo inoperante e removê-lo completamente da memória. Quando isso é feito usando a chamada do sistema wait(), o processo zombie é eliminado da tabela de processos. Isso é conhecido como colher o processo de zumbi. Isso geralmente acontece muito rapidamente, portanto, você não verá processos zumbis se acumulando no seu sistema.
No entanto, às vezes os processos pai não fazem a chamada de sinal wait() e o processo filho vai ficar na memória até ser limpo. Em outras palavras, um processo zombie é um processo cuja execução está concluída, mas ainda tem uma entrada na tabela de processos, pois o processo pai ainda precisa ler o status de saída do filho.
Verifique os zumbis usando o UCOS Admin CLI
Na CLI, a presença de zumbis pode ser verificada usando o comando show process load.
Solucione problemas/limpe os zumbis manualmente
Além da pequena memória usada para manter o PID como mencionado anteriormente, os processos da Zombie não usam nenhum recurso do sistema, mas mantêm seu ID de processo. Nos servidores UC, a memória fornecida ao sistema é grande, portanto, a possibilidade de o sistema ficar sem PIDs para outros processos devido à presença de Zombies é muito menor.
Os zumbis podem ser deixados no sistema, onde são automaticamente eliminados na próxima reinicialização do sistema.
No entanto, se houver um requisito para eliminar os zumbis no sistema, você pode seguir uma determinada linha de ação
Reinicie o serviço apropriado
É necessário definir o processo em causa e, por conseguinte, o serviço que vaza o processo infantil.
- Na saída CLI, faça a saída de show process list e show process list detail.
- Copie as saídas em um editor de texto e procure o texto 'defunct' no arquivo.
- Anote as IDs do processo (pid) e as IDs do processo pai (ppid) para esses processos desativados.
- Rastreie o ppid no documento para localizar o processo associado.
Exemplo 1
CUCM: Quando procuro o texto 'defunct' no arquivo, vejo que há um PID 22908 que está inoperante.
O ppid para esse PID é 29815. Ao rastrear 29815 no documento, vejo que o processo está relacionado ao serviço AMC.
Solução - Reinicie o AMC (Alert Manager and Collector Service) neste nó limpa o Zombie.
Exemplo 2
CUCM: Quando o arquivo do texto inoperante é pesquisado, vejo que há um PID 10025 que está inoperante.
O ppid para esse PID é 26732. Ao rastrear 26732 no documento, você vê que o processo está relacionado ao Serviço de Coleta de Rastreamento.
Solução - Reinicie o Serviço de Coleta de Rastreamento neste nó limpa o Zombie.
Exemplo 3
CUCM: Quando o arquivo para o texto inoperante é pesquisado, você vê que há um PID 23959 que está inoperante.
O ppid para esse PID é 26764. Ao rastrear 26764 no documento, vejo que o processo está relacionado ao serviço de Repositório CDR (cdrrep)
Solution - Reinicie o CDR Repository Service limpa esse Zombie.
Exemplo 4
CUC: Quando o arquivo para o texto inoperante é pesquisado, você vê que há três PIDs 325, 370, 387 que estão inoperantes.
O ppid para todos esses PIDs é 7827. Ao rastrear o 7827 no documento, você vê que o processo está relacionado ao serviço Connection File Syncer.
Solution - Reiniciar o serviço Connection File Syncer limpa os zumbis.
Exemplo 5
IMnP: Quando o arquivo para o texto inoperante é pesquisado, você vê que há um PID 1806 que está inoperante.
O ppid para esse PID é 1775. Ao rastrear 1775 no documento, você vê que o processo é uma conexão SFTP para outro nó IMnP no mesmo cluster.
Solução - No IMnP, os processos SSH padrão de propriedade do SFTP podem ser vistos. Elas foram consideradas superficiais e podem ser removidas por uma reinicialização do servidor.
Reinicie o servidor.
Uma reinicialização do servidor em questão limpa todas as entradas obsoletas na tabela de processos e , consequentemente, limpa os zumbis no sistema.
Matar o processo pai
A partir do Linux, você não pode matar os processos zombie da forma como os processos normais são mortos com o sinal SIGKILL — os processos zombie já estão mortos. No entanto, você pode matar o processo pai. Os comandos usados nesse cenário são:
kill -9 <ppid>
Entre em contato com o TAC para executar essa solução alternativa. Assegure-se de ter cuidado ao encerrar o processo principal para garantir que nenhum serviço crítico seja interrompido repentinamente.
Verificar
Depois que os zumbis tiverem sido limpos, use o mesmo comando show process load para verificar a contagem de zumbis.