Introdução
Este documento descreve os fundamentos do uso de CPU/Memória/Arquivos em sistemas StarOS e como solucionar problemas quando o problema ocorrer.
Pré-requisitos
Requisitos
A Cisco recomenda que você tenha conhecimento destes tópicos:
Componentes Utilizados
Este documento não se restringe a versões de software e hardware específicas.
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 rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Informações de Apoio
O subsistema de gerenciamento de recursos atribui um conjunto de limites de recursos para cada tarefa no sistema. Ele monitora o uso de recursos de cada tarefa para garantir que ela permaneça dentro do limite. Se uma tarefa tiver excedido seus limites, ela notificará aos operadores por meio de interceptações Syslog ou SNMP (Simple Network Management Protocol). Este documento explica como ele funciona e quais registros você deve coletar para Troubleshooting adicional.
Você pode verificar as informações básicas na saída do comando show task resources interface de linha de comando (CLI).
Os limites de recursos alocados não podem ser alterados pelo usuário.
Os limites de recursos alocados são diferentes com base na versão do StarOS.
Este é um exemplo de SNMP que ocorre quando o problema está presente no sistema:
Mon Aug 26 11:32:19 2013 Internal trap notification 1221 (MemoryOver) facility sessmgr instance 16 card 1 cpu 0 allocated 204800 used 220392
Mon Aug 26 11:32:29 2013 Internal trap notification 1222 (MemoryOverClear) facility sessmgr instance 16 card 1 cpu 0 allocated 1249280 used 219608
Fri Dec 20 13:52:20 2013 Internal trap notification 1217 (MemoryWarn) facility npudrv instance 401 card 5 cpu 0 allocated 112640 used 119588
Fri Dec 20 14:07:26 2013 Internal trap notification 1218 (MemoryWarnClear) facility cli instance 5011763 card 5 cpu 0 allocated 56320 used 46856
Wed Dec 25 12:24:16 2013 Internal trap notification 1220 (CPUOverClear) facility cli instance 5010294 card 5 cpu 0 allocated 600 used 272
Wed Dec 25 12:24:16 2013 Internal trap notification 1216 (CPUWarnClear) facility cli instance 5010294 card 5 cpu 0 allocated 600 used 272
Wed Dec 25 17:04:56 2013 Internal trap notification 1215 (CPUWarn) facility cli instance 5010317 card 5 cpu 0 allocated 600 used 595
Wed Dec 25 17:05:36 2013 Internal trap notification 1216 (CPUWarnClear) facility cli instance 5010317 card 5 cpu 0 allocated 600 used 220
Monitoramento de uso da CPU
A interceptação SNMP CPUWarn é gerada quando o uso da cpu do proclet atinge 90% de sua alocação.
Uma vez que CPUWarn é gerado, CPUOver é gerado quando o uso da cpu do proclet atinge mais de 50% de sua alocação do valor avisado.
Se o uso da cpu do proclet atingir seu uso alocado antes de o CPUWarn ser gerado, o CPUOver será gerado.
CPUWarn/Over é cancelado quando o uso volta para 50% do alocado.
Exemplo:
Se a alocação do sistema para a instalação for 60, quando o valor atingir 54, o sistema gerará uma armadilha de SNMP (CPUWarn).
Como a alocação do sistema para a instalação é 60, quando o uso da cpu do proclet alcança mais de 50% de sua alocação a partir do valor avisado, nesse cenário, quando o sistema atinge o valor 84 (54+30), o sistema gera uma armadilha de SNMP (CPUOver).
Monitoramento de Uso de Memória
MemoryWarn é gerado quando o uso de memória do proclet atinge sua alocação.
MemoryOver é gerado quando o uso de memória do proclet alcança mais do que seu alocado + 15MB, ou o dobro de sua alocação.
MemoryWarn/MemoryOver são apagados quando o uso volta para 95% de sua alocação.
Exemplo:
Se a alocação do sistema para a instalação for de 60 MB, para qualquer valor maior que 60 MB, o sistema gerará um aviso de memória de interceptação SNMP.
Como a alocação do sistema para a instalação é de 60 MB, quando a utilização da memória da tarefa atinge 75 MB, o sistema gera MemoryOver de interceptação SNMP.
Monitoramento de uso de arquivos
Arquivos indica o número de arquivos abertos ou o descritor de arquivos que o processo está usando.
Não há nenhuma interceptação SNMP implementada para o uso de arquivos, mas a mensagem de registro é gerada para o estado over/clear.
O excesso de log é gerado quando o uso do arquivo do proclet atinge mais do que o alocado + 10% do alocado.
O log limpo é gerado quando o uso do arquivo do proclet volta para 90% de sua alocação.
2013-May-28+14:16:18.746 [resmgr 14517 warning] [8/0/4440 <rmmgr:80>
_resource_cpu.c:3558] [software internal system syslog] The task cli-8031369 is over its
open files limit. Allocated 2000, Using 2499
Status em mostrar recurso de tarefa
O campo de status na saída do comando show task resources CLI tem critérios diferentes.
Na imagem abaixo, WARN é avisado e ALARM está acima do status.
Troubleshooting
Para uso da CPU
Quando o sistema começa a gerar interceptações SNMP relacionadas à CPU, colete as seguintes informações durante o problema ativo:
show task resources
Verificar se algum proclet entra no estado de aviso/sobre
show task resource max
Verificar o uso máximo em vez do uso atual
Verificar se há algum evento CPUWarn/Over
Observação: Este é um comando oculto/de teste. Consulte a Documentação para saber como ativar e entrar no modo de teste no StarOs.
Esse comando não afeta o serviço e pode ser executado na produção.
show profile card <card number> cpu <cpu number> depth <value>
Este é o chamado Background Profiler.
O Background Profiler é sempre em funcionamento, mesmo em produção, com um período de amostragem fixo de 1 s.
Podemos saber qual PC consome recursos da CPU, por placa/cpu/instalação/instância, etc.
É recomendável especificar a profundidade em vez de usar o valor padrão 1.(por exemplo, 4)
Para uso de memória
Quando o sistema começar a gerar interceptações SNMP relacionadas à memória, colete as seguintes informações durante o problema ativo:
show task resources
Verificar se algum proclet entra no estado de aviso/sobre
show task resource max
Verificar o uso máximo em vez do uso atual
show snmp trap history
Verifique se há algum evento MemoryWarn/Over
show logs
Verifique se há algum aviso/erro relatado pelo resmgr.
Observação: Este é um comando oculto/de teste. Consulte a Documentação para saber como ativar e entrar no modo de teste no StarOs.
Esse comando não afeta o serviço e pode ser executado na produção.
show messenger proclet facility <name> instance <x> heap
Verificar o uso de heap do proclet
Observação: Este é um comando oculto/de teste. Consulte a Documentação para saber como ativar e entrar no modo de teste no StarOs.
Esse comando não afeta o serviço e pode ser executado na produção.
show messenger proclet facility <name> instance <x> system heap
Verificar informações de heap do sistema para conter o processo
Dica: obtenha várias saídas de comandos relacionados à cpu a cada 10 minutos e 4 saídas antes de elevar a solicitação de serviço para o TAC.
Para uso de arquivos
O limite real de arquivos no nível do SO é definido acima do limite de uso de arquivos no StarOs.
Exemplo de Proxy de Diâmetro de tarefa (diaproxy), o limite de nível de SO é 8192, o processo pode consumir até 8192, enquanto o limite de arquivos é definido como 1000 no StarOS.
asr5500:card3-cpu0# ps -ef | grep diam
root 5934 4555 0 Jul02 ? 00:07:52 diamproxy --readypipe 8 --limit_mode 8 --card_number 3 --cpu_number 0 --master_spc 3
asr5500:card3-cpu0# cat /proc/5934/limits | grep open
Max open files 8192 8192 files
[local]asr5500-2# show task resources facility diamproxy all
Friday July 11 10:05:54 JST 2014
task cputime memory files sessions
cpu facility inst used allc used alloc used allc used allc S status
----------------------- --------- ------------- --------- ------------- ------
3/0 diamproxy 2 0.3% 90% 22.83M 250.0M 216 1000 -- -- - good
8/0 diamproxy 1 0.4% 90% 22.71M 250.0M 69 1000 -- -- - good
Há também um limite de nível de CPU, verifique-o também e você poderá usá-lo se tiver o suficiente disponível.
[local]ASR5500# show cpu info card 1 cpu 0
Card 1, CPU 0:
Status : Active, Kernel Running, Tasks Running
Load Average : 0.26, 0.39, 0.44 (1.78 max)
Total Memory : 32768M (16384M node-0, 16384M node-1)
Kernel Uptime : 3D 22H 11M
Last Reading:
CPU Usage All : 0.1% user, 0.3% sys, 0.0% io, 0.0% irq, 99.6% idle
Node 0 : 0.1% user, 0.3% sys, 0.0% io, 0.0% irq, 99.5% idle
Node 1 : 0.1% user, 0.2% sys, 0.0% io, 0.0% irq, 99.7% idle
Processes / Tasks : 185 processes / 29 tasks
Network : 0.326 kpps rx, 0.912 mbps rx, 0.208 kpps tx, 3.485 mbps tx
File Usage : 1792 open files, 3279141 available
Memory Usage : 1619M 4.9% used (1209M 7.4% node-0, 409M 2.5% node-1)
Quando disponível se tornar menor que 256, esta mensagem de aviso será gerada:
event 14516
user_resource_cpu_cpu_low_files(uint32 card, uint32 cpu, uint32 used, uint32 remain)
"The CPU %d/%d is running low on available open files. (%u used, %u remain)"
warning
software internal system critical-info