Árvore de páginas

Uma ocorrência do tipo Memory Allocation Failure (ou memory full) é reproduzida no TOTVS | Application Server quando a aplicação solicitou ao Sistema Operacional uma determinada quantidade de memória e o mesmo não conseguiu devolver o endereço correspondente à alocação solicitada.


/*-------------------------------------------------------
THREAD ERROR ([18528], JOB_WS_0100_, THIS)   06/02/2023   17:18:52
Memory Allocation Failure ( 204867 bytes ) in file C:\bamboo\xml-data\build-dir\TP11-OF20310-TECXWIN64\lib_base\stringz.hpp at line 569



 


Possíveis causas


O limite de alocação de memória por aplicação (**) foi atingido.

Neste caso, a soma da memoria alocada por todos os processos em execução no TOTVS | Application Server atingiu o limite de alocação de memoria por aplicação do Sistema Operacional.

Deve ser verificado se:

  • O limite foi atingido, pois um processo especifico entrou em loop e/ou está alocando uma quantidade de memória acima da média (por exemplo, um programa acrescentando muitos dados em um array)
  • Se a quantidade de processos em execução está muito alta, onde cada processo ocupa uma média de X MB de RAM, a partir de NNN processos, fatalmente o limite será atingido
Esgotamento da memória do equipamento (física e/ou virtual)

Caso ocorra de um ou mais programas consumirem toda a memória paginável da máquina, colocando-a em um estado onde o Sistema Operacional não têm mais memoria disponível para alocação.

Este cenário é mais difícil de ser reproduzido e pode ser precedido de perdas significativas de performance em todas as aplicações em execução no equipamento (devido ao uso de memoria virtual), antes de efetivamente a aplicação apresentar a falha de alocação de memória.

Falha de alocação de memória por conta de configuração específica do Sistema Operacional Linux (ulimit -v)

Em ambiente que utilizem o Sistema Operacional Linux, pode haver falha de alocação de memória caso o limite de alocação de memoria por processo - ulimit -v - esteja configurado inadequadamente antes da inicialização do TOTVS | Application Server.


Pode haver esgotamento de memória caso a alocação de memória de stack (ulimit -s) esteja acima de 1024 K (1 MB) e a quantidade de processos em execução seja muito grande.

  • A partir da versão 7.00.090818P a mensagem "Memory full" foi alterada para "Memory Allocation Failure".
  • Os limites de gerenciamento de memória para aplicações podem variar entre os Sistemas Operacionais (Windows/Linux) e plataformas (32 bits e 64 bits ).
    Para mais informações sobre os limites de alocação de memória de aplicações 32 bits, consulte o documento Consumo de memória de aplicação de 32 bits.
  • Sem rótulos