Чтобы выявить слабые места 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:
- PHP-FPM Slow Log →
/var/www/html/slow.log
- MySQL Slow Query Log →
/var/www/html/mysql-slow.log
- Redis Slow Log →
redis-cli SLOWLOG GET 10
- Nginx Request Trace →
/var/www/html/nginx-trace.log
- strace для PHP-FPM →
/var/www/html/php-strace.log
🚀 После тестов проанализируй логи и исправь медленные скрипты, SQL-запросы и кеширование! 🔥