Пн go Контейнер БД перезапускается только для нескольких запросов с ошибкой «MongoProd завершился с кодом 137» - PullRequest
0 голосов
/ 16 июня 2020

Мы используем Mon go DB внутри контейнера docker, и он перезапускается только для нескольких запросов, ошибка, полученная нами из Docker, записывается как «MongoProd завершился с кодом 137».

db.collection1.find({_id: {"$in": [/20200616/, /20200615/]}}) = WORKING
db.collection1.find({_id: /20200616/, STATUS_CODE: "C"}) = WORKING
db.collection1.find({_id: /20200615/, STATUS_CODE: "C"}) = WORKING
db.collection1.find({STATUS_CODE: "C"}) = NOT WORKING

STATUS_CODE «C» данные будут доступны только за два дня [/ 20200616 /, / 20200615 /]. Если мы запустим запрос отдельно, он будет работать нормально.

Первоначально, основываясь на исследовании (ссылка доступна ниже), мы думали, что это проблема OOM (Out of Memory), и мы установили предел памяти как 5 ГБ, память SWAP как 5 ГБ и резерв памяти как 2 ГБ. docker update --memory-reservation 2G -m 5G --memory-swap 5G b017bb87cfa2. мы получили ту же ошибку, Mon go DB перезапускается при 30% ИСПОЛЬЗОВАНИИ ПАМЯТИ. Мы контролировали память, используя docker stats.

'collection1' содержит всего 6 ПАРАМЕТРОВ, а его общий размер составляет 13,5 ГБ,

  1. _id = Параметр индексирования = например: «19632960: : 20200616063017 "
  2. XML_FILE_CONTENT = XML Строка
  3. STATUS_CODE = Single Char, например:« C »или« P »или« I ».
  4. COMMENT = String , например: «Документ вставлен»
  5. CREATED_DATE = строка даты, например: «Вт 16 июня 2020 г.»
  6. LAST_UPDATED_DATE = строка даты, например: «Вт 16 июня 2020 г.»

Ссылки на исследования

  1. https://success.docker.com/article/what-causes-a-container-to-exit-with-code-137
  2. https://www.petefreitag.com/item/848.cfm
  3. https://docs.docker.com/config/containers/resource_constraints/

Приложение работает на Linux компьютере с 12 ГБ ОЗУ, версия Mon go: 3.6.5.

ПРИМЕЧАНИЕ: Эта проблема возникает через несколько дней, а затем автоматически устраняется без каких-либо исправлений. Пожалуйста, предложите что-нибудь. Спасибо.

...