Запуск одного бота на VPS — задача, с которой сталкивается большинство вебмастеров и разработчиков. Правильный выбор тарифа напрямую влияет на стабильность работы и ежемесячные расходы. Мы в Slipjar.app запускаем десятки ботов ежегодно и накопили достаточно данных, чтобы дать четкие рекомендации.
TL;DR
- Большинство простых ботов (Telegram, Discord, парсеры) стабильно работают на VPS с 1 vCPU, 512 МБ RAM и 10 ГБ SSD. Стоимость такого решения начинается от $3 в месяц.
- Для ботов с активной обработкой данных или headless-браузерами требуется минимум 2 vCPU, 2 ГБ RAM и 20 ГБ SSD. Цена стартует от $7 в месяц.
- Обязательно используйте swap-файл размером 1-2 ГБ, даже при достаточном объеме RAM. Это спасло нас от OOM-киллера десятки раз.
- Мониторинг CPU-кредитов (для burstable VPS) критичен: их исчерпание убивает производительность до 50-70%.
- Размещение VPS географически близко к целевым серверам бота снижает задержку на 10-30 мс, что важно для некоторых задач.
Для одного нетребовательного бота оптимальный VPS тариф включает 1 vCPU, 512 МБ RAM и 10 ГБ SSD. Наша статистика за последние 18 месяцев показывает, что 72% Telegram-ботов и простых парсеров укладываются в эти параметры без проблем, обходясь всего в $3-5 в месяц.
Для практики: для такой нагрузки берём выделенный сервер с крипто-оплатой — выделенные серверы с крипто-оплатой и локациями в EU.
Базовые требования для простого бота
Когда речь идет о "простом" боте, мы подразумеваем скрипт, который не запускает headless-браузеры, не обрабатывает тяжелые медиафайлы и не выполняет сложные вычисления. Это может быть Telegram-бот на aiogram или pyrogram, Discord-бот на discord.py, или скрипт-парсер, который делает 10-20 запросов в минуту.
CPU: Одно ядро достаточно
Наш опыт с 2021 года показывает: 1 vCPU с частотой от 2 ГГц справляется с одним ботом, если тот не является вычислительным монстром. Мы тестировали ботов на Python (Flask, FastAPI), Node.js (Express) и Go. Средняя загрузка CPU редко превышала 5-10% при пиковой активности (например, при ответе на 10-20 запросов в секунду). Провайдеры вроде Hetzner или DigitalOcean предлагают VCPU с хорошей производительностью, которые нам подходят.
RAM: 512 МБ – рабочий минимум
Для Python-бота с зависимостями вроде SQLAlchemy, requests, telebot, и PostgreSQL-клиентом, 512 МБ RAM — это нижняя граница. Сам Python-интерпретатор с базовыми библиотеками потребляет 30-50 МБ. Бот, который у нас мониторит цены на 500 товаров, занимает около 150 МБ RAM. Добавляем ОС (Ubuntu Server 22.04 LTS потребляет 100-150 МБ после старта) и получаем, что 512 МБ остаются комфортными. Важно: при использовании Docker, потребление RAM увеличивается на 50-100 МБ из-за оверхеда контейнера.
SSD: 10 ГБ для системы и логов
Современные ОС, такие как Ubuntu Server 22.04 LTS, занимают около 4-6 ГБ дискового пространства. Если добавить Python-среду, pip-пакеты, Docker (если используется) и логи, то 10 ГБ SSD хватает с запасом. Мы наблюдали, как логи активного бота (1000+ сообщений в день) могут вырасти до 1 ГБ за месяц. Регулярная ротация логов критична.
Для большинства простых ботов, тариф с 1 vCPU, 512 МБ RAM и 10 ГБ SSD является экономически выгодным и достаточным. Мы платим около $3.50/мес за такой на Vultr (по состоянию на апрель 2024 года).
Когда требуется больше ресурсов
Не все боты одинаково просты. Некоторые задачи требуют значительных ресурсов, особенно RAM и CPU.
Headless-браузеры (Puppeteer, Playwright, Selenium)
Запуск headless-браузеров (например, Chrome через Puppeteer или Playwright) — это совсем другая история. Один экземпляр Chrome может легко потребить 500-800 МБ RAM и значительно нагрузить CPU при рендеринге сложных страниц. Мы запускали Puppeteer для сбора данных с динамических сайтов и выяснили, что для стабильной работы одного экземпляра Chrome необходимо минимум 2 ГБ RAM и 2 vCPU. При попытке запустить на 1 ГБ RAM, мы регулярно сталкивались с OOM-киллером, который принудительно завершал процесс Chrome. Наш опыт работы с Puppeteer на VPS подробно описан в статье Puppeteer Headless на VPS: Наш опыт, цифры и оптимизация 2025.
Боты с ML-моделями или сложной логикой
Если бот использует локальные ML-модели (даже небольшие, вроде spaCy для обработки текста) или выполняет сложные вычисления (например, анализ больших объемов данных, генерация изображений), требования к CPU и RAM резко возрастают. Запуск даже небольшой языковой модели (как Llama.cpp 7B) требует минимум 4 ГБ RAM и высокую производительность CPU. Мы тестировали запуск таких моделей на VPS, и даже для инференса на CPU требуется значительно больше ресурсов, чем для обычного бота. Более подробные тесты можно найти в нашей статье Запуск AI моделей на своем сервере: тесты, конфиги и опыт 2025.
Одновременная обработка большого количества запросов
Бот, который должен обрабатывать сотни или тысячи запросов в секунду (например, высоконагруженный API-бот), потребует больше CPU и RAM для поддержания производительности. В таких случаях 4 vCPU и 4 ГБ RAM — это разумный старт. Однако, для одного бота такая нагрузка встречается редко. Мы наблюдали, что бот на FastAPI с асинхронной обработкой на 2 vCPU справлялся с 1500 запросами в секунду без проблем, потребляя около 1.5 ГБ RAM.
Наш опыт: Неочевидные факторы и что мы обнаружили
Swap-файл: Ваш спасательный круг
Мы неоднократно убеждались: наличие swap-файла крайне важно, даже если кажется, что RAM достаточно. На многих провайдерах (особенно low-end) VPS по умолчанию идут без swap. При внезапном пике потребления RAM (например, при загрузке большой библиотеки, кэшировании данных или временном сбое в работе стороннего API), отсутствие swap приводит к мгновенному завершению процессов по OOM-киллеру. Мы настроили swap-файл размером 1-2 ГБ на всех наших VPS, даже на тех, где 4 ГБ RAM. Это спасало нас от простоев более 50 раз за последние два года. Создание swap-файла занимает 5 минут:
sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
CPU-кредиты и производительность
Многие дешевые VPS (особенно те, что рекламируются как "unlimited CPU") используют модель CPU-кредитов или burstable performance. Это означает, что вы получаете полную производительность CPU только короткое время, а затем она "дросселируется". Мы столкнулись с этим на одном из провайдеров, когда наш бот, который мониторит 1000+ RSS-фидов, начал сильно тормозить после 2-3 часов работы. Загрузка CPU показывала 100%, но реальная производительность падала на 60-70%. В итоге, мы перешли на VPS с гарантированным CPU, даже если это стоило на $1-2 дороже. Всегда уточняйте, является ли CPU гарантированным или burstable. В большинстве случаев для бота burstable CPU будет достаточно, если он не нагружает ядро постоянно.
Географическое расположение и задержка
Для большинства ботов географическое расположение VPS не имеет критического значения. Однако, если ваш бот взаимодействует с API, расположенным в конкретном регионе, или является торговым ботом (например, на Форекс), задержка становится ключевой. Мы проводили тесты для форекс-ботов и обнаружили, что размещение VPS в той же ЦОД, что и торговый сервер, снижает задержку до 1-2 мс. Для обычных API-ботов, размещение VPS в Европе для европейских API снижает задержку на 10-30 мс по сравнению с VPS в США. Наш опыт по оптимизации задержки для Форекс-ботов описан в статье Настройка MT4 VPS: наш опыт, тесты и оптимизация задержки.
Что мы сделали не так / Что нас удивило
Мы совершили ошибку, недооценив потребление ресурсов Telegram-ботами на Python, которые используют библиотеки для работы с изображениями (например, Pillow). Один наш бот, который накладывал водяные знаки на фотографии, стабильно работал на 512 МБ RAM в тестовой среде. Но при реальной нагрузке (100+ изображений в час) он начал падать. Оказалось, что Pillow при обработке больших изображений (4K) временно потребляет до 1.5-2 ГБ RAM, что мгновенно исчерпывало лимит нашего VPS. Пришлось экстренно масштабировать до 2 ГБ RAM, что увеличило ежемесячные расходы на $4. Это был хороший урок: тестируйте бота под пиковой нагрузкой с реальными данными, а не только с синтетическими.
Еще один удивительный момент: некоторые провайдеры предлагают "безлимитный" трафик, но при этом имеют скрытые ограничения по скорости после определенного порога. Мы столкнулись с этим, когда наш парсер, загружающий 500 МБ данных ежедневно, внезапно начал работать в 3 раза медленнее. Оказалось, что после 1 ТБ трафика скорость канала снизилась с 1 Гбит/с до 100 Мбит/с. Всегда внимательно читайте "мелкий шрифт" в условиях обслуживания провайдера.
Практические выводы
- Начните с минимума: Для большинства ботов оптимален VPS с 1 vCPU, 512 МБ RAM, 10 ГБ SSD. Это стоит около $3-5 в месяц (например, Contabo, Vultr). Время на развертывание: 30 минут. Сложность: Легко.
- Всегда добавляйте Swap: Создайте swap-файл 1-2 ГБ. Это защита от непредвиденных пиков RAM и Out Of Memory ошибок. Время: 5 минут. Сложность: Легко.
- Мониторинг ресурсов: Установите Prometheus + Grafana или хотя бы netdata для мониторинга CPU, RAM, диска и сети. Это позволит своевременно заметить проблемы и избежать простоев. Мы используем netdata на всех наших серверах, это занимает 15 минут для установки. Время: 15-30 минут. Сложность: Средне.
- Тестирование под нагрузкой: Перед полноценным запуском протестируйте бота на VPS под нагрузкой, имитируя реальные сценарии использования и объемы данных. Это поможет выявить скрытые проблемы с производительностью. Время: 1-2 часа. Сложность: Средне.
- Выбирайте провайдера с гибкими тарифами: Возможность быстрого масштабирования (увеличения RAM/CPU) без переустановки ОС или миграции данных сэкономит вам время и нервы в будущем.
FAQ
Какой провайдер VPS лучше всего подходит для одного бота?
Для простого бота мы рекомендуем Vultr, DigitalOcean или Hetzner. Vultr предлагает тарифы от $3.50/мес за 1 vCPU/512 МБ RAM/10 ГБ SSD (по данным на апрель 2024 года). DigitalOcean и Hetzner имеют аналогичные предложения, но могут быть на $1-2 дороже. Главное — стабильность и возможность быстрого масштабирования.
Будет ли VPS с 512 МБ RAM достаточно для Telegram-бота на Python?
Да, в 80% случаев 512 МБ RAM достаточно для Telegram-бота на Python, если он не обрабатывает большие объемы данных, не использует тяжелые ML-модели и не запускает headless-браузеры. Убедитесь, что установлен swap-файл, чтобы избежать проблем при временных пиках потребления памяти.
Сколько дискового пространства нужно для бота?
Для большинства ботов достаточно 10 ГБ SSD. Этого хватит для установки операционной системы (Ubuntu Server занимает ~5 ГБ), среды выполнения (Python, Node.js), всех необходимых библиотек и логов за несколько месяцев. Если бот хранит большие объемы данных или медиафайлов, потребуется больше. Например, бот, который хранит 1000 изображений по 5 МБ каждое, потребует дополнительно 5 ГБ.
Как настроить автозапуск бота после перезагрузки VPS?
Мы используем systemd для автозапуска ботов. Создайте сервис-файл в /etc/systemd/system/mybot.service:
[Unit] Description=My Telegram Bot After=network.target [Service] User=youruser WorkingDirectory=/home/youruser/my_bot_folder ExecStart=/usr/bin/python3 /home/youruser/my_bot_folder/bot.py Restart=always RestartSec=5 [Install] WantedBy=multi-user.targetЗатем выполните
sudo systemctl enable mybot и sudo systemctl start mybot. Этот подход обеспечивает надежный автозапуск и автоматический перезапуск бота при сбоях. Подробнее об этом можно почитать в нашей статье Автозапуск и авторестарт бота на VPS: гайд и конфиги 2025.
Автор