NetrunНа главную

Сколько это стоит

Сколько памяти и процессора нужно Telegram-боту

· 5 мин чтения

Коротко

Обычному Telegram-боту хватает 1 ГБ оперативной памяти и половины процессорного ядра — столько даёт тариф Pro за $4.99 в месяц. Бот почти всё время ждёт сообщений и нагрузки не создаёт; память ему нужна на библиотеки, а процессор — только в моменты ответа. Больше ресурсов требуется, если бот обрабатывает картинки и видео, держит тяжёлую базу или считает что-то сам, а не просит внешний сервис.

Выбирая сервер под бота, легко купить лишнего: тарифы в облаках расписаны в ядрах и гигабайтах, а сколько из этого нужно боту, который отвечает сотне человек в день, нигде не написано. Обычно — совсем немного. Бот большую часть времени просто ждёт сообщения и в этот момент не тратит ни процессор, ни диск.

Разберём по порядку: на что боту нужна память, когда ему не хватает процессора и как понять, что упёрлись в потолок, а не в ошибку в коде.

  1. Поймите, на что уходит память#

    Основную память съедает не ваш код, а библиотеки, которые он подтягивает. Бот на aiogram или Telegraf с парой десятков команд занимает считанные десятки мегабайт. Резко больше становится, когда в проект приезжают тяжёлые пакеты: обработка изображений, аналитика с таблицами, браузер для парсинга. Если такого нет, памяти боту нужно немного.

  2. Не путайте нагрузку с постоянной работой#

    Бот занят круглосуточно, но не нагружен круглосуточно: между сообщениями он спит на ожидании и почти ничего не потребляет. Процессор нужен вспышками — в момент ответа. Поэтому «бот работает 24 часа» и «боту нужен мощный сервер» — совершенно разные утверждения, и второе почти никогда не следует из первого.

  3. Сравните с тем, что даёт тариф#

    На бесплатном тарифе проект получает 256 МБ памяти, 0,25 ядра и 2 ГБ места — этого достаточно, чтобы бот собрался, запустился и отвечал на команды. На Pro ($4.99 в месяц) — 1 ГБ памяти, 0,5 ядра и 5 ГБ места. В этот размер спокойно помещается бот с базой на SQLite, картинками, кнопками и парой фоновых задач.

  4. Узнайте признаки нехватки#

    Нехватка памяти выглядит одинаково: бот внезапно перезапускается, а в логах обрывается на середине работы без внятной ошибки. Нехватка процессора выглядит иначе — бот отвечает, но с задержкой, и она растёт вместе с числом одновременных сообщений. Если же бот отвечает мгновенно, а потом молчит навсегда, дело почти наверняка в коде, а не в ресурсах.

  5. Смотрите на цифры, а не на ощущения#

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

  6. Выносите тяжёлое наружу#

    Если боту действительно нужно что-то тяжёлое — распознать речь, сгенерировать текст, обработать видео, — почти всегда дешевле обратиться к внешнему сервису по API, чем держать всё это на своём сервере. Тогда боту снова хватает скромных ресурсов, а платите вы за фактическое использование тяжёлой части.

Боту редко нужен большой сервер: ему нужен маленький, но всегда включённый. Загрузите бота в Netrun и посмотрите на реальное потребление — первые 3 дня бесплатны.

Частые вопросы

Сколько оперативной памяти нужно Telegram-боту?

Обычному боту на aiogram, python-telegram-bot или Telegraf хватает нескольких десятков мегабайт, поэтому 1 ГБ на тарифе Pro — с запасом. Больше требуется только тяжёлым библиотекам: обработке изображений, аналитике с таблицами, встроенному браузеру.

Хватит ли боту ресурсов бесплатного тарифа?

Для проверки — да. На бесплатном тарифе проект получает 256 МБ памяти, 0,25 ядра и 2 ГБ места, и обычный бот в это укладывается. Ограничение бесплатного тарифа не в ресурсах, а во времени: бот работает 3 дня, дальше нужен Pro.

Сколько пользователей выдержит такой бот?

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

Как понять, что боту не хватает памяти?

Типичный признак — бот перезапускается сам, а в логах работа обрывается на середине без осмысленной ошибки. Задержки в ответах при этом обычно говорят не о памяти, а о медленном внешнем сервисе или тяжёлом запросе к базе.

Что делать, если ресурсов действительно не хватает?

Сначала посмотрите график потребления в кабинете: часто оказывается, что бот использует малую долю выданного. Если упор реальный, тяжёлую часть выгоднее вынести во внешний сервис по API, чем держать её рядом с ботом.

Нужен ли боту отдельный сервер?

Нет. Отдельный сервер нужен, когда проект действительно съедает машину целиком, а бот почти всегда занимает малую её часть. Разумнее платить за небольшой всегда включённый ресурс — $4.99 в месяц — чем за простаивающую машину.

Как понять, что с приложением всё в порядке?

На вкладке «Мониторинг» видно, что происходит с приложением прямо сейчас: сколько запросов к нему идёт, за сколько оно отвечает и были ли ответы с ошибкой, а ниже — нагрузка на процессор, память и место. Данные обновляются каждую минуту. На тарифе Pro к этому добавляются сутки целиком: работало ли приложение без перерывов, в какой час оно падало и как быстро отвечало. У ботов и фоновых скриптов запросов не бывает: к ним никто не приходит по ссылке, поэтому им показываем только работу без перерывов.

Чем отличается тариф Pro?

На тарифе Pro проект работает круглосуточно: сайт не засыпает и отвечает мгновенно, без паузы на пробуждение, а бот или фоновый скрипт работает постоянно, без ограничения в 3 дня. Кроме того, на Pro больше памяти, процессора и места, а к сайту можно подключить свои домены — столько, сколько нужно, каждый с HTTPS.

Засыпают ли боты и фоновые скрипты?

Нет, засыпают только сайты: сайт просыпается сам, когда его открывают. Бота и фоновый скрипт разбудить нечем — к ним никто не приходит по ссылке, они работают сами по себе. Поэтому на бесплатном тарифе они работают 3 дня, а дальше, чтобы бот работал круглосуточно, нужен тариф Pro.

Что будет, если приложение упадёт?

Мы следим за проектами и перезапускаем их при сбое. Если что-то идёт не так, вы видите статус и логи в кабинете и получаете уведомление.

Запустите свой проект

Загрузите код, ответьте на пару вопросов — и получите рабочую ссылку. Есть бесплатный тариф

Попробовать Netrun
Все статьи блога