[/root.]
Он самый
- Регистрация
- 20 Май 2006
- Сообщения
- 370
- Реакции
- 70
- Автор темы
- #1
Мой вольный перевод из официальной документации + заметки. Итак, для того чтобы оптимизировать движек, вы можете сделать следующее:
Убиваем лишние запросы
В данном случае как владелец выделенного сервера я буду говорить о вещах, которые доступны каждому владельцу root сервера. Многие из этих вещей так-же применимы к shared хостингу.
Я как самоучка не претендую на 100% корректность данного гайда. Если есть какие-либо заметки, то просьба писать в адекватном виде.
Я своевременно буду пополнять данный тред, новой информацией и заметками. Не убегайте далеко и переходите на ExpressionEngine.
Убиваем лишние запросы
Настройка сервера* Не используйте сессии в настройках безопасности. Кукисов (cookie) должно быть достаточно практически для 99% пользователей (пока вас не взломают).
* Выключите обработку форм в защищеном режиме (настройки безопасности).
* Выключите отслеживание реферов. Счетчик от li.ru вполне заменяет данную функцию. Так-же не забудьте вообще выключить модуль реферов.
* Включите кеширование SQL запросов (настройки базы данных).
* Включите кеширование запросов в****га (не путаем с общим системным кешированием).
* Включите кеширование страниц и темплейтов. Время кеширование подбирается индивидуально. Разделяйте статичные и динамичные элементы. Время кеширование статичных элементов (стили, куски кода без php кода и прочее) соответственно больше чем у динамичных элементов. Так-же не забываем, что если сайт обновляется довольно часто (несколько раз в день), то даже динамичные элементы можно кешировать с большим интервалом. Просто не забудьте включить опцию очистки кеша при публикации новой записи.
* Старайтесь как можно меньше использовать так называемые embedded (включаемые) темплейты. Если у вас статичный контент, то используйте глобальные переменные (global variables), нежели новому шаблону статичного типа (type: static).
* Старайтесь создавать как можно меньше обращений к базе данных. Не устанавливайте лишних плагинов и модулей. Каждое кастомное решение старайтесь делать встроенными возможностями системы, даже если это будет несколько сложнее. Модуль SQL Query позволяет в разы сократить затраты на разработку и увеличить гибкость системы в целом.
* Отключите все неиспользуемые вами функции (капча, словари, фильтр плохих слов). Это существенно сократит нагрузку на базу данных.
* Отключите сбор статистики. Для этого вам нужно открыть файл core/core.system.php и закомментировать $STAT->update_stats();
* После установки ExpressionEngine переконвертируйте ваши таблицы в InnoDB. Багов мною и обнаружено. Данный метод хранения существенно ускорит работу проекта при больших нагрузках.
В данном случае как владелец выделенного сервера я буду говорить о вещах, которые доступны каждому владельцу root сервера. Многие из этих вещей так-же применимы к shared хостингу.
- Используйте альтернативные веб сервера, такие как: LiteSpeed, nginx, lighthttpd. Тем самым вы существенно ускорите работу проекта и снизите нагрузу на железо.
- Установите php кешер. Мой фаворит - xCache. На мой взгляд лучший бесплатный продукт в данном сегменте.
- Установите memcache. Систему кеширования на уровне сервера. Это существенно сократит нагрузку на сервере и увеличит скорость работы веб-приложений. Особенно в тех случаях, когда скрипт может напрямую с ним работать (например vBulletin и EngineG2 (еще не вышел) *_*)
- Используйте InnoDB тип хранения в вашей MySQL базе. По тестам, данный метод практически по всем параметрам быстрее чем MyISAM.
- Грамотно настройте php.ini и my.cnf. Подстраивайте конфиги под ваш сервер. В случае добросовестной настройки, вы можете в разы получить прирост производительности и уменьшить нагрузку на сервер.
- Используйте альтернативные решения. Не стоит гнатся за массами. Если апач стоит на 40-50% серверов - это не значит, что он лучший.
- Оптимизируйте, балуйтесь, тестируйте.
Я как самоучка не претендую на 100% корректность данного гайда. Если есть какие-либо заметки, то просьба писать в адекватном виде.
Я своевременно буду пополнять данный тред, новой информацией и заметками. Не убегайте далеко и переходите на ExpressionEngine.