В продолжение темы
http://joomlaforum.ru/index.php/topic,108791.0.html расскажу немного о серверной оптимизации.
Для чего нужна серверная оптимизация думаю догадываются все, ведь именно серверная часть максимально влияет на производительсность.
Итак, начинаем.
В качестве подопытного был мой сайт -
http://autoturn.ru.
Для максимального наглядного эффекта оптимизации все кеширующие механизмы были отключены.
Поставлено несколько прожорливых компонентов (ВМ не стовился). Итого имеем на главной, а именно она является самой нагруженной, 253 SQl запроса.Сервер от hetzner:
Athlon 64
1Гб ОЗУ DDR400
160 Гб HDD 7200 оборотовСистема:
ОС Debian 5 Lenny
MySQL 5.1
Apache 2 с режимом mod_phpостальные мелочи вроде dns, почтового сервера и т.п. не учитываю.
Данные о времени генерации страницы брались из PageSpeed1. Базовые настройкиВремя генерации страницы - 9,3 сек. (именно генерации, а не загрузки всего сайта)
Итак смотрим на этот ужас, более 9 сек только генерации главной, загрузка всего сайта и того дольше.
Как выяснилось узким место сайта, да и Joomla в частности является низкая скорость работы Базы данных, куча запросов, зачастую сложные и неоптимизированные.
К БД мы еще вернемся, а пока продолжим испытания.
2. Устанавливаем кеширующий прокси-сервер NGINX (в моем случае версия 1,0)На многих сайтах в основном очень много статических материалов, это картинки, js, CSS и т.п. Откровенно говоря Апач неважно справляется с их обработкой и тут на помощь приходит известный nginx. Также для нормальной работы установлен mod_rpaf. Итак, Apache вешаем на порт 8080, nginx как front-end Апача на 80 порт, обеспечив им совместную работу.
Для Joomla нужна еще донастройка nginx.
Итак, все установлено и настроено, время генерации страницы уменьшилось с 9,3 сек до 6,1, прирост в скорости 30% от новой связки - провосходный результат.
3. Вместо mod_php устанавлиеваем и запускаем режим FastCGi, скорость от него тоже вирастает заметно. С 6,1 до 4,7 сек.4. Ставим кеширующий движок Сначала был установлен и настроен APC, но по причине некоторых глюков был заменен на xcache, который кеширует файлы в ОЗУ сервера. Напомню, в Joomla кеш отключен. Xcache все-равно кеширует файлы
независимо от того какой движок стоит на сервере. Ему было отдано 256 Мб. ОЗУ. Скорость генерации с 4,7 стала 4,1. Небольшой прирост в производительности есть. Однако, забегая вперед скажу, что с 1 Гб ОЗУ иногда возникали проблемы с тем,
что 256 мб. xcache иногда не хватало. Все потому, что огромную часть ресурсов кушал MySQL.
5. Перейдем к самой БД. Вариантов тут немного, включить кеш SQL запросов и добавить индексы в нужные таблицы. После этого загрузка стала 3,5 сек.
Подводя итог нам удалось серверными средствами уменьшить время загрузки сайта почти в 3 раза. Конечно у каждого такого сайта будут свои показатели, но это не может не радовать в виду того, что
существуют недорогие VPS, VDS хостинги, на которых можно разместить свой сайт и произвести настройку для быстрой работы.
Конечно я рассмотрел далеко не все варианты оптимизации, но начать с тоит именно с этого.
Прежде всего хочу отметить, что не стоит лезть и настраивать что-то самому, если не знаете точно что и как делать, сбережете себе нервы и время.
Сервер настраивается 1 раз и потом в него можно не заходить очень долго. Желаю всем удачных оптимизаций и огромных скоростей!