Мои пересборки занимают около 10 минут. Кажется, раньше они длились около 5. Так что ничего страшного. Но что означает сообщение об ошибке? У меня появляется что-то похожее на то, что в оригинальном посте выше:
I, [2022-06-20T21:41:47.107238 #1] INFO -- : > cd /var/www/discourse && [ ! -d 'node_modules' ] || su discourse -c 'yarn install --production && yarn cache clean'
warning "eslint-config-discourse > eslint-plugin-lodash@7.1.0" has unmet peer dependency "lodash@>=4".
warning " > @mixer/parallel-prettier@2.0.1" has unmet peer dependency "prettier@^2.0.0".
Я также планирую добавить сюда больше информации. Я использую облегчённую систему (1 ГБ ОЗУ) и небольшой сайт. У меня работает 2 воркера Unicorn, и каждый из них занимал около 30% памяти, что вызывало сильную подкачку памяти. Поэтому я решил сократить их количество с 2 до 1 (считаю, что один воркер может обрабатывать примерно 10 одновременных соединений). Это дало ОГРОМНЫЙ эффект: загрузка страниц стала практически мгновенной, а количество операций подкачки снизилось в 5–10 раз (в зависимости от загружаемого контента).
Однако теперь я столкнулся с проблемой: я больше не могу обновлять Discourse через браузер. При попытке обновления через браузер я получаю сообщение:
ABORTING, you do not have enough unicorn workers running
Docker Manager: FAILED TO UPGRADE
#<RuntimeError: Not enough workers>
Так что это просто примечание. Не уверен, сможет ли команда Discourse разобраться с этим или найти решение — обновление через браузер с одним воркером Unicorn.
Это неверно. Один процесс Unicorn может обрабатывать только один запрос за раз, поэтому, хотя он подходит для небольших групп, мы не рекомендуем его для большинства сайтов.
@Falco Я изучил данные от других администраторов. Как я понимаю, каждый Unicorn запускает новый процесс для каждого входящего соединения. Таким образом, хотя технически соединение обрабатывается по одному, каждый Unicorn может обслуживать несколько одновременных пользователей.
Исходя из опыта, описанного ниже, около 8 процессов Unicorn могут обслуживать примерно 400 одновременных пользователей:
Исходя из этого, получается, что один Unicorn может обрабатывать около 50 одновременных пользователей. Однако я знаю, что объем оперативной памяти и системные ресурсы влияют на количество возможных форков и другие параметры, поэтому я исхожу из предположения, что один воркер Unicorn может обрабатывать 10 одновременных пользователей на системе с низким объемом оперативной памяти (1 ГБ) в нижней границе.
Мои предположения и выводы совершенно неверны? Если да, то какой диапазон одновременных пользователей может обрабатывать один Unicorn в зависимости от системных ресурсов (предположим, что нижняя граница — 1 ГБ, а верхнюю определите сами, исходя из целесообразности)?
Существует разница между одновременными сеансами пользователей и одновременными подключениями. Сеанс — это онлайн-пользователь, и каждый из них делает запрос (подключение) при каждом взаимодействии.
Это не так. Unicorn при запуске создает фиксированное количество рабочих процессов.