VPS с 1 ГБ RAM: что поместится и как не упереться в память
Один гигабайт оперативной памяти — нижняя граница, на которой современный Linux-сервер ещё работает без постоянной борьбы за ресурсы. Это объём для одной задачи, а не для «всего сразу»: бот, небольшой сайт без тяжёлой CMS, служебный сервис для команды. Если заранее понимать, сколько занимает каждый процесс, VPS с 1 ГБ RAM месяцами работает без перезагрузок. Если ставить всё подряд, первым сообщением о проблеме станет упавшая база.
Что реально помещается в 1 ГБ
Чистая система без графики занимает 120–250 МБ: меньше всего у Alpine и минимального Debian, больше у Ubuntu со snapd и облачными агентами. Остаток распределяется так:
- Бот на Python или Node.js — 50–200 МБ на процесс. Два-три бота с SQLite помещаются спокойно, подробнее в разделе VPS для Telegram-бота.
- Статический сайт или лендинг на Nginx — десятки мегабайт, памяти остаётся с большим запасом.
- Корпоративный VPN для удалённого доступа сотрудников к офису: сам WireGuard работает в ядре и почти не потребляет памяти, панель управления добавит 100–150 МБ. См. VPS для WireGuard.
- Сайт на PHP с небольшой базой — возможно, но впритык: MariaDB с урезанным буфером займёт 150–250 МБ, на PHP-FPM останется 3–5 процессов.
- Агенты мониторинга, DNS-сервер, резервный MX, cron-задачи — типичная «служебная» нагрузка для такого сервера.
Не поместятся: Docker со связкой из базы, кэша и приложения, Windows Server, Java-приложения с кучей больше 256 МБ, Minecraft, GitLab, Elasticsearch, а также сборка фронтенда через npm или компиляция крупных пакетов. Для таких задач берите VPS с 2 ГБ RAM и больше. Обратная ситуация тоже бывает: под одного бота или VPN для пары сотрудников гигабайт избыточен, и тариф на 512 МБ справится не хуже.
Swap и OOM killer: страховка, а не запас
Когда процессам не хватает памяти, ядро запускает OOM killer и завершает самый «тяжёлый» из них — обычно базу данных или интерпретатор приложения. На 1 ГБ это случается чаще всего во время обновления пакетов, резервного копирования или наплыва посетителей.
- Создайте swap-файл на 1–2 ГБ:
fallocate -l 1G /swapfile,chmod 600,mkswap,swaponи строка в/etc/fstab. - Поставьте
vm.swappiness=10, чтобы ядро уходило в swap только при реальной нехватке. - Альтернатива — zram: сжатый swap прямо в памяти. На медленном диске он работает быстрее обычного swap-файла.
- Узнать, кого убило ядро, можно командой
journalctl -k | grep -i "killed process".
Swap не заменяет память: если сервер постоянно в него уходит, сайт будет отвечать секундами. Это сигнал перейти на тариф побольше, а не увеличивать swap-файл.
Гарантированная память и контейнерная виртуализация
На KVM гигабайт выделяется виртуальной машине целиком, и ядро внутри видит ровно его. На OpenVZ и LXC в тарифе часто пишут две цифры: гарантированный объём и burst — память, которую контейнер может временно занять, если она свободна на узле. Burst никто не обещает: в час пик соседи забирают его, и процессы падают, хотя ваш мониторинг показывал запас. Для расчётов берите только гарантированную цифру. Кроме того, в контейнере нельзя создать собственный swap и поменять параметры ядра — на 1 ГБ это ощутимее, чем на больших тарифах.
Как проверить память после покупки
free -h— смотрите столбец available: это объём, который программы получат без вытеснения кэша. Почти нулевой free при большом available — норма.cat /proc/meminfo | head -5— MemTotal на KVM обычно на 50–100 МБ меньше заявленного: часть съедает ядро. Если разница в сотни мегабайт, спросите поддержку.systemd-detect-virt— покажет kvm, openvz или lxc и подтвердит, какая виртуализация на самом деле.ps aux --sort=-rss | head— список самых прожорливых процессов. Лишние службы вроде snapd, cloud-init или ModemManager после первой загрузки можно отключить.
Ядра и диск в тарифах с 1 ГБ
Обычно такой тариф идёт с одним виртуальным ядром и диском на 10–25 ГБ. Для бота или VPN процессора хватает, а вот диск стоит проверить: логи и кэш пакетов быстро съедают 10 ГБ. Если выбор между 1 ГБ на NVMe и 1 ГБ на HDD, берите NVMe — при активном swap разница в отклике заметна. А для системы с минимальным расходом памяти присмотритесь к VPS с Alpine Linux: она стартует примерно на 50 МБ.