All posts by tagname: оптимизация сервера

Orbit Ad Server Enterprise

Если вы занимаетесь администрированием и управлением пока небольшого количества рекламы на своих веб сайтах, используя Orbit Ad Server на одном сервере, то вопрос производительности вашей системы не является критичным. Однако, с расширением вашей системы и соответственно с увеличением нагрузки на ваш сервер, вместо 1,5-2 миллионов показов в день вам необходимо чтобы сервер выдерживал 3,4,5,10 и более миллионов показов в сутки. К сожалею, в данном случае ваш сервер не сможет справиться с такой задачей, и даже если вы увеличите количество веб серверов обрабатывать 10 миллионов показов в день для системы будет решаемой, но затруднительной задачей.

В связи с этим, наша компания занимается разработкой Enterprise решения для системы Orbit Ad Server, которое без проблем позволит вам выдерживать высокие нагрузки системы и обрабатывать более 10 миллионов показов в день. Компания OrbitScripts поставила себе две основные задачи — решение основных фундаментальных проблем (нагрузка на сервер) и модификация системы таким образом, чтобы владельцы Orbit Ad Server Enterprise могли получить максимальный доход от показа рекламы в реальном масштабе времени.

Для решения данных задач мы использовали свой многолетний опыт и реальные отзывы от наших клиентов. Ответ был очевиден, для того, чтобы уменьшить нагрузку на сервер и увеличить скорость показа объявлений необходимо увеличить производительность системы. Для увеличения производительности системы мы произвели такие работы, как оптимизация процесса выборки рекламных объявлений, оптимизация защиты от нежелательных кликов, оптимизация процесс клика по рекламному объявлению, оптимизация системы сбора и анализа статистики, сменили структуру базы данных для быстрой выборки рекламных объявлений, оптимизировали систему кеширования, сделали упор на масштабируемость системы. Естественно, Orbit Ad Server Enterprise будет обладать более высокими системными и программными требованиями, нежели обычное Orbit Ad Server решение. Минимальное требование для Enterprise решения — 4 выделенных сервера: сервер статистики, основной сервер базы данных, вторичный сервер базы данных и веб сервер.

Давайте обратимся к приведенной ниже схеме и рассмотрим “внутреннюю” работу системы, модификации которой позволили нам добиться высокой производительности:

Enterprise architecture

Сервер статистики занимается сбором файлов с событиями с веб сервера отдачи рекламных объявлений, их обработкой и записью сгруппированных данных на сервер базы данных.

Для оптимизации системы было решено вынести систему сбора и обработки статистики на отдельный сервер. Отдельный сервер статистики позволяет, во-первых, уменьшить нагрузку на веб сервер, а во-вторых, при необходимости позволит произвести масштабирование веб сервера (т.е. нарастить дополнительные веб сервера).

Ad Server Load

Сервер статистики работает следующим образом:

Постоянно опрашивает веб сервер на наличие статистики для обработки, используя один из существующих транспортных протоколов передачи данных.

При наличии статистики обрабатывает данные, группирует их и раскладывает по таблицам.

Сгруппированные данные передает на сервер базы данных – основной MySQL сервер.

Таким образом, сгруппированные данные, полученные с веб сервера, переходят в основную базу данных. В основной базе данных данные хранятся в формате удобном для ее управления, однако неудобном для быстрой выборки и показа рекламных объявлений. В связи с этим используется вторичный MySQL сервер базы данных, который используется при показе рекламных объявлений. Вся информация с основной БД реплицируется во вторичную БД, где преобразуется в формат, позволяющий быструю выборку и показ рекламных объявлений. Все изменения, производимые в основной БД (новые сгруппированные данные из сервера статистики) отображаются во вторичной БД, поэтому запрашиваемая веб сервером информация всегда актуальна. Репликация данных из основной БД во вторичную позволяет не только производить быструю выборку и показ рекламных объявлений, но так же отказаться от внесения изменений в основную БД при показе объявлений, что значительно уменьшит нагрузку на сервера.

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

Таким образом, Orbit Ad Server Enterprise позволит вам:

  • Гарантированно обслуживать миллиарды показов рекламных объявлений в месяц
  • Получить стабильную высокоэффективную систему показа рекламы
  • В считанные секунды предоставлять посетителям релевантную рекламу
  • Использовать расширенные настройки нацеливания на ваш сегмент аудитории
  • Оптимизировать работу рекламных кампаний
  • Использовать отчеты в реальном режиме времени
  • Оптимизировать защиту от нежелательных пользователей и многое другое

Уже совсем скоро Orbit Ad Server Enterprise появится на нашем сайте, будьте в курсе!

2 комментария

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

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

Производительность сервера во многом зависит от его конфигурации, настройки сервера, и конечно от ПО, установленного на данном сервере. Случаются такие ситуации, когда сервер не справляется с нагрузкой, генерируемой установленным на него web приложением (например, если речь идет о рекламных площадках, сервер может не справлять с количеством показов рекламных объявлений), что в результате приводит к неработоспособности как самого приложения, так и сервера.

server optimization

Итак, ниже приведем несколько решений, которые помогут вам оптимизировать ваши сервера:

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

2. Использовать веб сервера, предназначенные для обработки большого количества запросов и потребляющие меньшие серверные ресурсы. У нас есть опыт работы с различными серверами и как один из вариантов, мы советуем использовать web сервер nginx вместо apache, т.к. nginx потребляет значительно меньше ресурсов и работает намного быстрее apache. Если же web приложению необходим apache (например, при использовании URL Rewriting Engine) и нет возможности модифицировать его, то в этом случае можно использовать связку nginx + apache.

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

4. Позаботиться о клиентской оптимизации. Уменьшив количество запросов к web серверу (объеденив множество JavaScript и CSS файлов в один) и использовав сжатие HTML страниц (используя штатные средства web сервера), можно увеличить производительность сервера.

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

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

Надеемся, что данная информация будет полезна для вас и для ваших серверов!

Оставайтесь вместе с OrbitScripts!

Комментарии (0)