Как да автоматизираме кеширането на голям онлайн магазин без да „счупим“ сървъра: Реален опит от казус с клиент на PR22A
Скритият враг на скоростта
В света на мебелния бизнес наличностите и цените се променят постоянно. Но ако имате хиляди продукти, ръчното чистене на кеша след всяка актуализация е непосилно, а автоматизираното – често води до претоварване на хостинга. В тази статия ще ви покажем как оптимизирахме процеса за наш клиент, използвайки LiteSpeed Cache, WP-CLI и малко „сървърна магия“.
Проблемът: Пикове в натоварването и 100% CPU
Честото чистене на кеша (на всеки 2-3 часа) е нож с две остриета. От една страна, клиентите виждат актуални данни. От друга, веднага след чистенето, сървърът трябва да генерира хиляди страници наново. При нашия клиент това доведе до:
- CPU Usage от 100%, което забавяше сайта за реалните купувачи.
- Timeout грешки (cURL error 28), защото сървърът не успяваше да обработи заявките навреме.
- Прекъснати процеси, които оставяха части от сайта некеширани.
Решението: Интелигентна автоматизация в 3 стъпки
- Използване на PHP-CLI за „чиста“ работа
Вместо да разчитаме на стандартния WordPress Cron, който зависи от посещенията, настроихме системна крон задача. Ключът тук беше използването на директния път към PHP-CLI на сървъра, за да избегнем CGI конфликти.
- Приоритизиране с командата nice
За да не позволяваме на автоматичните процеси да пречат на клиентите, използвахме Linux командата /usr/bin/nice -n 19. Тя инструктира сървъра да изпълнява чистенето с най-нисък приоритет – т.е. само когато има свободен ресурс.
- Шахматно разположение (Time Offsetting)
Една от най-големите грешки е стартирането на чистенето и „подгряването“ (Crawler) едновременно. Настроихме ги със застъпване:
- Час 00:00: Пълно изчистване на кеша.
- Час 00:20: Стартиране на Crawler-а (когато сървърът вече е спокоен).
Резултатът: Работещо решение
След фините настройки на интервалите за обхождане (Crawl Interval) и увеличаване на лимита за натоварване (Server Load Limit), постигнахме:
- Зелена зона на сървърните ресурси (CPU под 60%).
- 100% автоматизация – без нужда от ръчна намеса.
- Светкавичен сайт за всеки потребител благодарение на предварително „подгретия“ кеш.
Техническото „Cheat Sheet“ (Финалната формула)
За тези, които искат да го приложат веднага, ето работещата крон задача за cPanel:
За изчистване на кеша (на всеки 3 часа): 0 */3 * * * /usr/bin/nice -n 19 /opt/cpanel/ea-php83/root/usr/bin/php -d memory_limit=256M /usr/local/bin/wp litespeed-purge all –path=/home/potrebitel/public_html –allow-root > /home/potrebitel/lscache_log.txt 2>&1
За Crawler-а (20 минути по-късно): 20 */3 * * * /usr/bin/nice -n 19 /opt/cpanel/ea-php83/root/usr/bin/php /usr/local/bin/wp litespeed-crawler run –path=/home/potrebitel/public_html –allow-root >/dev/null 2>&1
Вашият магазин нуждае ли се от „интелигентно“ кеширане?
Ако отговорите с „ДА“ на повече от два от тези въпроси, вероятно губите продажби заради технически несъвършенства:
- Актуализирате ли често продуктите си? (цени, наличности, нови модели, вариации)
- Забелязвате ли „бавно“ зареждане на страници, веднага след като сте изчистили кеша ръчно?
- Сайтът ви съдържа ли над 500 уникални URL адреса? (продукти, категории, филтри)
- Виждали ли сте някога грешка „508 Resource Limit Reached“ в панела на вашия хостинг?
- Имате ли висок процент на „Bounce Rate“ (отпадане на потребители) в категориите с много продукти?
Технологията в услуга на бизнеса
Оптимизацията на един онлайн магазин не приключва с неговия дизайн и просто работеща количка. Тя е „под капака“ – в правилната комуникация между софтуера и сървъра. В PR22A вярваме, че автоматизацията е ключът към мащабирането. Когато крон задачите работят правилно, вие не просто пестите време – вие гарантирате на вашите клиенти безпроблемно пазаруване, а на сървъра си – достатъчен ресурс за обслужване на заявките от сайта ви.
Ако имате проблем със скоростта на вашия WordPress сайт, попълнете нашата форма и ние ще се свържем с вас, за да разгледаме индивидуално всеки казус!
Телефон за връзка:
E-mail: