Метрика

Оптимизация и диагностика WordPress + WooCommerce: Trace-тесты для выявления слабых мест

Рубрики:VDS
Автор: Пряхин Станислав
Время прочтения: мин
Комментариев: нет
27.02.2025

Чтобы выявить слабые места WordPress + WooCommerce, можно использовать trace-тесты для диагностики производительности PHP, MySQL, Nginx, и Redis/Memcached.

🔹 1. Включаем PHP Slow Log (замедленные запросы)

Позволяет отследить долгие PHP-скрипты, которые могут вызывать задержки.

1️⃣ Открываем конфиг PHP-FPM:

sudo nano /etc/php/8.1/fpm/pool.d/www.conf

2️⃣ Добавляем (или редактируем) строки:

slowlog = /var/www/html/slow.log
request_slowlog_timeout = 2s

🔹 Что это делает?

  • Все запросы, дольше 2 секунд, будут логироваться в /var/www/html/slow.log.

3️⃣ Перезапускаем PHP-FPM:

sudo systemctl restart php8.1-fpm

🔹 2. Включаем MySQL Slow Query Log

Позволяет выявить медленные SQL-запросы.

1️⃣ Открываем конфиг MySQL:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

2️⃣ Добавляем:

slow_query_log = 1
slow_query_log_file = /var/www/html/mysql-slow.log
long_query_time = 2
log_queries_not_using_indexes = 1

🔹 Что это делает?

  • Логирует запросы дольше 2 секунд.
  • Показывает запросы без индексов.

3️⃣ Перезапускаем MySQL:

sudo systemctl restart mysql

🔹 3. Включаем трассировку запросов Redis

Если используешь Redis для кеша, можно отследить медленные запросы.

1️⃣ Открываем конфиг Redis:

sudo nano /etc/redis/redis.conf

2️⃣ Добавляем:

slowlog-log-slower-than 1000
slowlog-max-len 128

🔹 Что это делает?

  • Логирует запросы дольше 1 мс.
  • Хранит 128 последних медленных запросов.

3️⃣ Перезапускаем Redis:

sudo systemctl restart redis

4️⃣ Просмотр логов:

redis-cli SLOWLOG GET 10

🔹 4. Включаем логирование ошибок Nginx

Если 502, 504 или долгие запросы, их можно отследить.

1️⃣ Открываем конфиг сайта Nginx:

sudo nano /etc/nginx/sites-available/default

2️⃣ Добавляем:

error_log /var/www/html/nginx-error.log warn;
log_format trace '$request_time $remote_addr $request';
access_log /var/www/html/nginx-trace.log trace;

3️⃣ Перезапускаем Nginx:

sudo systemctl restart nginx

🔹 Теперь в /var/www/html/nginx-trace.log будут записываться медленные запросы.


🔹 5. Запускаем strace для PHP-FPM (глубокий анализ)

Если сервер все равно подвисает, можно посмотреть системные вызовы PHP.

1️⃣ Узнаем PID PHP-FPM:

pgrep php-fpm

2️⃣ Запускаем strace:

sudo strace -p <PID> -o /var/www/html/php-strace.log

🔹 Это запишет все системные вызовы PHP-FPM в /var/www/html/php-strace.log.


✅ Вывод

Теперь у тебя полный мониторинг слабых мест в WordPress + WooCommerce:

  1. PHP-FPM Slow Log/var/www/html/slow.log
  2. MySQL Slow Query Log/var/www/html/mysql-slow.log
  3. Redis Slow Logredis-cli SLOWLOG GET 10
  4. Nginx Request Trace/var/www/html/nginx-trace.log
  5. strace для PHP-FPM/var/www/html/php-strace.log

🚀 После тестов проанализируй логи и исправь медленные скрипты, SQL-запросы и кеширование! 🔥

Какие сценарии стоит проверять trace-тестами

Trace-тесты дают больше пользы, когда проверяется не абстрактная загрузка сайта, а конкретный путь пользователя. Для WooCommerce важно отдельно смотреть страницы, которые можно кешировать, и динамические сценарии, где сайт каждый раз обращается к PHP, базе данных или внешним сервисам.

Основные сценарии проверки

  • Главная страница и обычная информационная страница.
  • Категория товаров без фильтров и та же категория с фильтрами, сортировкой и пагинацией.
  • Карточка товара с вариациями, галереей, похожими товарами и отзывами.
  • Корзина, оформление заказа и AJAX-запросы, которые нельзя кешировать как статичные страницы.
  • Поиск по сайту, REST API и другие endpoints, если они часто встречаются в логах нагрузки.

Что фиксировать в результате

  1. URL и сценарий, который проверялся.
  2. TTFB и общее время ответа.
  3. Количество SQL-запросов и самые медленные из них.
  4. Внешние HTTP-вызовы и ожидание сторонних API.
  5. PHP-функции, хуки или плагины, которые чаще всего появляются в trace.
  6. Рекомендацию по исправлению: кеш, индекс, правка кода, cron, ограничение ботов или серверная настройка.

Такой формат делает диагностику воспроизводимой: к результату можно вернуться после правок и сравнить, действительно ли сайт стал быстрее и стабильнее.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

WebCreative Studio Logo

🍪 Мы собираем куки. Без них никак. Они нужны для вашего удобства — сайт просто не сможет нормально работать без них.

Создание сайтов в Донецке
Спасибо! Ваша заявка получена. Мы дадим обратную связь в ближайшее время.