Estou recebendo este erro enquanto a minha aplicação está rodando:
ERROR: out of memory
Detail: Failed on request of size 8.
Sendo que a jvm está setada com 6gigas.
Sendo que está aplicação tem duas threads que ficam rodando em loop infinito e uma delas fica fazendo várias requisições sockets.
Esqueci de colocar uma informação importante.
A segunda thread, que fica fazendo vários sockets, gera várias sub-threads e são essas que fazem os sockets e atualizações no banco de dados.
robinsonbsilva
Jovem, qualquer loop infinito travará …ou seja, consumirá os recursos da JVM.
Se possível, ao invès de um looping crie threads para executar a tarefa de tempo em tempo, fazendo um escalonamento.
Imagina só hein, consumir 6 GB de memória…rs
E vc configurou corretamente os parametros de memória da JVM??
Como fazer essas threads executar de tempo em tempo? Sendo que tem que ser o mais rápido o possível, se for possível a cada 1ms, por isso eu tenho esses loops infinitos.
Jedi_FeniX
Achei outra coisa que pode ajudar a entender o erro.
Procurando um motivo para o erro achei isso nos logs do banco de dados:
BRDTERROR: out of memory
Operator class cache: 8192 total in 1 blocks; 3848 free (0 chunks); 4344 used
PL/PgSQL function context: 8192 total in 1 blocks; 2472 free (9 chunks); 5720 used
Rendezvous variable hash: 8192 total in 1 blocks; 3848 free (0 chunks); 4344 used
PLpgSQL function cache: 24328 total in 2 blocks; 5904 free (0 chunks); 18424 used
Record information cache: 8192 total in 1 blocks; 1800 free (0 chunks); 6392 used
TopTransactionContext: 8192 total in 1 blocks; 7312 free (0 chunks); 880 used
ExecutorState: 8192 total in 1 blocks; 6832 free (0 chunks); 1360 used
ExprContext: 8192 total in 1 blocks; 8176 free (0 chunks); 16 used
SPI Exec: 8192 total in 1 blocks; 7992 free (0 chunks); 200 used
ExecutorState: 73856 total in 5 blocks; 26064 free (5 chunks); 47792 used
TIDBitmap: 24576 total in 2 blocks; 2800 free (8 chunks); 21776 used
ExprContext: 0 total in 0 blocks; 0 free (0 chunks); 0 used
ExprContext: 0 total in 0 blocks; 0 free (0 chunks); 0 used
ExprContext: 0 total in 0 blocks; 0 free (0 chunks); 0 used
ExprContext: 8192 total in 1 blocks; 8160 free (0 chunks); 32 used
AggContext: 8192 total in 1 blocks; 8104 free (0 chunks); 88 used
TupleHashTable: 8192 total in 1 blocks; 5704 free (0 chunks); 2488 used
ExprContext: 0 total in 0 blocks; 0 free (0 chunks); 0 used
ExprContext: 0 total in 0 blocks; 0 free (0 chunks); 0 used
ExprContext: 0 total in 0 blocks; 0 free (0 chunks); 0 used
SPI Proc: 8192 total in 1 blocks; 6632 free (2 chunks); 1560 used
MessageContext: 8192 total in 1 blocks; 7072 free (0 chunks); 1120 used
CFuncHash: 8192 total in 1 blocks; 4936 free (0 chunks); 3256 used
MbProcContext: 1024 total in 1 blocks; 928 free (7 chunks); 96 used
smgr relation table: 8192 total in 1 blocks; 2808 free (0 chunks); 5384 used
TransactionAbortContext: 32768 total in 1 blocks; 32752 free (0 chunks); 16 used
Portal hash: 8192 total in 1 blocks; 3912 free (0 chunks); 4280 used
Isso é pode estar acontecendo, porque toda vez que eu vou ao banco eu abro uma conexão e fecho?