Какой сервер нужен для телеграм-бота: расчёт нагрузки

Какой сервер нужен для телеграм-бота: расчёт по нагрузке

Марина
Марина
📅 21 сентября 2026
Какой сервер нужен для телеграм-бота: расчёт по нагрузке

Телеграм-боту нужен не «мощный сервер», а круглосуточно работающий процесс: справочному боту на сотню пользователей хватает 1 ядра, 512 МБ памяти и 10 ГБ диска, а это тарифы от 139 ₽/мес. Планка поднимается, когда бот начинает что-то считать сам: рассылка на 10 тысяч подписчиков просит 2 ядра и 2 ГБ, а обработка фото и видео — 2–4 ядра и 4 ГБ. Готовые конфигурации под такую задачу собраны в разделе VPS для телеграм-бота, где 10 провайдеров и цены стартуют со 139 ₽/мес.

Материал для того, кто написал бота на Python или Node.js и впервые выбирает, куда его поселить. Разберём, что именно ест память и чем long polling отличается от вебхука по требованиям к железу. Посчитаем конфигурацию под три типовых профиля нагрузки, выясним, когда боту нужна очередь задач, и сравним цены. В конце — план из семи шагов, как поднять сервер, который не упадёт через неделю.

Что делает сервер, пока бот отвечает пользователям

Telegram не хранит и не запускает ваш код. На его стороне только мессенджер и Bot API — интерфейс, через который программа получает новые сообщения и отправляет ответы. Сам бот — это обычный процесс, который должен крутиться без остановки: как только он завершается, кнопки перестают работать и пользователи видят молчание.

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

Ресурсы делятся на четыре части. Процессор разбирает ответы API и жмёт картинки, память держит запущенный процесс с библиотеками, диск хранит код, базу и логи, сеть возит запросы к api.telegram.org — один вызов возвращается за 50–300 мс.

Лимиты самого Telegram тоже влияют на расчёт. Bot API пропускает около 30 сообщений в секунду в разные чаты и не больше 20 сообщений в минуту в одну группу, поэтому рассылка на 10 000 человек не уйдёт быстрее чем за 5–6 минут, сколько бы ядер вы ни купили.

Long polling или вебхук: как способ приёма сообщений меняет требования к серверу

Есть два способа узнать, что пользователь что-то написал. Long polling — бот сам дёргает метод getUpdates и держит соединение открытым 30–50 секунд, ожидая ответа. Никакого входящего трафика извне, никакого домена: машина может стоять за любым фильтром и всё равно работать.

Вебхук — обратная схема. Вы один раз сообщаете Telegram адрес вида https://bot.example.ru/hook, и дальше серверы мессенджера сами присылают POST-запрос на каждое событие. Для этого нужен домен и действующий TLS-сертификат — файл, который подтверждает подлинность вашего адреса и включает шифрование. Без HTTPS Telegram вебхук не примет. Бесплатный сертификат Let’s Encrypt выдаётся на 90 дней и продлевается автоматически по расписанию.

По памяти разница невелика — 20–40 МБ в пользу вебхука за счёт того, что не нужно постоянно держать исходящее соединение. По задержке разница заметнее: вебхук доставляет событие за 100–400 мс, long polling добавляет паузу до 1–2 секунд на закрытие текущего запроса. На боте с меню это не видно, на игровом или биржевом — видно сразу.

Признак Long polling Вебхук
Нужен домен Нет Да
Нужен HTTPS-сертификат Нет Да, обязательно
Задержка ответа до 1–2 с 100–400 мс
Расход памяти сверх базы 20–40 МБ около 0
Открытые порты Только исходящие 443, 80, 88 или 8443
Кому подходит Первый бот, до 1000 пользователей Рассылки, платежи, от 5000 пользователей
Long polling и вебхук: разница в требованиях к серверу
На боте с меню лишняя секунда незаметна, на игровом или биржевом разница видна сразу.

Из чего складывается потребление памяти телеграм-ботом

Цифра «512 МБ» звучит абстрактно, пока не разложить её на слои. Начинается всё с системы: Ubuntu 24.04 в минимальной установке без графики занимает 120–180 МБ в простое, Debian того же поколения — 90–140 МБ.

Дальше идёт среда выполнения. Пустой процесс Python 3.12 весит 15–25 МБ, поверх ложится библиотека для работы с ботами: aiogram или python-telegram-bot добавляют 20–40 МБ. Node.js прожорливее — runtime стартует с 35–50 МБ. Ваш код на этом фоне почти невесом, пока не грузит данные в память целиком.

Последний слой — база. SQLite не отдельный процесс, а файл, поэтому расход близок к нулю. PostgreSQL забирает 80–150 МБ даже без единого запроса, MySQL — 150–250 МБ. Отсюда правило: SQLite до нескольких десятков тысяч записей, полноценная СУБД дальше, но тогда сразу закладывайте 2 ГБ.

Итого простой бот на long polling с SQLite укладывается в 256–512 МБ. Если памяти всё-таки не хватит, ядро Linux запустит механизм OOM Killer и молча убьёт самый жирный процесс — чаще всего именно бота. Файл подкачки на 1–2 ГБ спасает от мгновенной смерти, но замедляет работу в десятки раз, поэтому это костыль, а не решение.

Три профиля нагрузки: 100 пользователей, 10 тысяч и обработка файлов

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

Профиль 1: справочный бот на 100–500 пользователей

Меню, кнопки, ответы из готового текста, запись заявки в базу. Пиковая нагрузка — 5–15 сообщений в минуту, каждое обрабатывается за 10–50 мс. Процессор занят 1–3 % времени, всё остальное машина простаивает. Хватает 1 ядра, 512 МБ–1 ГБ памяти и 10 ГБ диска. Такие тарифы лежат в разделе недорогие VPS и стоят 139–200 ₽/мес.

Профиль 2: бот на 10 тысяч подписчиков с рассылками

Здесь появляется массовая отправка. Разослать 10 000 сообщений при лимите 30 в секунду — это 5–6 минут работы, в течение которых бот должен продолжать отвечать живым людям. Нужен асинхронный код — такой, где отправка рассылки не блокирует остальные ответы, — и запас памяти под очередь исходящих сообщений. Расчётная конфигурация: 2 ядра, 2 ГБ памяти, 20–30 ГБ NVMe, PostgreSQL вместо SQLite, вебхук вместо long polling.

Профиль 3: бот с обработкой картинок, видео и документов

Как только бот сам что-то конвертирует, узкое место переезжает в процессор. Сжать фотографию 5 МБ до превью занимает 0,3–1 секунду одного ядра, распознать текст на скане — 2–5 секунд, перекодировать минуту видео — 20–60 секунд. Память уходит на буферы: снимок 4000×3000 точек библиотека разворачивает в несжатый вид размером около 46 МБ. Нужны 2–4 ядра, 4 ГБ памяти и 40 ГБ диска; подходящие сборки есть в разделе VPS для Python.

Профиль Ядра Память Диск Схема приёма База
Справочный, до 500 пользователей 1 512 МБ–1 ГБ 10 ГБ Long polling SQLite
Рассылки, до 10 000 подписчиков 2 2 ГБ 20–30 ГБ NVMe Вебхук PostgreSQL
Обработка фото и документов 2–4 4 ГБ 40 ГБ NVMe Вебхук PostgreSQL
Обработка видео 4–8 8 ГБ 80–100 ГБ NVMe Вебхук PostgreSQL

Когда боту нужна очередь задач и что она добавляет к конфигурации

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

Очередь разрывает эту связь. Бот принимает файл, кладёт задачу в список и сразу отвечает «взял в работу, пришлю через пару минут». Отдельная программа-воркер разбирает список и выполняет тяжёлую часть в своём темпе. В связке Python это обычно Redis как хранилище очереди — быстрая база, которая держит данные прямо в оперативной памяти, — плюс Celery, RQ или arq как исполнитель.

На железо это влияет предсказуемо. Redis в простое занимает 8–15 МБ и почти не грузит процессор. Каждый воркер — это ещё один процесс со своей копией библиотек, то есть 60–120 МБ памяти и одно ядро под пиковую задачу. Схема «бот + 2 воркера + Redis» добавляет примерно 1 ГБ памяти к базовой конфигурации.

Разворачивать этот набор удобнее контейнерами: три сервиса описываются в одном файле и поднимаются одной командой. Пошаговый разбор установки бота на сервер есть в отдельном руководстве — как развернуть телеграм-бота на VPS.

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

Сколько места занимают база, файлы и логи

Диск — единственный ресурс, который заканчивается тихо и внезапно. У бота три потребителя места, и два из них растут сами по себе. База данных обычно скромна: таблица на 10 000 пользователей с историей последних действий весит 5–20 МБ, и даже за год активной работы редко переваливает за 500 МБ. Логи опаснее. Это текстовые журналы, куда программы пишут всё, что с ними происходит.

Без настроенной ротации — автоматического удаления старых записей — системный журнал набирает 50–200 МБ в месяц, а бот с подробным отладочным выводом легко даёт 1–2 ГБ. Ограничение размера журнала настраивается один раз и решает проблему навсегда.

Файлы пользователей — главная статья расхода, но их можно не хранить вовсе. Telegram сам держит все загруженные файлы и возвращает идентификатор file_id, по которому файл отправляется обратно без повторной загрузки. Скачивать на сервер имеет смысл только то, что нужно обработать; через Bot API бот скачивает файлы до 20 МБ и отправляет до 50 МБ.

Если файлы всё-таки хранятся у вас, считайте просто: 1000 фотографий по 300 КБ — это 300 МБ, тысяча PDF-договоров по 2 МБ — 2 ГБ. Диска на 10 ГБ хватит справочному боту на годы, файловому лучше сразу брать 40–100 ГБ.

Сколько стоит сервер под каждый профиль

Цены в разделе начинаются со 139 ₽/мес, и на этой сумме реально работает первый бот. Разброс между провайдерами в нижнем сегменте невелик, поэтому смотреть стоит не только на цифру, но и на тип диска: HDD за те же деньги даёт в 5–10 раз меньше операций в секунду, и на базе данных это чувствуется.

В таблице — стартовые тарифы десяти провайдеров раздела вместе с тем, что входит в минимальную конфигурацию.

Провайдер Цена от Базовая конфигурация Тарифов в линейке Оценка
RuVDS 139 ₽/мес 1 ядро, 0,5 ГБ, 10 ГБ HDD 440 4,3
4VPS 150 ₽/мес 1 ядро, 1 ГБ, 10 ГБ NVMe 487 4,0
FASTVPS 165 ₽/мес 1 ядро, 1 ГБ, 10 ГБ SSD 36 3,8
JustHost.ru 193 ₽/мес 1 ядро, 1 ГБ, 20 ГБ NVMe 27 3,8
Selectel 200 ₽/мес 1 ядро, 1 ГБ, 10 ГБ NVMe 69 4,5
AdminVPS 299 ₽/мес 1 ядро, 1 ГБ, 15 ГБ NVMe 149 4,5
Beget 330 ₽/мес 1 ядро, 1 ГБ, 10 ГБ NVMe 7 4,5
IQHost 350 ₽/мес 1 ядро, 2 ГБ, 15 ГБ SSD 17 4,0
Timeweb Cloud 477 ₽/мес 1 ядро, 1 ГБ, 15 ГБ NVMe 4 4,5
Aéza 593 ₽/мес 1 ядро, 2 ГБ, 30 ГБ NVMe 151 4,6

Данные проверены 04.09.2026.

Самый дешёвый вход даёт RuVDS — 139 ₽/мес, но там 0,5 ГБ памяти и обычный диск, то есть это вариант ровно под профиль 1 с SQLite. Ближайшая ступень с NVMe и целым гигабайтом — 4VPS за 150 ₽/мес, и это разумная точка старта для большинства ботов. Когда дойдёт до второго профиля, посмотрите на Selectel: линейка из 69 тарифов позволяет добавлять ядра и память по одному шагу, не переезжая на другую машину.

Виртуальный хостинг, бесплатные площадки и VPS: что подойдёт боту

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

Бесплатные площадки выглядят заманчиво, пока не прочитаешь условия: контейнер засыпает после 15–30 минут без запросов, а лимит работы обычно составляет 500–750 часов в месяц. Для учебного бота это нормально, для рабочего — источник необъяснимых пропаж. Что дают такие сервисы, разобрано в материале про бесплатный хостинг для телеграм-бота.

Виртуальный сервер выигрывает полным доступом к системе, отсутствием ограничений на фоновые процессы и предсказуемой ценой. За 150–200 ₽/мес рядом с ботом спокойно живут база, очередь и панель статистики.

Как выбрать и запустить сервер за семь шагов

Порядок ниже занимает 30–40 минут, если делать впервые. Ничего специфического для Telegram в первых шагах нет — это обычная подготовка машины.

  1. Определите профиль по таблице выше и выберите тариф: для первого бота — 1 ядро, 1 ГБ памяти, 10 ГБ NVMe, локация ближе к вашим пользователям.
  2. При заказе выберите Ubuntu 24.04 LTS или Debian 12 — обе поддерживаются до 2028–2029 годов, документации по ним больше всего.
  3. Сразу после выдачи добавьте SSH-ключ — пару файлов, которая заменяет пароль при входе на сервер, — и отключите вход по паролю в файле /etc/ssh/sshd_config. Это закрывает 90 % автоматических атак на порт 22/TCP.
  4. Выполните apt update (обновляет список доступных пакетов) и apt upgrade (устанавливает свежие версии). Затем создайте обычного пользователя: запускать бота от root, всемогущей учётной записи администратора, не нужно.
  5. Поставьте нужную среду — python3-venv для Python или Node.js из официального репозитория — и разверните код в отдельном каталоге с виртуальным окружением.
  6. Оформите бота как службу systemd — это встроенный в Linux механизм автозапуска программ — с параметром Restart=always: тогда после сбоя или перезагрузки сервера процесс поднимется сам за 2–5 секунд.
  7. Настройте ротацию логов, ежедневный бэкап базы и внешнюю проверку доступности, чтобы узнавать о падении раньше пользователей.

Вебхук добавляется отдельно и только когда нужен: направьте домен на IP-адрес сервера, выпустите сертификат, поднимите веб-сервер на порту 443/TCP и один раз вызовите метод setWebhook — он сообщает Telegram, куда присылать события.

Как проверить, что серверу хватает ресурсов

Гадать не нужно — три команды показывают всю картину. Команда free -m печатает занятую и свободную память в мегабайтах; если в строке подкачки занято больше 100–200 МБ, оперативной памяти уже мало. Команда uptime показывает среднюю загрузку за 1, 5 и 15 минут: цифра выше числа ядер означает, что задачи выстраиваются в очередь.

Третья команда — top или htop — показывает, сколько процессорного времени съедает каждый процесс, и заодно колонку st. Это CPU steal time, доля времени, которую у вашей машины отбирают соседи по физическому серверу. Постоянные 5–10 % в этой колонке значат, что провайдер посадил на одно железо слишком много клиентов. Лечится это только переездом.

Разовые замеры ничего не ловят: проблемы случаются ночью или во время рассылки. Поставьте постоянный мониторинг с уведомлениями в тот же Telegram — минимальный набор проверок занимает 50–80 МБ памяти и разворачивается за полчаса по инструкции как настроить мониторинг сервера.

Частые ошибки при выборе сервера под бота

Большинство проблем возникает не из-за слабого железа, а из-за неверных ожиданий на старте. Ниже то, что чаще всего приходится переделывать.

  • Берут тариф с 256 МБ памяти под бота с PostgreSQL — база не стартует, а если стартует, её убивает нехватка памяти на первой сотне запросов.
  • Считают нагрузку по числу подписчиков, а не по времени обработки сообщения: бот на 200 человек с распознаванием сканов тяжелее бота на 20 000 с кнопками.
  • Запускают процесс командой в терминале через SSH — при закрытии сессии бот умирает; помогает только служба автозапуска.
  • Выбирают HDD ради экономии 30–50 ₽/мес и получают базу, которая отвечает в 5–10 раз медленнее на тех же запросах.
  • Настраивают вебхук на самоподписанный сертификат — выпущенный самостоятельно, без доверенного центра — и неделю ищут причину, почему Telegram не присылает обновления.
  • Не ставят ротацию логов, и через 4–6 месяцев диск на 10 ГБ забивается журналом до отказа.

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

Какой сервер нужен для телеграм-бота на 100 пользователей? Достаточно самой младшей конфигурации: 1 ядро, 512 МБ–1 ГБ памяти, 10 ГБ диска. В деньгах это 139–200 ₽/мес. Процессор на таком боте загружен на 1–3 %, и запас нужен не под нагрузку, а под обновления и базу.

Хватит ли 512 МБ оперативной памяти? Хватит для бота на Python с SQLite и long polling: система заберёт 120–180 МБ, интерпретатор с библиотекой — ещё 40–60 МБ. Как только добавляется PostgreSQL или обработка изображений, 512 МБ заканчиваются и процесс убивает механизм нехватки памяти.

Нужен ли домен для телеграм-бота? Только для вебхука: Telegram отправляет обновления исключительно на HTTPS-адрес с действующим сертификатом. При работе через long polling домен не нужен вовсе — бот сам обращается к API по исходящему соединению.

Можно ли держать на одном сервере несколько ботов? Да, это обычная практика: три-четыре лёгких бота с общей базой живут на машине с 2 ГБ памяти, каждый добавляет 60–120 МБ. Разносить их стоит, когда один начинает грузить процессор и мешать остальным.

Сколько дискового пространства заложить? Справочному боту хватает 10 ГБ: код весит десятки мегабайт, база — до 500 МБ, остальное съедают система и логи. Боту с хранением пользовательских файлов нужно 40–100 ГБ, но чаще выгоднее работать через идентификаторы файлов Telegram.

Что выбрать новичку — Ubuntu или Debian? Ubuntu 24.04 LTS выигрывает объёмом инструкций, Debian 12 — экономией 30–50 МБ памяти в простое, что заметно на тарифе с 512 МБ. Обе системы получают обновления безопасности до 2028–2029 годов.

Когда пора переезжать на более мощный тариф? Когда память занята больше чем на 85 % в обычном режиме, средняя загрузка держится выше числа ядер дольше 10 минут или пользователи ждут ответа больше 3 секунд. Апгрейд у большинства провайдеров делается за 5–10 минут с перезагрузкой машины.

Итог

Расчёт сводится к трём вопросам: сколько сообщений в минуту приходит, дольше ли секунды длится обработка одного из них и храните ли вы файлы у себя. Ответы дают конфигурацию: 1 ядро и 512 МБ–1 ГБ за 139–200 ₽/мес для справочного бота, 2 ядра и 2 ГБ для рассылок на 10 тысяч человек, 2–4 ядра и 4 ГБ для обработки картинок. Начинать почти всегда стоит с младшего тарифа и long polling. Сравнить цены десяти провайдеров можно в разделе серверы для телеграм-ботов.

Поделиться:
👁 19 просмотров
Марина
Редактор · FREEHOSTING
Главный редактор FREEHOSTING. С 2020 года тестирует VDS, VPS и хостинг-провайдеров — арендует серверы, нагружает их реальными проектами и пишет честные обзоры по итогам. Помогает читателям выбирать хостинг под свои задачи: от Telegram-бота до production-сайта.