Middle
Mi történik a konténerrel, ha túllépik a memóriahatárt?
sobes.tech MI
Válasz az MI-től
Amikor a Docker-konténerhez beállított memóriahatárt túllépik, a következő fő események történnek:
- OOM (Out of Memory) esemény: A működési rendszer kernelje észleli, hogy a konténeren belüli folyamat megpróbál memóriát foglalni, amely meghaladja a beállított határt.
- Killing jel: A kernel küldi a
SIGKILLjelet a konténeren belüli folyamatnak. Ezt a jelet nem lehet elfogni vagy figyelmen kívül hagyni a konténerben futó alkalmazás által. - A konténer leállítása: A konténeren belüli folyamat kényszerített módon befejeződik. A Docker démon észleli, hogy a fő folyamat befejeződött, és a konténer állapotát
Exited-re változtatja. - Kilépési kód: A konténer nem nullával tér vissza (általában 137), ami arra utal, hogy a jelet kényszerített módon zárták.
Hatások az alkalmazásra és a rendszerre:
- A konténerben futó alkalmazás hirtelen leáll.
- Ha újraindítási politika van beállítva (
restart policy), a Docker megpróbálja újraindítani a konténert. - A konténer és/vagy a hoszt naplóiban rögzítésre kerül az OOM esemény és a konténer leállítása.
Memóriahatár beállításának példája:
# Docker Compose példa
services:
myapp:
image: myimage
mem_limit: 512m # 512 MB memóriahatárt állít be
# Docker futtatási példa
docker run -m 512m myimage # 512 MB memóriahatárt állít be