Почему Докер убивает JVM?
Я использую DCOS с загрузочными приложениями Spring внутри контейнеров Docker. Я заметил, что иногда контейнеры уничтожаются, но в журналах контейнеров нет ошибок, только:
Killed
W1114 19:27:59.663599 119266 logging.cpp:91] RAW: Received signal SIGTERM
from process 6484 of user 0; exiting
HealthCheck включен только для подключения SQL и дискового пространства. Диск исправен на всех узлах, в случае проблем с SQL в журналах должна появиться ошибка. Другой причиной может быть память, но она также выглядит хорошо. От marathon.production.json
:
"cpus": 0.1,
"mem": 1024,
"disk": 0
А также docker-entrypoint.sh
:
java -Xmx1024m -server -XX:MaxJavaStackTraceDepth=10 -XX:+UseNUMA
-XX:+UseCondCardMark -XX:-UseBiasedLocking -Xms1024M -Xss1M
-XX:MaxPermSize=128m -XX:+UseParallelGC -jar app.jar
В чем может быть причина убийства контейнера и есть ли какие-либо журналы на DCOS по этому поводу?
1 ответ
Решение
Решено с java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap