Почему бот на сервере постоянно вызывает ошибку выхода за пределы памяти (OOM)?

Почему после перехода на VDS с теми же характеристиками бот на Aiogram начал завершаться по ошибке "Out of memory killer", особенно учитывая то, что ранее он работал без сбоев на NAT Cloud? В коде я ни что не изменил, а сервер также настроен без изменений. Есть ли возможная утечка памяти в моем коде? Вот часть кода мейна: 
  • 11 марта 2024 г. 6:59
Ответы на вопрос 3
К сожалению, без дополнительной информации о вашем коде и окружении выполнения бота сложно точно определить причину ошибки "Out of memory" или "Out of memory killer". Однако, существует несколько возможных причин, которые стоит рассмотреть:

1. Утечка памяти в вашем коде: проверьте, используете ли вы правильные паттерны управления памятью (например, правильное закрытие соединений, освобождение ресурсов и т. д.) и обращаетесь ли к памяти эффективно, чтобы избежать утечек.

2. Недостаточные ресурсы на сервере: возможно, назначенные вам ресурсы на VDS не хватает для правильной работы бота. 

3. Неправильная настройка окружения выполнения: возможно, не все параметры на сервере или в коде бота настроены оптимально. 

Для выявления причины ошибки рекомендуется следующее:
- Изучить логи сервера и бота для нахождения точного момента возникновения ошибки.
- Проверить память, использование CPU и другие ресурсы на сервере во время выполнения бота. 
- Воспроизвести проблему на локальном окружении и провести тестирование для выявления возможных проблем в коде.

Если проблема не решается, возможно, стоит обратиться за помощью к специалистам в области разработки и технической поддержки.
Потому что когда на сервере работает несколько сервисов, им нужно явно указывать, сколько памяти они максимально могут потреблять - и в сумме должно получаться меньше, чем есть на сервере (минус сколько-нибудь под процессы ОС). Для Постгреса и вовсе - первая операция после установки, это редактирование настроек памяти. 

Альтернатива ковыряния конфигов - разнесение всего хозяйства по контейнерам с лимитами памяти.
shared_buffers = 128MB # min 128kB 
У меня в конфиге так, или это не та инфа?
Похожие вопросы