Коротка відповідь: Виміряйте перед тим, як щось міняти: таймінги curl -w ділять затримку між мережею, обробкою на сервері (TTFB) і завантаженням контенту. Високий TTFB вказує на застосунок/базу, повільне завантаження — на вагу сторінки чи мережу, а «повільно все, включно з SSH» — на ресурси сервера. Лагодьте виміряний шар, а не вгаданий.
Огляд
У «сайт повільний» чотири незалежні підозрювані: ресурси сервера, код застосунку, база даних і мережа/вага сторінки. У кожного дешевий тест. Гайд проходить їх у порядку ймовірності й зусиль.
Що потрібно мати
- Доступ по SSH і один відтворювано повільний URL.
Покрокова інструкція
- Розділіть час:
TTFB > 1s = серверна обробка; великий розрив між ttfb і total = важка сторінка чи повільний канал.curl -o /dev/null -s -w 'dns: %{time_namelookup}s connect: %{time_connect}s ttfb: %{time_starttransfer}s total: %{time_total}s\n' https://yourdomain.com/ - Виключіть дефіцит ресурсів: швидкі перевірки CPU і RAM; також
df -h(повні диски гальмують усе). - Шлях високого TTFB: увімкніть лог повільних запитів MySQL; додайте відсутні індекси; увімкніть кешування застосунку (обʼєктний кеш, кеш сторінок, OPcache для PHP).
- Шлях важкої сторінки: стисніть зображення, увімкніть gzip/brotli, зменшіть кількість сторонніх скриптів. Waterfall у dev-tools браузера назве найважчі ресурси.
- Якщо та сама сторінка швидка локально (
curlіз сервера на 127.0.0.1), але повільна віддалено — тестуйте мережевий шлях: див. швидкість мережі нижча за очікувану.
Типові проблеми
- Взагалі немає кешування: кожен запит бʼє в PHP+БД — найбільший виграш на більшості сайтів.
- Повільно лише у фіксовані години: cron-джоби/бекапи конкурують за I/O.
- Далека аудиторія: фізика — обслуговуйте користувачів із найближчої локації або додайте CDN.
- Сервер у swap: дефіцит RAM робить усе вʼязким; спершу гляньте
free -h.
Коли звертатися в підтримку
Якщо виміри показують, що повільна саме мережева ділянка до всіх напрямків, або продуктивність впала без жодних змін із вашого боку, — відкрийте тикет із curl-таймінгами, а для мережевих ділянок — MTR в обидва боки.
Часті запитання
Що таке TTFB і про що каже високе значення?
Time To First Byte — скільки сервер «думає» перед відправленням першого байта. Значення понад приблизно секунду вказують на роботу застосунку чи бази даних, а не на мережу чи розмір сторінки.
Яка одна зміна найбільше прискорює типовий динамічний сайт?
Кешування: кеш сторінок плюс обʼєктний кеш перетворюють більшість запитів на читання з памʼяті замість роботи PHP і SQL та регулярно скорочують час відповіді на порядок.
Схожі статті
- Сайт видає 504 Gateway Timeout
- Швидкість мережі нижча за очікувану
- Високе навантаження на CPU: швидка діагностика
- Як діагностувати низьку швидкість мережі
Потрібна допомога? Звернутися в підтримку Cloud2Y →
