Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

É importante para um administrador do sistema acompanhar o crescimento de memória do Appserver, observar os períodos do dia mais críticos de utilização dos usuários e saber assim os momentos mais oportunos para troca de rpo ou reinicialização de serviços, ou até para saber quando é o momento de crescer o ambiente (na horizontal) com a disponibilização de novos slaves no balanceamento de carga.

Os recursos do S.O. disponíveis não são flexíveis a ponto de conseguir logar momentos específicos com "pontos personalizados", ou logar em que programas especificamente do ERP o Appserver estava rodando. Pensando nessa necessidade foi desenvolvimento desenvolvido uma nova funcionalidade interna no Appserver que permite logar em um arquivo essas informações de variação de memória, assim como a chave ServerMemoryInfo, porem em um formato que seja facilmente exportado para um aplicativo de planilha eletrônica e conseguir criar um gráfico dessas informações, tornando mais fácil sua leitura.

Uma outra forma de usar esse recurso é junto com a função ShowInfMem, fazendo com que cada chamada especifica no seu programa possa ser logado no arquivo, podendo realizar facilmente o diagnostico dos pontos a serem logados.

Modo de utilização e

...

casos de

...

uso

É necessário que as seguintes chaves de ini sejam ativadas no arquivo appserver.ini:

...

O gráfico mostra metade de um dia em uma operação em um programa que após um alto processamento (também a ser analisado no console.log), o Appserver voltou a alocar o mesmo número de objetos na memória, para então o operador finalizar o ambiente as 18:30. O Appserver, quando realmente não tem mais nenhum usuário no sistema, deve estar com a maioria dos seus pools zerados, ou pode caracterizar algum erro de programação ou sistema. Nesses casos, procure cercar os programas executados nesse ambiente, e isole-os para ter uma noção melhor de onde está ocorrendo o problema.

Observe o gráfico abaixo:

Image Added

Nesse caso real extraído em um cliente, onde o Appserver estava com uma alocação ao final do dia em quase 4GB, foi cercado a rotina de processamento (um JOB de processamento de entrada e saída de estoque) com a função ShowInfMem, e o que foi possível observar era o Appserver após a 7 rodada do JOB passou a ficar muito instável e com altas variações de alocação de objetos entre cada rotina. Com essa informação, houve o trabalho de identificar nos arquivos de console.log o que houve de diferente nesse ponto, sendo possível diagnosticar mais facilmente a partir de que momento começou a ocorrer o problema.

 

Veja também

DebugThreadUsedMemory, ShowInfMem - ADVPL, ShowInfMem, EnableMemInfoCSV