Discourse-docker запущен с Unicorn, проблема с памятью

Запустите Docker с последней версией discourse-docker, 2 ГБ ОЗУ, 3 потока unicorn.
В логах множество ошибок, как показано ниже.

I, [2019-12-17T22:44:47.722151 #19487]  INFO -- : прослушивание на addr=0.0.0.0:3000 fd=13
I, [2019-12-17T22:44:53.036892 #19487]  INFO -- : главный процесс готов
I, [2019-12-17T22:44:55.704154 #19587]  INFO -- : worker=0 готов
I, [2019-12-17T22:44:56.644984 #19594]  INFO -- : worker=1 готов
I, [2019-12-17T22:44:57.595814 #19601]  INFO -- : worker=2 готов
I, [2019-12-18T05:12:51.517167 #19487]  INFO -- : получен сигнал завершения #<Process::Status: pid 19587 exit 0> worker=0
I, [2019-12-18T05:12:52.533342 #19487]  INFO -- : получен сигнал завершения #<Process::Status: pid 19594 exit 0> worker=1
Обнаружен неработающий worker 19563, перезапуск...
I, [2019-12-18T05:12:53.551518 #19487]  INFO -- : получен сигнал завершения #<Process::Status: pid 19601 exit 0> worker=2
I, [2019-12-18T05:12:59.062671 #11689]  INFO -- : worker=1 готов
I, [2019-12-18T05:12:59.063307 #11680]  INFO -- : worker=0 готов
I, [2019-12-18T05:12:59.360555 #11706]  INFO -- : worker=2 готов
WARNING: V8 изолят был разветвлён, его нельзя освободить, и память не будет освобождена до выхода процесса Ruby.
WARNING: V8 изолят был разветвлён, его нельзя освободить, и память не будет освобождена до выхода процесса Ruby.
WARNING: V8 изолят был разветвлён, его нельзя освободить, и память не будет освобождена до выхода процесса Ruby.
WARNING: V8 изолят был разветвлён, его нельзя освободить, и память не будет освобождена до выхода процесса Ruby.
WARNING: V8 изолят был разветвлён, его нельзя освободить, и память не будет освобождена до выхода процесса Ruby.
WARNING: V8 изолят был разветвлён, его нельзя освободить, и память не будет освобождена до выхода процесса Ruby.
WARNING: V8 изолят был разветвлён, его нельзя освободить, и память не будет освобождена до выхода процесса Ruby.
WARNING: V8 изолят был разветвлён, его нельзя освободить, и память не будет освобождена до выхода процесса Ruby.
D, [2019-12-18T05:13:23.583306 #19487] DEBUG -- : ожидание 16.0с после приостановки/гибернации
I, [2019-12-18T05:13:44.194692 #19487]  INFO -- : получен сигнал завершения #<Process::Status: pid 11680 exit 0> worker=0
I, [2019-12-18T05:13:44.194960 #19487]  INFO -- : получен сигнал завершения #<Process::Status: pid 11689 exit 0> worker=1
I, [2019-12-18T05:13:44.195054 #19487]  INFO -- : получен сигнал завершения #<Process::Status: pid 11706 exit 0> worker=2
I, [2019-12-18T05:13:44.195120 #19487]  INFO -- : главный процесс завершён
I, [2019-12-18T05:13:45.760881 #11795]  INFO -- : обновление списка Gem

У кого-то была такая же проблема?

Вы используете какие-либо неофициальные плагины? Или запускаете что-то ещё на сервере? 2 ГБ должно быть более чем достаточно…

Спасибо за ответ. Сервер запускает только sidekiq и Discourse.

Пожалуйста, выполните:

cd /var/discourse
./discourse-doctor

И отправьте нам полученный URL?

@Falco
Большое спасибо, вот результаты проверки:

DISCOURSE DOCTOR Пт, 20 дек 2019, 03:42:31 UTC
ОС: Linux int-communityweb-01w.our-internal-domain 3.10.0-1062.7.1.el7.x86_64 #1 SMP Пн, 2 дек 17:33:29 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux


YML=web_only.yml
Найден контейнер/web_only.yml

==================== НАСТРОЙКИ YML ====================
DISCOURSE_HOSTNAME=int-communityweb-vip.our-internal-domain
SMTP_ADDRESS=our_smtp_server # (обязательно)
DEVELOPER_EMAILS=СКРЫТО 
SMTP_PASSWORD=СКРЫТО  (необязательно)
SMTP_PORT=25 # (необязательно)
SMTP_USER_NAME=# (необязательно)
LETSENCRYPT_ACCOUNT_EMAIL=СКРЫТО 

==================== ИНФОРМАЦИЯ О DOCKER ====================
ВЕРСИЯ DOCKER: Docker version 17.05.0-ce, build 89658be

ПРОЦЕССЫ DOCKER (docker ps -a)

ID КОНТЕЙНЕРА        ОБРАЗЕЦ                                                                                                             КОМАНДА             СОЗДАН              СТАТУС                    ПОРТЫ                ИМЯ
e6c7024d0d4b        artifacts.our-internal-domain:8080/image/community:99-2.0.20191013-2320-tests-passed-b6b05d3b48-2019-12-16_09-28   "/sbin/boot"        43 часа назад       Запущен 43 часа назад       0.0.0.0:80->80/tcp   web_only
703de08548b0        artifacts.our-internal-domain:8080/image/community:90-2.0.20190625-0946-tests-passed-ac7d68a-2019-08-30_09-36      "/sbin/boot"        4 недели назад      Завершен (5) 46 часов назад                        web_only_bak


Контейнер Discourse web_only запущен


==================== ПЛАГИНЫ ====================
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://gitlab.our-internal-domain/community/community-sso-plugin.git
          - git clone https://gitlab.our-internal-domain/community/community-ads-plugin.git
          - git clone  --branch upgarde-newrelic-gem https://gitlab.our-internal-domain/community/community-newrelic-plugin.git

ПРЕДУПРЕЖДЕНИЕ:
Похоже, у вас установлены неофициальные плагины.
Если у вас возникают проблемы, отключите их и попробуйте снова пересобрать систему.

См. официальный список по ссылке: https://github.com/discourse/discourse/blob/master/lib/plugin/metadata.rb

========================================
Версия Discourse на int-communityweb-vip.our-internal-domain: Discourse 2.4.0.beta8 
Версия Discourse на localhost: Discourse 2.4.0.beta8 


==================== ИНФОРМАЦИЯ О ПАМЯТИ ====================
ОС: Linux
ОЗУ (МБ): 1882

              всего       использовано      свободно      общее        кэш/буферы   доступно
Mem:           1838        1340          66           7         430         306
Swap:          3071         388        2683

==================== ПРОВЕРКА МЕСТА НА ДИСКЕ ====================
---------- Место на диске ОС ----------
Файловая система             Размер  Использовано  Доступно  % Использовано  Монтировано на
/dev/mapper/vg00-root   19G   15G  3.3G  82% /
/dev/mapper/vg00-root   19G   15G  3.3G  82% /var/lib/docker/overlay
/dev/mapper/vg00-root   19G   15G  3.3G  82% /

---------- Место на диске контейнера ----------


==================== ИНФОРМАЦИЯ О ДИСКАХ ====================

Диск /dev/sda: 21,5 ГБ, 21474836480 байт, 41943040 секторов
Единицы измерения = сектора по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода-вывода (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x0005c8ec

   Устройство Загрузочный  Начало        Конец       Блоки   Id  Система
/dev/sda1   *        2048     1050623      524288   83  Linux
/dev/sda2         1050624    16777215     7863296   8e  Linux LVM
/dev/sdimage        16777216    41943039    12582912   8e  Linux LVM

Диск /dev/mapper/vg00-root: 19,9 ГБ, 19851640832 байт, 38772736 секторов
Единицы измерения = сектора по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода-вывода (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/mapper/vg00-swap: 1073 МБ, 1073741824 байт, 2097152 секторов
Единицы измерения = сектора по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода-вывода (минимальный/оптимальный): 512 байт / 512 байт

==================== КОНЕЦ ИНФОРМАЦИИ О ДИСКАХ ====================

==================== ТЕСТИРОВАНИЕ ПОЧТЫ ====================
Для надежного теста получите адрес на http://www.mail-tester.com/
Тестирование почты пропущено.

==================== ГОТОВО! ====================

  1. Там довольно старое ядро. Можно ли запустить это на более современной версии?

  2. Версия Docker тоже устарела. Не могли бы вы обновить её до поддерживаемой версии?

  3. Вы запускаете контейнер web_only, который потребляет даже меньше памяти, чем автономный. Однако у вас запущено множество пользовательских плагинов, которые могут, а могут и не выделять слишком много памяти.

  4. Проверьте параметр swappiness вашей ОС — возможно, он слишком низкий.

  5. Ваш процесс Unicorn был завершён. Без дополнительных логов сложно понять причину… Запрашивают ли ваши пользовательские плагины внешние системы синхронно? Возможно, это просто тайм-аут?

Здесь слишком много переменных, отличающих эту ситуацию от простой установки, поэтому я бы сначала попытался их сократить.

@Falco Спасибо, я добавлю больше памяти для этого. Что касается обновления ядра и Docker, мы обсудим это с командой SE и примем решение.
С Рождеством! :dizzy: