Теория и практика

Кеширование страниц - ускоряем сайт в 100 раз (Varnish + ESI)

22 Январь 2010

varnish-logo-red-64

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

Если на Вашем сайте практически нет динамики (например, новостной сайт или блог), то Вы легко можете складывать все его страницы в кеш и практически не делать запросов к бекенду. Но что делать если на сайте есть авторизация, и зависящая от этого логика?

В этой статье речь пойдет о том, как кешировать страницы с персональными данными используя Varnish и язык ESI.

Читать далее…

Google Bookmarks Digg I.ua Ru-marks Ruspace Zakladok.net Reddit delicious Technorati Yahoo My Web News2.ru БобрДобр.ru Memori.ru rucity.com

Cистема хостинга медиа

23 Декабрь 2009

flash_logo

После статьи об архитектуре connect.ua многие спрашивали о подсистеме обслуживания медиа файлов, поэтому в этой статье речь пойдет о масштабируемых и производительных системах обслуживания медиа.

Что такое подсистема хостинга медиа вообще? Это часть системы, которая отвечает за загрузку, сохранение, преобразование (транскодирование) и отдачу медиа файлов. Зачастую эта система является наиболее ресурсоемкой ввиду больших объемов данных и процессорных затрат.

Читать далее…

Google Bookmarks Digg I.ua Ru-marks Ruspace Zakladok.net Reddit delicious Technorati Yahoo My Web News2.ru БобрДобр.ru Memori.ru rucity.com

Оптимизация баннерной рекламы

16 Декабрь 2009

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

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

Почему так происходит и что делать?

Читать далее…

Google Bookmarks Digg I.ua Ru-marks Ruspace Zakladok.net Reddit delicious Technorati Yahoo My Web News2.ru БобрДобр.ru Memori.ru rucity.com

Кеширование тяжелых запросов (на примере memcache)

2 Декабрь 2009

memcached_banner75

В этой статье рассмотрим проблемы, которые могут возникать при кеширования тяжелых запросов. Под тяжелыми запросами следует понимать не только медленные, но и ресурсоемкие запросы (например, обращение к внешним XML источникам с последующей обработкой). Наиболее стандартные ситуации - это тяжелые SQL выборки на страницах с агрегационной информацией (популярные видео ролики, лучше фотки, самые активные пользователи и т.п.). На первый взгляд все просто - кешируем на час..два и забываем о этих запросах на долгое время. Какие проблемы могут возникнуть в ходе увеличения нагрузок?

Читать далее…

Google Bookmarks Digg I.ua Ru-marks Ruspace Zakladok.net Reddit delicious Technorati Yahoo My Web News2.ru БобрДобр.ru Memori.ru rucity.com

Sphinxsearch - объединение индексов (index merging)

30 Ноябрь 2009

sphinx search logo

В сфинксе (sphinx-search) существует очень хорошее решение для оптимизации процесса индексации.

Суть решения рассмотрена в статье “Дельта индекс в Sphinx“. Дельта индексы существенно снижают ресурсоемкость постоянной переиндексации, позволяя делать ее чаще и иметь более актуальные данные в результатах поиска.

Использование дельта индексов тем не менее требует периодичного обновления основного индекса, чтобы обновить изменившиеся и выбросить удаленные сущности. Да и сам по себе дельта индекс растет со временем, требуя все больше ресурсов для переиндексации (что делает его неэффективным).

Самое простое решение этой задачи - полная переиндексация в непиковые часы (или дни). Это не самый оптимальный подход, т.к. полная переиндексация может занимать часы, а иногда и дни. Существует другое решение для обновления основного индекса, которое может сэкономить множество ресурсов - объединение индексов (index merging).
Читать далее…

Google Bookmarks Digg I.ua Ru-marks Ruspace Zakladok.net Reddit delicious Technorati Yahoo My Web News2.ru БобрДобр.ru Memori.ru rucity.com

Memcached - настройка под малые объекты

18 Ноябрь 2009

логотип memcached

Чаще всего Memcache используется для хранения малых объектов (в больших количествах). По умолчанию, memcache не оптимально настроен именно на такое его использование. Поэтому, поговорим о том, как можно его подстроить для получения большей эффективности работы.

Читать далее…

Google Bookmarks Digg I.ua Ru-marks Ruspace Zakladok.net Reddit delicious Technorati Yahoo My Web News2.ru БобрДобр.ru Memori.ru rucity.com

Настройка nginx для отдачи файлов

31 Октябрь 2009

800px-nginx-logosvg

Системы хранения и отдачи файлов - это отдельная часть в практике построения масштабируемых систем. Сегодня рассмотрим вопросы отдачи медиа (и не только) файлов с помощью Web сервера Nginx. У Вас уже есть система хранения файлов, установлен сервер отдачи.

На что следует обратить внимание для оптимальной настройки Nginx?

Читать далее…

Google Bookmarks Digg I.ua Ru-marks Ruspace Zakladok.net Reddit delicious Technorati Yahoo My Web News2.ru БобрДобр.ru Memori.ru rucity.com

PHP + Redis платформа “Ключ=Значение”

6 Октябрь 2009

php-redis-logo-small

Что такое и зачем нужны базы данных Ключ=Значение мы рассматривали ранее. Преимущества перед РСУБД в своем классе задач очевидные. Технических решений сегодня множество, и сегодня мы поговорим об одном из них - Redis.

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

Читать далее…

Google Bookmarks Digg I.ua Ru-marks Ruspace Zakladok.net Reddit delicious Technorati Yahoo My Web News2.ru БобрДобр.ru Memori.ru rucity.com

XtraBackup - резервное копирование для innoDB

16 Сентябрь 2009

percona-xtradb

В системах с высокими нагрузками особое внимание следует уделять резервному копированию (бекапам) данных. Зачастую самая важная часть данных находиться в СУБД. Проблема заключается в том, что копирование данных нужно проводить незаметным для работающей системы образом. Блокировка данных на момент создания бекапа тут не работает, т.к. время блокирования будет неприемлемым.

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

Другой подход резервного копирования - это использование специальных утилит, которые позволяют делать снимки состояния СУБД на жесткий диск, и восстанавливать состояние обратно по такому снимку. На этом остановимся подробнее.

Поскольку MySQL является одним из самых популярных решений в Web’е сегодня, рассмотрим инструменты для бекапов для этой СУБД.
XtraBackup - это утилита от Percona Labs, предназначенная для горячих бекапов таблиц InnoDB и XtraDB.

Читать далее…

Google Bookmarks Digg I.ua Ru-marks Ruspace Zakladok.net Reddit delicious Technorati Yahoo My Web News2.ru БобрДобр.ru Memori.ru rucity.com

XHprof - профилирование PHP от Facebook

21 Август 2009

php

PHP был и остается одной из самых популярных платформ для разработки Web приложений любого уровня сложности и размера. О преимуществах этой технологии мы поговорим отдельно, а сегодня исследуем вопрос профилирования PHP.

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

Рассмотрим решение от создателей Facebook - XHProf.

Читать далее…

Google Bookmarks Digg I.ua Ru-marks Ruspace Zakladok.net Reddit delicious Technorati Yahoo My Web News2.ru БобрДобр.ru Memori.ru rucity.com