VPS для Telegram-бота: який тариф потрібен і від чого залежить навантаження

VPS для Telegram-бота: який тариф потрібен і від чого залежить навантаження

Для Telegram-бота варто вибирати VPS/VDS не за кількістю підписників, а за тим, що відбувається після кожного повідомлення. Бот із 20 тисячами користувачів може майже не навантажувати сервер, якщо лише показує підготовлені відповіді. Водночас невеликий магазин із кількома сотнями активних клієнтів здатен впиратися в процесор, пам’ять або базу даних під час акцій та розсилок.

Універсального «тарифу для бота» не існує. На ресурси впливають мова програмування і фреймворк, спосіб отримання оновлень, кількість одночасних запитів, робота з файлами, зовнішні інтеграції та фонові завдання. Потрібен і запас: сервер, який у звичайний день використовує майже всю оперативну пам’ять, уже не готовий до пікового навантаження.

Від інформаційного бота до сервісу зі штучним інтелектом

Практичний стартовий тариф можна оцінити за сценарієм роботи:

  1. Простий інформаційний бот. Меню, команди, відповіді на поширені запитання, видача посилань або файлів не потребують великої конфігурації. Для одного процесу бота, вебсервера і невеликої SQLite-бази зазвичай достатньо 1–2 vCPU, 2 ГБ RAM та 20-35 ГБ на диску. Цього вистачить для коду, журналів і системних пакетів.

  2. Telegram-магазин. Тут з’являються каталог, кошик, замовлення, платежі, залишки, фотографії товарів і синхронізація з CRM або сайтом. Навантаження створює не кнопка «Купити», а ланцюжок операцій після натискання. Розумним мінімумом будуть 2-3 vCPU, 4 ГБ RAM і швидкий NVMe-диск. Для великого каталогу та регулярного імпорту товарів краще передбачити 6 ГБ RAM.

  3. Бот служби підтримки. Йому потрібні історія діалогів, розподіл звернень між операторами, вкладення, сповіщення та інтеграція з helpdesk-системою. За невеликого потоку достатньо 4 ГБ RAM, але паралельна робота вебпанелі, PostgreSQL, Redis і кількох обробників швидко збільшує споживання пам’яті. Для цілодобового сервісу доречні 3-4 vCPU та 4-6 ГБ RAM.

  4. Бот із базою даних або ШІ. Якщо він зберігає профілі, історію листування, результати пошуку та аналітику, головними стають швидкість диска, оптимізація запитів і кешування. Для роботи із зовнішнім API мовної моделі відеокарта на VPS не потрібна: сервер готує запит, зберігає контекст і повертає відповідь. Стартувати можна з 4-6 ГБ RAM. Локальний запуск моделей часто потребує GPU-сервера, значно більшої пам’яті та окремого розрахунку.

Читайте також: OpenVZ, Xen та KVM — порівнюємо популярні технології віртуалізації

У лінійці VPS-UP конфігурація KVM-35 має 2 vCPU, 2 ГБ RAM і 35 ГБ NVMe, KVM-75 — 3 vCPU та 4 ГБ RAM, а KVM-100 — 4 vCPU та 6 ГБ RAM. Перший тариф підійде для простого бота, другий — для магазину або підтримки середнього масштабу, третій — для проєкту з базою даних, кешем, чергами та кількома робочими процесами.

Якщо бот обробляє тисячі одночасних звернень, працює з великою базою даних, запускає локальні моделі ШІ або виконує ресурсомісткі операції з файлами, можливостей VPS з часом може не вистачити. У такому разі варто розглядати виділений сервер, де процесор, оперативна пам’ять і диски не розподіляються між кількома клієнтами. Це дає стабільнішу продуктивність під тривалим навантаженням і дозволяє точніше підібрати конфігурацію, зокрема сервер із великим обсягом RAM, кількома NVMe-дисками чи графічним прискорювачем.

Чому кількість користувачів не показує реального навантаження

Telegram дозволяє отримувати оновлення двома взаємовиключними способами: через long polling методом getUpdates або через webhook. Оновлення, які бот не забрав, зберігаються на стороні Telegram не довше 24 годин. Для webhook можна встановити від 1 до 100 одночасних HTTPS-з’єднань: більше значення підвищує пропускну здатність, але створює вищий паралельний тиск на застосунок.

Long polling нормально працює в невеликих проєктах і під час розробки. Для магазину, підтримки або сервісу з нерівномірним потоком звернень webhook зазвичай зручніший. Проте він не прибирає піків. Якщо після повідомлення запускаються запити до бази, генерація документа, перевірка оплати та звернення до стороннього API, ці операції варто передавати у чергу, а не виконувати в одному процесі.

Можливості сервера також не слід плутати з лімітами Telegram. Офіційні рекомендації радять не надсилати більше одного повідомлення на секунду в один чат, для груп діє обмеження близько 20 повідомлень на хвилину, а безплатна масова розсилка обмежена приблизно 30 повідомленнями на секунду. Платні розсилки можуть підвищити межу до 1000 повідомлень на секунду, але доступні за окремих умов. 

Читайте також: Віртуальні сервери у розробці: як полегшити життя програміста

Потужніший VPS не обійде ці обмеження, зате допоможе формувати чергу, повторювати запити після помилки 429 і не блокувати звичайні відповіді під час розсилки.

Під час вибору тарифу варто оцінювати пікову кількість повідомлень за хвилину, середній час обробки запиту, обсяг бази та число фонових процесів. Після запуску потрібен моніторинг CPU, RAM, swap, дискових операцій і часу відповіді. Якщо пам’ять стабільно тримається вище 75-80%, а черга росте швидше, ніж обробляється, конфігурацію слід збільшувати. Для більшості ботів перехід із 2 до 4 або 6 ГБ RAM є простим першим кроком, але погані запити до бази чи синхронна обробка важких операцій не зникнуть після переходу на дорожчий тариф.

Автор

Рівтін Максим

Власник бізнесу, розробник, системний адміністратор.