AddThis Smart Layers

среда, 30 марта 2011 г.

Оптимизация сервера и сайта

В последнее время пришлось довольно серьезно подучить матчасть в области оптимизации вебсервера.
Появился новый клиент, с довольно таки большим сайтом на Joomla.
Основных проблем было две:
1. При нагрузке в 300 одновременных заходах сервер не справлялся с нагрузкой и просто падал.
2. Даже когда сервер не падал, среднее время загрузки страницы составляло не менее 40 секунд.


Сервер там совсем не слабый, 2 quadcore CPU, 8Gb памяти. Но вот в плане софта никаких настроек практически сделано не было.
Начал с оптимизации настроек MySQL. В результате добился того, что нагрузка на БД перестала быть узким местом.
Продолжил тем, что установил Nginx в роли прокси-сервера. Сначала все вроде было хорошо. Сервер стал держать 600-700 одновременных заходов. Но, когда их число увеличилось до 1000 Nginx стал выдавать таймауты, жалуясь на то что Apache тормозит.
Пришлось оптимизировать настройки апача.
Первую проблему успешно решили.

Для решения второй включил кеширование в самой Joomla, оптимизировал базу данных, уменьшив размер с почти 300mb до 30. Поудаляли несколько десятков неиспользуемых расширений. Оптимизировали шаблон, решили проблемы с ошибками JS.
Теперь время загрузки страницы составляет менее 2 секунд и это не предел.

Следущие шаги для оптимизации:
- подключение к CDN и перенос всех статичных файлов туда
- компрессия и обфускация файлов JS и CSS
- апгрейд используемых расширений
- переверстывание шаблона и валидация W3C

Комментариев нет :

Отправить комментарий