Отже, ви хочете прискорити Joomla Блог Сабинича Вадима

Доки Joomla буде однією з гнучких і потужних систем управління вмістом (Content Management Systems, CMS), вона страждатиме в області продуктивності. Найкращої продуктивності можна досягти використанням Lighttpd (НАМНОГО швидше, ніж Apache) на виділеному сервері з локальним сервером MySQL, включаючи рівні оптимізації, що надаються чи не в кожному хостинг-центрі. Для багатьох адміністраторів перехід на виділений сервер не є повсякденною практикою.

Оптимізація шаблону Почнемо, мабуть, з однієї з найпоширенішої (і найбільш згубної) проблеми, яку я зустрів на Joomla (та й будь-якому іншому движку). Існує, буквально, тисячі шаблонів, створених спеціально для Joomla і більшість з них виглядають досить пристойно, але і впливають на продуктивність сервера вони так само пристойно. Проблема в тому, що шаблони часто містять більше 70 різних зображень на одній сторінці. Кожне зображення генерує новий запит (залежно від затримок у мережі це займає від 0,1 до 1 секунди) і скачується. Зі збільшенням розміру зображення проблема також збільшується і оптимізації не піддається. Існує відмінний сайт, який допоможе вам визначити проблемну область у вашому шаблоні. Перевіряйте ваш сайт навіть після незначних змін (The Website Analyzer).

Gzip Використання Gzip-стиснення для ваших сторінок - 90% рішення. Якщо процесор вашого сервера швидше, ніж інтернет-канал (і знову 90%), тоді увімкніть Gzip-стиск і це реально збільшить швидкість роботи вашого сайту. Я говорю це тому, що стиснення сторінок досить відчутно навантажує CPU. Спробуйте увімкнути Gzip і подивитися на скільки збільшилася швидкодія. Якщо нена скільки, чи ви отримуєте попередження від процесора вашого сервера, вимкніть Gzip. Бо це може принести деякі проблеми, але здебільшого допоможе. Єдиний варіант дізнатися про це напевно — спробувати.

Не всі компоненти однаково корисні Якщо ви подивіться в каталог розширень для Joomla, то знайдете там все, що вам завгодно (здебільшого). Проблема в тому, що деякі з цих компонентів дійсно повільні та підрізають крильця сайту досить добре. Найпростіший спосіб знайти ці компоненти, встановіть мій компонент кешування сторінки, але не вмикайте кешування (залишіть лише запис часу завантаження сторінки для кожного посилання). Через тиждень або близько того ви отримаєте список, за допомогою якого знайдете повільні сторінки. Цей компонент покаже, які з них найповільніші. Якщо у вас є можливість, видаліть ці компоненти і замініть іншими.

Статистика виглядає чудово, але… Вона використовує тонну SQL-запитів для отримання даних. Це недозволена розкіш! Якщо вам потрібна чудова статистика, використовуйте Google Analytics і тримайтеся подалі від інших компонентів! Так, вони генерують чудову статистику, але це пенальті у ворота продуктивності. Залишається лише статистика пошукових запитів (з конфігурації Joomla). Якщо у вас є доступ до веб-сервера, то ви можете відключити журнал статистики з сервера (ця процедура досить ефективна і принесе реальну допомогу, якщо ваш сервер сильно навантажений).

Мамботи - чудові ... гальма Погляньте на активні мамботи. Якщо ви не використовуєте якісь з них, то позбавтеся їх (не відключайте, а саме видаліть їх). Щоразу, коли ви завантажуєте сторінку, мамботи викликаються 20-30 разів. Якщо код не на 100%необхідний і ефективний, просто витрачає ресурси. Але це не означає, що якщо ви використовуєте цей мамбот, вам слід його залишити. Існує багато мамботів, які уповільнюють роботу сайту. Один із таких це AllVideos Plugin. Чудове рішення, але використовує дуже багато запитів.

Увімкніть кешування скрізь, де тільки можливо Якщо ви маєте можливість, активуйте функцію кешування матеріалів на рівні ядра Joomla. Це збільшить швидкість показу вмісту та модулів (мамботам не потрібно оброблятися під час кожного завантаження сторінки). Якщо ви хочете збільшити швидкість для незареєстрованих користувачів, запрошую вас на сторінку свого компонента Page Caching, який кешує сторінки. Це, можливо, найкращий варіант, який ви можете знайти для своїх незареєстрованих користувачів (а це 95% всіх відвідувачів). Але це не означає, що вам слід забути про решту оптимізації, бо зареєстровані користувачі бачитимуть некешований сайт.

Шукаємо погані запити У налаштуваннях Joomla включаємо налагоджувальну інформацію. Тепер ви бачите свій сайт та всі запити до бази даних. Треба, щоб їх число було якнайменше (переважно, щоб було до 30, але терпимо до 50 запитів). Почніть з пошуку запитів, що повторюються (ті, які запускаються знову і знову). Ви ПОВИННІ з упевненістю сказати, яке розширення створює запит і до якої таблиці (наприклад, «Select * from jos_opensef_config» в OpenSEF). Існує кілька варіантів зменшення запитів. Це відключити розширення або звернутися до розробника і спробувати оптимізувати (або до розробника розширення, або до будь-якого іншого фрілансер типу мене).

Тримайтеся подалі від мостів Популярний метод додавання функціональності доJoomla – використання мостів. Вони передбачають зміну як ядра Joomla, так і іншої програми (наприклад SMF або Gallery) для спільного функціонування. Поверхнево це все виглядає чудово, тому що інша програма пропонує більш привабливий функціонал, ніж справжні розширення Joomla, але при глибшому розгляді зовсім інша історія. Проблема існує в обох системах незалежно, кожна з яких намагається підвантажити своє «ядро» (включаючи фреймворк, систему керування користувачами тощо). Це ДУЖЕ велика шкода продуктивності, грубо кажучи ми завантажуємо дві сторінки на кожну. При переході, наприклад з SMF на щось типу Fireboard ви трохи втрачаєте у функціоналі, але купуєте у продуктивності.

Оптимізація бази даних Єдиний камінь спотикання більшості інсталяцій Joomla це сервер баз даних. Існує два шляхи оптимізації бази даних. Оптимізуйте таблиці та оптимізуйте структуру. Відмінність з-поміж них у цьому, що у таблицях зберігаються дані, а структурі — інформація у тому, як зберігаються дані. Оптимізація структури знадобиться лише одного разу, коли як оптимізацію таблиць слід проводити регулярно (бо дані постійно додаються, редагуються і видаляються). Для оптимізації структури зверніться до статті «Покращення запитів Joomla». Для оптимізації таблиць перейдіть до phpMyAdmin, виберіть усі таблиці та натисніть «оптимізувати». Для отримання більш детальної інформації про оптимізацію таблиць баз даних прочитайте цей розділ із документації MySQL.