Introdução
Este documento descreve o procedimento para solucionar problemas de utilização de memória de alta permuta com o Cisco Policy Suite (CPS).
Pré-requisitos
Requisitos
A Cisco recomenda que você tenha conhecimento destes tópicos:
Observação: a Cisco recomenda que você tenha acesso raiz privilegiado à CLI do CPS.
Componentes Utilizados
As informações neste documento são baseadas nestas versões de software e hardware:
- CPS 20.2
- Unified Computing System (UCS)-B
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 espaço de permuta no Linux é usado quando a quantidade de memória física (RAM) está cheia. Se o sistema precisar de mais recursos de memória e a RAM estiver cheia, as páginas inativas na memória serão movidas para o espaço de troca. Embora o espaço de troca possa ajudar as máquinas com uma pequena quantidade de RAM, ele não deve ser considerado um substituto para mais RAM. O espaço de permuta está localizado nos discos rígidos, que têm um tempo de acesso mais lento do que a memória física. O espaço de permuta pode ser uma partição de permuta dedicada (recomendável), um arquivo de permuta ou uma combinação de partições de permuta e arquivos de permuta.
Nos anos anteriores, a quantidade recomendada de espaço de troca aumentou linearmente com a quantidade de RAM no sistema. No entanto, os sistemas modernos geralmente incluem centenas de gigabytes de RAM. Como consequência, o espaço de troca recomendado é considerado uma função da carga de trabalho da memória do sistema, não da memória do sistema.
A troca de memória é um método de recuperação de memória em que o conteúdo da memória que não está em uso no momento é trocado para um disco para tornar a memória disponível para outros aplicativos ou processos. O estado exato ou a "página" da memória é copiada no disco para tornar os dados contíguos e fáceis de restaurar posteriormente.
Como a memória virtual, o espaço de troca é uma memória secundária. Ele é usado pelo Sistema Operacional (SO) quando não há memória física disponível para execução posterior dos processos. Se o sistema operacional enfrentar uma situação em que precisa de memória, mas a RAM está cheia, ele move as páginas inativas da RAM para trocar a memória.
Para verificar o espaço de swap livre disponível em sua máquina, você pode usar o comando free.
[root@dc1-qns01 ~]# free -m
total used free shared buff/cache available
Mem: 15876 4918 7750 792 3207 9987
Swap: 4095 0 4095
[root@dc1-qns01 ~]#
Problema
Uma porcentagem maior de uso de troca é normal quando os módulos provisionados fazem uso intenso do disco. O alto uso da troca deve ser um sinal de que o sistema sofre pressão de memória.
Esse alarme é gerado sempre que a memória de troca disponível na máquina virtual (VM) é menor do que o valor limite configurado.
Além disso, o uso alto de memória de troca é observado na VM pcrfclient01 no início do evento de resiliência. O diagnóstico falha após executar o diagnostic.sh devido a um problema de memória de troca baixa na VM pcrfclient.
Checking swap space for all VMs...
Checking swap memory usage on pcrfclient01...[FAIL]
Swap usage is 1835 MB. This will likely lead to a slowdown in your system!
Please ensure your memory is provisioned properly.
If systems memory usage is no longer high, you can reset swap with: swap2ram.sh
Condição: O diagnóstico falha após executar o diagnostic.sh devido a um problema de memória de troca baixa na VM pcrfclient.
Procedimento para resolver problemas de utilização de memória de alta troca com o CPS
Abordagem 1.
A solução para alto uso de memória de troca é observada na VM pcrfclient01 no momento do evento de resiliência.
1. Efetue login na VM pcrfclient e verifique a memória do disco usando o comandodu -sh *.
2. Verifique /var/lib/carbon/whisper/cisco/quantum o uso de memória no diretório. Se for observado um aumento no uso de memória, o problema ocorre devido aos arquivos de estatísticas.
3. Para recuperar memória, exclua os arquivos de estatísticas (.wsp) ou aumente a memória de disco da VM.
4. Para recuperar a memória, delete as estatísticas manualmente da pasta /var/lib/carbon/whisper/cisco/quantum ou delete as estatísticas usando estas etapas:
- Execute
df –h o comando e anote os espaços de disco.
- Execute estes comandos:
#du -h --max-depth=0 /var/lib/carbon/whisper/cisco/quantum/qps
#monit stop grafana-server
#monit stop carbon-cache
#vi /etc/carbon/storage-schemas.conf
- Atualize o período de retenção (de 90 dias para 30 dias) localizado no final do arquivo. Isso resulta em um período de retenção mais agressivo.
Mais antigo - retenções: 10s:1d,60s:90d
Atualização para - retenções: 10s:1d,60s:30d
- Após a atualização do período de retenção, execute estes comandos:
#monit start carbon-cache
#monit start grafana-server
Observação: como alternativa, você pode usar systmctl start/stop/restart o comando em vez do monit start/stop/restart comando.
- Crie um arquivo chamado resize.sh e adicione-o.
#monit stop carbon-cache
#cd /var/lib/carbon/whisper/cisco/quantum/qps
#find ./ -type f -name '*.wsp' -exec whisper-resize --nobackup {} $1 \;
#chown -R carbon:carbon *
#monit start carbon-cache
#monit restart grafana-server
- Adicione as permissões necessárias usando o comando
chmod 777 resize.sh.
- Executar
./resize.sh "updated_retention_value"
Comando de exemplo: #./resize.sh "10s:1d 60s:30d"
- Quando o script estiver concluído, execute estes comandos para confirmar se a quantidade de dados foi reduzida pela comparação entre o resultado anterior e o atual.
#run df –h: disk space should reduce or less than previous result
#du -h --max-depth=0 /var/lib/carbon/whisper/cisco/quantum/qps
- Verifique se o Grafana exibe as estatísticas dos últimos 30 dias e não mais de 30 dias. (o período de retenção atualizado é de 30 dias).
Abordagem 2.
Recomendação geral para resolver a utilização de memória de alta troca.
Para limpar a memória de troca do sistema, basta desligar e religar a troca. Isso move todos os dados da memória de troca de volta para a RAM. Isso também significa que você precisa ter certeza de que tem a RAM para suportar essa operação. Uma maneira fácil de fazer isso é executar o free -m para ver o que é usado na troca e na RAM. Depois de desligá-la, você pode esperar um tempo arbitrário (30 segundos ou mais) para que a operação seja concluída e, em seguida, ligar novamente a troca. Isso limpa o cache da memória de troca e o reativa. Aqui estão todos os comandos que você precisa.
1. Verifique o uso do espaço de troca: # free -m
2. Desabilitar troca: # swapoff -a
Aguarde aproximadamente 30 s. Execute free -m para ver a quantidade de troca usada/disponível diminuir com o tempo.
3. Habilitar troca:# swapon -a