[Tramontina.vn.ua](http://Tramontina.vn.ua)
Інтернет-магазин кухонного посуду, ножів, аксесуарів та товарів для кухні бренду Tramontina.
Сайт працює на PrestaShop та містить:
- каталог товарів;
- блог;
- SEO-сторінки;
- систему імпорту та синхронізації товарів;
- інтеграції з платіжними сервісами;
- модулі для маркетингу та оформлення товарів.
---
Особливості проекту
PrestaShop 8
Проект був перенесений та адаптований під сучасну версію PrestaShop з урахуванням:
- сумісності модулів;
- стабільності роботи;
- SEO;
- швидкодії;
- навантаження на сервер.
---
Основні задачі та рішення
Оптимізація серверного навантаження
У процесі роботи були виявлені періодичні зависання сервера та високе навантаження на MariaDB.
Симптоми
- високий CPU процесу
mysqld;- використання swap;
- підвисання категорій та сторінок товарів;
- велика кількість SQL-запитів без довгих processlist.
Причина
Проблема була знайдена у модулі
productlabel, який:- виконував складні SQL-запити для кожного товару;
- генерував багато
LEFT JOIN;- використовував вкладені
SELECT DISTINCT;- запускався десятки разів на одну сторінку категорії.
Що було зроблено
- переписано SQL-запит із
SELECT DISTINCT на EXISTS;- додано кешування результатів функції;
- зменшено навантаження на MariaDB;
- оптимізовано обробку лейблів товарів;
- очищено кеші та стабілізовано роботу PHP-FPM.
---
Інфраструктура
Сервер
- VPS KVM
- AlmaLinux / Webuzo
- Apache + PHP-FPM
- MariaDB
Використовується
- Git для контролю версій;
- VSCode + WinSCP для роботи з кодом;
- cron-задачі для синхронізації та імпорту товарів.
---
SEO та контент
На сайті активно ведеться:
- SEO-оптимізація;
- створення категорій;
- оптимізація назв товарів;
- генерація описів;
- блог та інформаційні сторінки.
---
Поточні задачі
- подальша оптимізація модулів;
- зменшення навантаження на БД;
- стабілізація cron-процесів;
- розвиток структури знань проекту;
- перехід на Git workflow для змін та деплою.
---
Примітка
Проект постійно розвивається та оптимізується в процесі роботи.