Middle
Mis juhtub konteineriga, kui mälu limiit on ületatud?
sobes.tech AI
Vastus AI-lt
Kui Docker konteineri määratud mälu limiit ületatakse, toimuvad järgmised peamised sündmused:
- OOM (Out of Memory) sündmus: Operatsioonisüsteemi kernel tuvastab, et protsess konteineris üritab eraldada mälu, mis ületab määratud limiidi.
- Signaal Killed: Kernel saadab protsessile konteineris signaali
SIGKILL. Seda signaali ei saa konteineris töötav rakendus kinni püüda ega ignoreerida. - Konteineri lõpetamine: Konteineris olev protsess lõpetatakse sunniviisiliselt. Docker demon tuvastab, et konteineri peamine protsess on lõppenud, ja muudab konteineri staatuse
Exited-ks. - Väljundkood: Konteiner lõpetab töö mittetühja väljundkoodiga (tavaliselt 137), mis näitab, et see lõpetati sunniviisiliselt signaali abil.
Tõenäolised tagajärjed rakendusele ja süsteemile:
- Konteineris töötav rakendus lõpetab ootamatult.
- Kui on seadistatud taaskäivituspoliitika (
restart policy), proovib Docker konteinerit uuesti käivitada. - Logidesse konteineris ja/või hostis registreeritakse OOM-i sündmus ja konteineri lõpetamine.
Näide mälu limiidi seadistamisest:
# Docker Compose näide
services:
myapp:
image: myimage
mem_limit: 512m # Seadistab mälu limiidiks 512 MB
# Docker käivitamise näide
docker run -m 512m myimage # Seadistab mälu limiidiks 512 MB