«Сервер тормозит, давайте удвоим память» — самый дорогой рефлекс в хостинге. Иногда он верный. Но часто машина ждёт диск или процессор загружен под завязку, и новая память просто лежит без дела, пока счёт растёт вдвое.
Поэтому прежде чем говорить о том, кому нужно 64 GB, давайте разберёмся, чего вам на самом деле не хватает. Если нужны просто типичные цифры памяти под разные задачи, они есть в нашем раннем гайде Сколько RAM нужно VPS, включая формулу для языковых моделей. Эта статья — про диагностику: RAM, диск или CPU.
Три команды, две минуты
Запускайте их на медленном сервере, пока он медленный, а не в четыре утра, когда ничего не происходит:
free -m
vmstat 1 10
cat /proc/pressure/cpu /proc/pressure/memory /proc/pressure/io
Вот как их читать без учебника.
free -m. На столбец free не смотрите: Linux специально заполняет свободную память дисковым кэшем. Смотрите на available. Если там пара сотен мегабайт на машине с 2 GB, а used в swap растёт, памяти впритык.
vmstat 1 10. Большую часть истории рассказывают четыре столбца:
| Столбец | Что значит | Указывает на |
|---|---|---|
si / so | страниц из swap и в swap в секунду | RAM |
wa | % времени, когда CPU ждёт диск | диск |
us + sy | % времени, когда CPU работает | CPU |
st | % времени, когда гипервизор отдал ваш CPU кому-то другому | CPU (vCPU делится с соседями) |
Пара ненулевых значений si/so время от времени — норма. Настоящий сигнал — устойчивый свопинг каждую секунду.
/proc/pressure/*. Самый честный из трёх. Каждый файл показывает долю времени, когда задачи стояли в ожидании этого ресурса. some avg60=25.00 в memory значит, что за последнюю минуту что-то четверть времени ждало памяти. У какого из трёх файлов цифры больше всех, там и узкое место.
Если дело в диске
Высокий wa, высокое давление на io, свопинга мало. Обычная причина — база или приложение с кучей логов читает больше, чем помещается в кэш.
И вот поворот: больше RAM это может вылечить, потому что Linux закэширует больше диска. Если база весит 6 GB, а горячая часть — 3 GB, переход с 2 GB на 8 GB памяти может заставить проблему с диском исчезнуть. Но если база — 300 GB и каждый запрос трогает новую её часть, никакой разумный объём RAM её не закэширует. Тогда помогут индексы получше, запросы поменьше или другая структура данных. Все тарифы здесь на NVMe, так что медленным обычно оказывается не сам диск, а характер доступа к нему.
Если дело в CPU
Высокий us+sy, давление на cpu, свопинга нет, ожидания диска мало. Сжатие, сборки, кодирование видео, обработка картинок, криптографические вычисления. Память тут не поможет вообще.
Следите и за st. На VPS vCPU — это доля физического ядра, а не ядро целиком: число в тарифе — потолок для всплесков, а длительная полная нагрузка может ограничиваться, чтобы всем на машине было честно. Если вашей задаче нужны все ядра на 100% часами, это вопрос к задаче, и мы лучше скажем это сейчас, чем после того, как вы купите тариф побольше.
Если это правда RAM
Устойчивый свопинг, растущее давление на память, OOM killer в dmesg. Теперь вопрос — сколько.
2 GB хватает, часто годами, для: одного бота или нескольких, небольшого API, VPN, статического сайта за Nginx, пары парсеров по cron, агента мониторинга. Micro даёт 2 vCPU, 2 GB и 25 GB за $5 в месяц на NAT или за $10 со своим IPv4.
4–8 GB — комфортная середина: веб-приложение вместе с базой, небольшой поисковый индекс, headless-браузерная автоматизация, пара агентов бок о бок.
32–64 GB — для данных, которые обязаны жить в памяти:
- база, у которой рабочий набор — десятки гигабайт, чтобы кэш действительно держал горячие данные;
- большой кэш или очередь в памяти, которые не могут уйти на диск, не замедлив всё;
- векторный индекс для поиска по миллионам фрагментов (реальные цифры — в статье Свой RAG в больших масштабах);
- инференс языковой модели среднего размера на CPU, где веса должны поместиться в RAM;
- консолидация: десять сервисов, которые раньше жили на десяти маленьких серверах.
Для этого и существует Pro-64: 12 vCPU, 64 GB RAM, 600 GB NVMe и выделенный IPv4 за $70 в месяц. Ступени между — Pro-32 за $40 и Pro-48 за $55; выше — Pro-80 за $90. Доступность локаций для Pro-тарифов видна при заказе.
Где большая машина не подходит
Три случая, когда 64 GB — неправильный ответ, даже если бюджет позволяет.
Работа на GPU. Ни у одного из этих тарифов нет GPU. Если модели нужен GPU для обучения или быстрого инференса, машина на CPU с кучей памяти её запустит — медленно, и вы будете платить за терпение.
Длительные задачи на полном CPU. Как сказано выше: vCPU — это ресурс для всплесков. Двенадцать штук на 100% круглые сутки — не то, для чего строится VPS.
И «на всякий случай». Если три команды не показывают давления на память, лишние 60 GB — это кэш для файлов, которые вы не читаете. Начните с меньшего. Переход на больший тариф того же сетевого типа добавляет vCPU, RAM и диск на месте, с одной перезагрузкой, как описано в разделе Смена тарифа. Вниз на месте нельзя, так что лишний размер стоит реальных денег: чтобы уменьшиться, придётся переезжать на новый сервер, а перенос VPS без простоя — та ещё работа, без которой лучше обойтись.
Если сравниваете тарифы разных провайдеров, статья Как читать характеристики VPS объясняет, что на самом деле обещают цифры vCPU, диска и порта.
Комментарии
Пока нет комментариев. Будьте первым.