Віртуальний хостинг Загальна

Оперативна пам'ять на shared-хостингу: ресурс, про який вам ніколи не розкажуть у рекламі

Технологічний фон що символізує оперативну пам'ять хостинг сервера

Уявіть, що ви орендуєте кімнату в комунальній квартирі. Вам обіцяють «необмежений доступ до кухні». Звучить чудово, поки не виявиться, що кухня - одна на двадцять сусідів, а єдина плита постійно зайнята кимось, хто варить борщ на три дні. Саме так працює оперативна пам'ять на більшості shared-хостингів. Провайдери продають вам «безлімітний хостинг», але про найцінніший ресурс - RAM - мовчать, як партизани. І саме цей ресурс частіше за все стає причиною того, що ваш сайт повільний, нестабільний або просто лежить лицем у підлогу.

Сьогодні ми розберемо все, що ви повинні знати про оперативну пам'ять на shared-хостингу: скільки її реально потрібно, як провайдери розподіляють цей ресурс, і що ви можете зробити, аби вичавити максимум з того, що маєте.

Код мови програмування на моніторі для оптимізації RAM на shared хостингу
Код мови програмування на моніторі для оптимізації RAM на shared хостингу

Чому RAM - це головна валюта вашого сайту

Коли ми говоримо про швидкість сайту, більшість одразу думає про процесор або SSD-диск. Але правда в тому, що оперативна пам'ять - це найбільш дефіцитний ресурс на будь-якому shared-сервері. Дискового простору можна додати. Процесорний час розподіляється динамічно. А ось RAM - це фізична межа, яку неможливо обійти.

Ось як це працює. Кожен раз, коли хтось заходить на ваш сайт, сервер завантажує в оперативну пам'ять PHP-інтерпретатор, підключається до бази MySQL, генерує HTML-сторінку і віддає її браузеру. Один такий запит може споживати від 20 до 128 МБ RAM залежно від складності сайту. WordPress з десятком плагінів легко з'їдає 64 МБ на один запит. А тепер помножте це на 10 одночасних відвідувачів.

Типовий shared-сервер має 64-128 ГБ RAM на борту. На ньому живе від 200 до 500 акаунтів. Проста арифметика: кожному дістається в середньому 256-512 МБ. Але ніхто вам цього не скаже у рекламному банері.

«Оперативна пам'ять - це як кисень для сервера. Поки його вистачає, ніхто не помічає. Коли закінчується - всі задихаються одночасно.» - Томас Лімончеллі, автор книги «The Practice of System and Network Administration»

Скільки RAM насправді виділяє вам провайдер

Більшість хостинг-провайдерів ніколи не вказують ліміт оперативної пам'яті у тарифних планах. Вони пишуть про диск, трафік, кількість сайтів - але не про RAM. Чому? Тому що цифри вас не порадують.

Я зібрав дані по п'яти популярних європейських провайдерах для порівняння:

Провайдер Тариф Реальний ліміт RAM Вказано в тарифі?
Hetzner Level 4 512 МБ Так (в документації)
OVH Performance 1 ГБ Ні
SiteGround GrowBig 768 МБ Ні
Bluehost Plus ~512 МБ Ні
Hostinger Business ~384 МБ Частково

Зверніть увагу: тільки один провайдер з п'яти чесно вказує ліміт пам'яті. Решта залишають це на рівні «fair use policy» - мовляв, ми самі вирішимо, коли ви використовуєте занадто багато.

Як дізнатися свій реальний ліміт? Зайдіть до cPanel і знайдіть розділ «Resource Usage» або «CloudLinux LVE Statistics». Якщо ваш хостинг використовує CloudLinux (а більшість використовують), ви побачите точну цифру в полі «Physical Memory Limit».

Графіки використання ресурсів та ліміти RAM сервера на shared хостингу
Графіки використання ресурсів та ліміти RAM сервера на shared хостингу

Що відбувається, коли пам'ять закінчується

Ось тут починається найцікавіше. Коли ваш сайт досягає ліміту RAM, можливі три сценарії. І жоден з них вам не сподобається.

  1. Сервер повертає помилку 500 або 503. Відвідувач бачить порожню сторінку. Google бачить мертвий сайт. Ваші позиції падають.
  2. Процес «вбивається» системою (OOM Killer). Linux має вбудований механізм, який примусово завершує процеси, що споживають забагато пам'яті. Ваш запит до бази просто зникає, наче його ніколи не існувало.
  3. Сайт потрапляє у swap. Сервер починає використовувати диск замість оперативної пам'яті. Це як пересісти з автомобіля на велосипед посеред автобану - технічно ви рухаєтесь, але час завантаження сторінки зростає в 10-50 разів.

Ви можете навіть не знати, що це відбувається. Сайт ніби працює, але повільно. Відвідувачі йдуть. Конверсія падає. А ви думаєте, що проблема в темі WordPress або повільному інтернеті клієнтів.

Порада з особистого досвіду: якщо ваш сайт раптово став повільнішим без жодних змін з вашого боку - першим ділом перевірте споживання RAM. У 7 випадках з 10 причина саме тут.

Як вичавити максимум з обмеженої пам'яті

Добра новина: навіть з 256-512 МБ можна тримати сайт, що витримує 5000-10000 відвідувачів на день. Потрібно просто розумно управляти ресурсами.

  • Встановіть кешування. Плагіни типу WP Super Cache або LiteSpeed Cache зберігають готові HTML-сторінки і віддають їх без виклику PHP. Економія RAM - до 80% на кожному запиті.
  • Зменшіть PHP memory_limit до розумного мінімуму. Стандартне значення 256 МБ на один процес - це забагато для більшості сайтів. Спробуйте 128 МБ або навіть 96 МБ.
  • Деактивуйте плагіни, що жеруть пам'ять. Один плагін для генерації PDF або обробки зображень на льоту може з'їдати більше RAM, ніж весь інший сайт разом.
  • Використовуйте OPcache. Цей модуль PHP зберігає скомпільований байт-код у пам'яті, замість того щоб компілювати скрипти при кожному запиті. Прискорення в 2-3 рази - не перебільшення.
  • Оптимізуйте запити до бази. Одна «жирна» вибірка з MySQL може тримати з'єднання і пам'ять секундами. Плагін Query Monitor покаже, які саме запити гальмують.

І ще один лайфхак, про який рідко пишуть. Cron-завдання WordPress часто стають тихими вбивцями RAM. Якщо у вас десяток плагінів, кожен з яких запускає фонові процеси через wp-cron - вони можуть одночасно стартувати і вичерпати весь ліміт за секунди. Вимкніть вбудований wp-cron і налаштуйте серверний cron з інтервалом раз на 15 хвилин.

Користувачі хмарного shared хостингу та розподіл оперативної пам'яті між сайтами
Користувачі хмарного shared хостингу та розподіл оперативної пам'яті між сайтами

Коли shared-хостинг вже не рятує

Будьмо чесними. Є межа, після якої ніяка оптимізація не допоможе. Якщо ваш сайт - це інтернет-магазин з 10 000+ товарів, або портал з 50 000 унікальних відвідувачів на день, або складний SaaS-продукт з динамічними дашбордами - shared-хостинг фізично не витягне.

Ось прості маркери, що час переїжджати:

  1. Ви регулярно бачите помилки 500/503, і кешування вже увімкнене.
  2. Споживання RAM стабільно на рівні 90-100% ліміту.
  3. Час генерації сторінки (TTFB) перевищує 800 мс навіть для кешованих сторінок.
  4. Провайдер надсилає попередження про перевищення ресурсів частіше ніж раз на тиждень.
  5. Ваш бізнес втрачає гроші через повільність, і це вже можна порахувати.

VPS з 2-4 ГБ RAM коштує 10-20 євро на місяць. Це ціна двох чашок кави у Відні. А різниця у продуктивності - як між міським автобусом і таксі.

Що запитати у провайдера перед покупкою

Перед тим як платити за shared-хостинг, задайте провайдеру п'ять конкретних питань. Якщо він не відповість хоча б на три - шукайте іншого.

  • Який жорсткий ліміт оперативної пам'яті для мого акаунту?
  • Скільки акаунтів розміщено на одному фізичному сервері?
  • Яку систему ізоляції ви використовуєте (CloudLinux, CageFS, інше)?
  • Чи є моніторинг споживання ресурсів у реальному часі в панелі клієнта?
  • Що відбувається при перевищенні ліміту - сайт падає чи сповільнюється?

Провайдер, який готовий відкрито говорити про обмеження, зазвичай виявляється надійнішим за того, хто ховається за словами «необмежений» і «безлімітний». Прозорість - це ознака зрілості, а не слабкості.

Запам'ятайте головне: безлімітного хостингу не існує. Кожен сервер має фізичну межу, і ваш сайт ділить її з сотнями інших. Питання не в тому, чи зіткнетесь ви з цією межею. Питання в тому - коли. І чи будете ви готові до цього моменту, чи дізнаєтесь про проблему від розлюченого клієнта, який не зміг оформити замовлення о третій ночі?