У меня написан бот на Aiogram 3. Подключена БД Postgresql. Ранее хостился на NAT Cloud сервере и пол месяца ничего не вылетало, теперь перешел на VDS с теми же 512мб оперативы и стал килится бот Out of memory killer’ом. В логах так. Если смотреть по процессам, то больше всего жрет постгрес, хотя раньше на клауде такого не было, в коде ничего не менял, сервер настраивал также, без изменений. Не понимаю, в чем может быть проблема. Грешу на свой пока маленький опыт, так как это единственное, что я хостил с момента начала обучения. Просто смущает тот факт, что на NAT Cloud бот работал исправно.
Вот код мейна, мб у меня есть утечки памяти?
import asyncio
import asyncpg
import logging
from aiogram import Bot, Dispatcher
from aiogram.enums import ParseMode
from handlers import basic, callback
from middlewares.db_middleware import DbSession
from data.config import bot_token, pguser, pgpassword, database, host, port
async def create_pool():
return await asyncpg.create_pool(user=pguser,
password=pgpassword,
database=database,
host=host,
port=port,
command_timeout=60)
async def main():
logging.basicConfig(level=logging.INFO,
format='%(asctime)s - [%(levelname)s] - '
'(%(filename)s).%(funcName)s(%(lineno)d) - %(message)s')
bot = Bot(token=bot_token, parse_mode=ParseMode.HTML)
pool_connect = await create_pool()
dp = Dispatcher()
dp.include_routers(basic.router, callback.router)
dp.message.middleware.register(DbSession(pool_connect))
try:
await bot.delete_webhook(drop_pending_updates=True)
await dp.start_polling(bot)
finally:
await bot.session.close()
if __name__ == '__main__':
try:
asyncio.run(main())
except KeyboardInterrupt:
print('Exit')
Пробовал await pool_connect.close() прописывать в finally. Ничего не изменилось((
Если нужны другие куски кода, пишите отправлю. Буду очень благодарен за помощь!