Projeto demonstrativo de estouro de memória (OOM) em um contêiner Docker com Python.
A origem do "rabbit": o projeto originalmente se chamava
teste-rabbit-oom. A referência a coelho vem de um meme visto no Instagram, de um mágico tirando coelhos infinitos da cartola, contrastado com um código em loop ao lado — o coelho infinito da cartola é a metáfora do loop infinito de alocação de memória. Não há nenhuma relação com RabbitMQ.
O script oom.py aloca 20 MB de memória a cada ciclo, imprimindo no log a memória alocada até o momento, até que o limite do contêiner seja atingido e o processo seja encerrado pelo kernel.
.
├── assets/ # Imagem do projeto
├── Dockerfile # Imagem com Python 3.11
├── docker-compose.yml # Serviço com limite de 256 MB
├── oom.py # Script que aloca memória em loop
└── commands.txt # Comandos úteis
sudo docker build -t oom-test-image .sudo docker run --name oom-test --memory="256m" --memory-swap="256m" oom-test-imagesudo docker compose up --buildO contêiner começa a alocar memória e imprime o uso atual a cada ciclo, até estourar o limite:
=== INICIANDO O TESTE DE ESTOURO DE MEMÓRIA (OOM) ===
[0] Alocando 20 MB...
--> Memória alocada até agora: ~20 MB
[1] Alocando 20 MB...
--> Memória alocada até agora: ~40 MB
...
Licenciado sob a MIT License.
