O contêiner do Docker é eliminado durante os testes de desempenho

0

Eu preciso entender por que o contêiner docker está sendo eliminado durante o processamento.

Histórico breve:

estamos executando testes de desempenho na máquina RH. (A máquina tem 64GB de RAM, 16 de CPU) depois de 20 horas de corrida, o contêiner está sendo morto pelo kernel.

Estamos executando o java dentro do contêiner e o heap está limitado a 20 GB. (é um processo pesado que indexa arquivos no elasticsearch.)

também monitoramos o consumo de memória dentro da janela de encaixe com ps-eF e heapsize com o Glowroot.

O Max HeapSize é de 6,7 GB, antes de o processo ser eliminado.

ps -eF mostra que RSS é 16977356 (1.7GB)

a saída do dmesg é:

[Mon Nov 12 08:44:10 2018] [ pid ]   uid  tgid total_vm      rss nr_ptes swapents oom_score_adj name
[Mon Nov 12 08:44:11 2018] [ 3406]     0  3406  7811475  4240564    8512        0             0 java
[Mon Nov 12 08:44:11 2018] Out of memory: Kill process 3406 (java) score 264 or sacrifice child
[Mon Nov 12 08:44:11 2018] Killed process 3406 (java) total-vm:31245900kB, anon-rss:16962256kB, file-rss:0kB, shmem-rss:0kB

se eu entendi corretamente, total-vm representa a RAM usada por todos os processados e anon-rss pelo processo que foi eliminado. isso significa que minha máquina deve ter 25 GB de memória livre.

    
por Alex Batt 12.11.2018 / 11:06

1 resposta

0

Memória

Entenda os riscos de falta de memória

É importante não permitir que um contêiner em execução consuma muito da memória da máquina host. Nos hosts Linux, se o kernel detectar que não há memória suficiente para executar funções importantes do sistema, ele lança um OOME ou uma exceção de falta de memória e inicia a eliminação de processos para liberar memória. Qualquer processo está sujeito a morte, incluindo o Docker e outras aplicações importantes. Isso pode efetivamente derrubar todo o sistema se o processo errado for eliminado.

(...)

Limite o acesso de um contêiner à memória

-m or --memory= The maximum amount of memory the container can use. If you set this option, the minimum allowed value is 4m (4 megabyte).

Fontes:

link

    
por 12.11.2018 / 16:21

Tags