Как выдержать большие нагрузки. 3 этапа оптимизации сайта 5баллов ru





Скачать 36.72 Kb.
НазваниеКак выдержать большие нагрузки. 3 этапа оптимизации сайта 5баллов ru
Дата публикации13.03.2015
Размер36.72 Kb.
ТипДокументы
100-bal.ru > Информатика > Документы
Как выдержать большие нагрузки. 3 этапа оптимизации сайта 5баллов.ru

(How to sustain greater loads? The three stages of the 5ballov.ru web site optimization)
osukhanov@rbc.ru,

ведущий разработчик

www.5ballov.ru


В связи с бурным развитием Интернета в последние годы, высокую популярность приобрели веб-сервисы. Многие начинают свой рабочий день с прочтения почты и просмотра новостей, а также различных приколов. В данной статье описано устройство сервисы подобного рода на примере сайта 5ballov.ru, и способы обеспечения стабильной работы при нагрузке в сотни тысяч показов в день.

Определим, что собственно создает нагрузки на серверы. На первом месте стоят запросы к базам данных. Именно их в первую очередь следует оптимизировать для повышения производительности сайта. На втором месте стоят различные скрипты, генерирующие динамический контент. Замыкает список статический контент (картинки, статичные страницы), который отдается веб-сервером, что тоже создает нагрузку на сервер.

Оптимизация сайта 5ballov.ru под высокие нагрузки состояла из трех этапов. Первый и самый главный – оптимизация запросов к базе данных. Здесь важно изначально правильно спроектировать базу данных и построить индексы. После проектирования базы и построения индексов нужно заполнить таблицы тестовыми данными, причем нужно учесть, что количество записей в таблицах будет постоянно расти, поэтому следует брать количество записей в таблицах с запасом. После того, как таблицы были заполнены тестовыми данными, приступаем к оптимизации индексов, которые были созданы в таблицах на стадии проектирования базы данных. Для этого нужно подготовить список медленных запросов. Медленные запросы – это запросы к базе данных, которые не используют индексы и выполняются больше определенного времени, допустим, 1 секунды. Для анализа запросов используют команду explain1. С помощью данной команды можно выяснить, использует или нет индексы запрос, эффективно ли запрос использует индексы (возможно, имеет смысл построить индексы по-другому или использовать составные индексы), сколько записей просмотрит СУБД для того, чтобы выполнить запрос, и много другой полезной информации. Данная операция позволила, пусть и незначительно, но сократить время выполнения запросов до 5% - 10%.

Второй этап – это оптимизация самих скриптов. Сайт написан на языке php. Для написания кода была использована среда разработки Zend Studio 5.2.0. Так как помимо подсветки кода и всплывающих подсказок, что умеют делать почти все редакторы, в Zend Studio есть отладчик кода и профайлер (profiler). С помощью профайлера можно выяснить, сколько времени затрачивается на выполнение какой-либо функции. Так же используя профайлер, несложно выяснить, в каких функциях встречаются медленные запросы к БД и, соответственно, оптимизировать их (см. выше). На крупных сайтах страницы содержат много разной информации, для извлечения которой выполняется несколько запросов (иногда эта цифра доходит до 10), что, соответственно, создает большую нагрузку на сервер. Решением данной проблемы является использование кэширования. На сайте 5ballov.ru вся страница разделена на блоки, для генерации которых используется отдельный запрос, причем, кэшируется каждый блок отдельно. Это было сделано для того, чтобы в случае изменения информации в одном из блоков, не приходилось извлекать информацию для остальных блоков. В случае изменения информации просто очищается кэш для блока, в котором произошло изменение, и при последующем посещение страницы пользователем он автоматически кэшируется заново. В результате снижается количество выполняемых запросов при генерации страницы, что существенно снижает нагрузку на сервер.

Последний этап – оптимизация отдачи статического контента. Для отдачи статического контента используется разработка нашего соотечественника Игоря Сысоева – nginx. Данный сервер позволяет отдавать статический контент гораздо быстрее, чем это делает сервер apache, так же, nginx использует меньше памяти, чем apache в связке с mod_php.

Даже если нет медленных запросов, при высоких нагрузках наступает такой момент, когда сервер физически не может отдавать и генерировать контент. В данном случае на помощь приходит кластеризация - распределение задач по нескольким серверам.

Проект 5баллов построен по следующей структуре:

  1. Главный сервер, который доступен из Интернета. На этот сервер возложены задачи по отдаче статического контента - front-end, и генерации динамического контента - back-end. Если для генерации контента требуется использовать данные из БД, то отправляется запрос к серверам баз данных, причем запросы на извлечение данных распределяются между серверами mysql2 и mysql3, тем самым, балансируя нагрузку. Запросы на добавление и редактирование данных посылаются к серверу mysql1.

  2. Серверы баз данных взаимодействуют с back-end и между собой по следующей схеме: mysql1 – сервер, на который происходят запросы на обновление и добавление данных, сервера mysql2 и mysql3 – это репликация (копия) сервера mysql1.

  3. Файловый сервер – это сервер, на котором хранятся файлы и образовательные программы. Т.к. у 5Ballov.ru реализована защита от скачивания рефератов роботами, то рефераты отдаются через back-end, а образовательные программы и картинки отдаются front-end напрямую.


В заключении хочется сказать, что данная организация позволяет выдерживать большие нагрузки, которые приходятся на наш сервер в период сессий и вступительных экзаменов в вузы.
Автор с удовольствием ответит на ваши вопросы и выслушает критику в свой адрес по электронной почте.

1 Подробнее об этой команде: http://dev.mysql.com/doc/refman/5.0/en/explain.html

Добавить документ в свой блог или на сайт

Похожие:

Как выдержать большие нагрузки. 3 этапа оптимизации сайта 5баллов ru iconСоздание персонального сайта педагога
Создание сайта должно начинаться с тщательного планирования всех этапов. Такое планирование начинается с разработки Технического...
Как выдержать большие нагрузки. 3 этапа оптимизации сайта 5баллов ru iconРазработка урока на тему «Как написать статью для сайта»
Задачи: усваивать требования к статье для сайта, отрабатывать навыки чтения и анализа прочитанного, развивать умения работать в группе,...
Как выдержать большие нагрузки. 3 этапа оптимизации сайта 5баллов ru iconИнформационная карта участника третьего этапа Всероссийского конкурса...
Адрес личного сайта, блога и т д., где можно познакомиться с участником и публикуемыми им материалами
Как выдержать большие нагрузки. 3 этапа оптимизации сайта 5баллов ru iconПеречень вопросов для проведения конкурсного собеседования при поступлении...
Лечебная физкультура как метод терапии. Лечебная гимнастика: периоды занятия, методы проведения, методические правила, кривая физиологической...
Как выдержать большие нагрузки. 3 этапа оптимизации сайта 5баллов ru iconКак добавить новость на сайт Ucoz
Чтобы добавить на сайт Ucoz новость, следует воспользоваться ссылкой «Добавить новость», отобразившейся на главной странице сайта...
Как выдержать большие нагрузки. 3 этапа оптимизации сайта 5баллов ru iconУчебный план ноу цо «православный центр непрерывного образования...
Бязательной нагрузки обучающихся (максимально допустимой недельной нагрузки) и обеспечивает введение в действие и реализацию требований...
Как выдержать большие нагрузки. 3 этапа оптимизации сайта 5баллов ru iconПрограмма по формированию навыков безопасного поведения на дорогах...
Гоу №704 и требованиями фгос ноо учебный план для первых классов определяет общий объем нагрузки и максимальный объем аудиторной...
Как выдержать большие нагрузки. 3 этапа оптимизации сайта 5баллов ru icon3) Порядок сопровождения и обновления сайта; 4) Другие вопросы в...
Основной целью данного семинара, является ознакомить Вас с различными видами сайтов, способы их создания, а так же с требованиями...
Как выдержать большие нагрузки. 3 этапа оптимизации сайта 5баллов ru iconОсновная цель коллектива школы-интерната это сохранение и укрепление...
Занятия ведутся в одну смену, начало учебных занятий 30., до уроков проводится утренняя зарядка. В расписании предусмотрено чередование...
Как выдержать большие нагрузки. 3 этапа оптимизации сайта 5баллов ru iconПрограмма для управления сайтом Дальневосточного координационного...
Программа предназначена для обеспечения работы сайта и информирования целевой аудитории сайта релевантной информацией, такой как:...
Как выдержать большие нагрузки. 3 этапа оптимизации сайта 5баллов ru iconПрограмма по формированию навыков безопасного поведения на дорогах...
Класс с использованием степ-платформы и дополнительного силового оборудования. Совмещение силовой и аэробной нагрузки. Средняя и...
Как выдержать большие нагрузки. 3 этапа оптимизации сайта 5баллов ru iconПрограмма по формированию навыков безопасного поведения на дорогах...
Информатизация. Количество компьютеров. Наличие сайта. Обновление сайта новой информацией
Как выдержать большие нагрузки. 3 этапа оптимизации сайта 5баллов ru iconРеферат в данной работе рассматриваются сведения о конструкциях...
Выключатель нагрузки с автопневматическим дутьём является небольшим воздушным выключателем. Для гашения дуги у таких выключателей...
Как выдержать большие нагрузки. 3 этапа оптимизации сайта 5баллов ru iconБалансировка интернет-трафика с помощью статической маршрутизации как задача оптимизации

Как выдержать большие нагрузки. 3 этапа оптимизации сайта 5баллов ru iconПояснительная записка участника Фестиваля Образовательных сайтов...
Название сайта: «ро-вестник» (Вести от учителя, работающего в технологии ро д. Б.,Эльконина – В. В. Давыдова)
Как выдержать большие нагрузки. 3 этапа оптимизации сайта 5баллов ru iconПорядок сопровождения и обновления сайта; Другие вопросы в зависимости от целей и задач сайта
Официальным сайтом общеобразовательного учреждения является сайт, разработанный в соответствии с настоящими требованиями, утвержденный,...


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск