«Сервер гальмує, давайте подвоїмо пам'ять» — найдорожчий рефлекс у хостингу. Іноді він слушний. Але часто машина чекає на диск або процесор завантажений ущент, і нова пам'ять просто лежить без діла, поки рахунок росте вдвічі.
Тому перш ніж говорити про те, кому потрібно 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, диска й порту.
Коментарі
Поки немає коментарів. Будьте першим.