Webhook — самостоятельная интеграция сторонних сервисов. Какие данные хранятся в истории браузеров? Причины повышенного потребления ресурсов

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

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

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

Каждый сторонний сервис владеет частью «пазла», зная о пользователе какую-то информацию. Однако, у магазина нет унифицированного и целостного профиля пользователя.

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

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

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

Попытки разобраться в этом хаосе данных отнимают огромное количество времени и денег, что совсем не соответствует быстрой и гибкой data-driven культуре. Сотрудникам интернет-магазинов приходиться тратить время на рутинные вещи и бесконечные интеграции, вместо того, чтобы работать над стратегическими задачами, напрямую влияющими на прибыль. Это значительно замедляет скорость и эффективность организации в целом.

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

Запущенный несколько дней назад проект http://digitaldata.readme.io как раз и призван решить эту проблему!

Что такое Digital Data Layer?

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

Для решения этой проблемы и был создан стандарт Digital Data Layer. Это открытый набор правил, определяющих стандарты взаимодействия и передачи данных между сайтом и сторонними системами.

Digital Data Layer (DDL) - это глобальный JavaScript объект, который содержит все динамически переменные, отражающие текущее состояние страницы и пользовательской сессии. Все переменные внутри DDL могут быть использованы внутри tag management систем, таких как Google Tag Manager, а также другими вендорами и скриптами, установленными на сайте.

К примеру, DDL может содержать информацию о просматриваемых товарах (id, цена, и т.д.), информацию о пользователе (имя, email, этот пользователь новых или вернувшийся, подписан он на рассылку или нет), или информацию о товарах, которые были только что куплены на e-commerce сайте.

Преимущества использования

ЧИСТОТА КОДА

Если вы заглянете в код своего Google Tag Manager вы увидите, какой хаос там творится. Данные не организованы. Нет порядка, целостности и согласованности. Нет контроля над тем, как и кем данные собираются и используются.

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

С Digital Data Layer код становится унифицированным и упорядоченным. Одни и те же данные используются много раз и просто преобразовываются в разные форматы.

ПРОДВИНУТАЯ СЕГМЕНТАЦИЯ

Наличие реализованного Digital Data Layer открывает возможности для продвинутого сегментирования. К примеру, DDL позволяет таргетировать маркетинговые кампании по определенным критериям:

  • Таргетировать на пользователей с LTV > 100 000 руб.
  • Которые за последний месяц не открыли ни одного письма из рассылки.

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

АНАЛИТИКА

На каждой странице, где реализован Digital Data Layer - аналитические системы получают возможность собирать информацию, которая в нем находится. Это открывает дополнительные возможности в аналитике и понимании, как влияют различные переменные на конверсию.

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

МЕНЕДЖМЕНТ СТОРОННИХ СЕРВИСОВ И ТЕГОВ

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

  • Order ID
  • Сумма заказа
  • Список купленных товаров
  • Название товара
  • ID товара
  • Тип страницы

Как только вы интегрируете Digital Data Layer - вы сможете устанавливать новые теги без какой-либо необходимости вносить изменения в код сайта. Все это можно будет делать непосредственно в вашей Tag Management системе.

ПЕРЕДАЧА ДАННЫХ МЕЖДУ СТОРОННИМИ СЕРВИСАМИ

Хотите показать ретаргетинг только пользователям, которые не открывают вашу email-рассылку? Раньше на подобную интеграцию могли уйти месяцы. Теперь же вам достаточно загрузить данные из ESP об открытии писем в Digital Data Layer, что даст возможность системе ретаргетинга построить нужный сегмент.

БЫСТРАЯ И БЕЗБОЛЕЗНЕННАЯ МИГРАЦИЯ

Хотите полностью заменить какую-либо стороннюю систему на другую, либо провести тест между ними?

Теперь миграция займет у вас не более 5 минут. При этом никаких изменений на сайте не потребуется, т.к. вся коммуникация теперь ведется через стандартизированный слой данных.

ВЫГОДА ДЛЯ ВСЕЙ КОМАНДЫ

Интеграция Digital Data Layer станет неоценимой инвестицией в будущее вашего сайта, т.к. по сути, это фундамент маркетинга, основанного на данных.

С ЧЕГО НАЧАТЬ?

Подробную документацию и примеры использования DDL можно найти на сайте ddmanager.ru .

Внедрение DDL обычно занимает от 2 до 5 дней. После завершения, любые новые интеграции сторонних сервисов будут делаться в 8-10 раз быстрее (зачастую даже без привлечения IT-специалистов).

Digital Data Manager содержит много полезных функций для работы с событиями и изменениями внутри DDL. Более подробную техническию документацию можно найти на сайте проекта - http://digitaldata.readme.io/docs/работа-с-событиями

Кроме того, Digital Data Manager позволяет добавлять кастомные интеграции, при помощи которых можно использовать данные DDL и передавать их в Google Analytics, GTM, Driveback, Retail Rocket, Criteo и любую другую стороннюю систему.

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

ИТАК . Основной задачей любой интеграции, будь то КД, Web-сервисы или HTTP-сервисы, является что-нибудь откуда-нибудь передать, что-нибудь с этим сделать и вернуть ответ. Вот в таком формате мы и рассмотрим новую технологию.

В дереве метаданных HTTP-сервисы располагаются в ветке Общие:

Добавляется новый HTTP-сервис точно так же, как и любой другой объект метаданных. Имя и синоним как хотите. Тут важен только "Корневой URL" - это, собственно, и есть идентификатор HTTP-сервиса в данной базе, т.е. именно то, что вы напишете в этом свойстве, вы передадите стороннему разработчику (ну или себе) в качестве ссылки на сервис.

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

Тут важно само свойство Шаблон:

С помощью шаблона вы впоследствии сможете обратить к тем данным, которые вам передали. ИТАК: все данные, которые вы хотите получить извне, можно разделить на 2 блока - обязательные и не обязательные.

Обязательные данные/параметры запихиваем в шаблон, тем самым если тот, кто обращается к сервису, их не заполнил, то сервис априори выдаст ошибку, а вы при разработке текста модуля обработчика будете уверены, что эти данные есть. Как это делается: в строке Шаблон в фигурных скобках "{}", чередуя с со знаком "/", пишем имена переменных. Например, нам обязательно нужен артикул - тогда пишем /{artikul}. Если нам надо получить артикул, имя и имя пользователя, строка шаблона будет выглядеть так: /{artikul} /{name}/{user} и т.д. Каждый из таких параметров в тексте модуля обработчика можно будет получить так: Запрос.ПараметрыURL["<имя параметра>"]. Если обязательных нет, то шаблон выглядит так: /*.

Не обязательные данные , которые мы хотим получать через сервис, в шаблоне НЕ описываются. При построении ссылки, для обращения к сервису они описываются в конце ссылки после знака "?", разделяются символом амперсанда "&" и имеют структуру <имя параметра>=<значение параметра>. В тексте модуля обработчика к ним можно обратиться конструкцией: Запрос.ПараметрыЗапроса.Получить("<имя параметра>"). НО: важно помнить, раз они не обязательны, то их может и не быть, соответственно значение проверяем на Неопределено.

Далее добавляем новый метод для нашего шаблона. Тут важно свойство HTTP-метод. Их тут огромное количество, НО мы не будем вдаваться во все тонкости. Для реализации любой вашей задачи вам нужны только 2: GET и POST .

Как выбрать: Если того, что мы с вами описали в двух предыдущих абзацах, для работы вам достаточно, т.е. все нужные вам данные вы сможете получить с помощью обязательных и не обязательных параметров самого запроса, то берем GET. В этом случае в любом браузере, если вы правильно введете адресную строку, вы увидите результат действия своего HTTP-сервиса - ПРОФИТ! Если вдруг для работы вашего сервиса нужны данные в более сложном виде (xml например, или еще чего), то, что нельзя запихнуть в простую адресную строку, то берем POST. Из минусов такая легкая проверка через адресную строку браузера, как с GET, не прокатит, но на просторах интернета легко можно найти какие-нибудь сайты, на которых можно проверить сервисы методом POST (например, сайт https://www.hurl.it). В случае, если выбран метод POST, то у запроса помимо URL (адреса) появляется тело, в которое можно запихнуть все, что угодно, а в обработчике метода обратиться к нему через конструкцию Запрос.ПолучитьТелоКакСтроку(). У любого шаблона может быть как GET метод, так и POST. У них будут соответственно разные обработчики, а 1С-ка в зависимости от того, как был отправлен запрос, будет выбирать тот или иной метод.

Обработчик HTTP-сервиса - это функция, которая всегда возвращает значение типа HTTPСервисОтвет, который строится конструктором Новый HTTPСервисОтвет(<КодСостояния>). <КодСостояния> - это число, чтобы не мучаться с выбором что писать, пишем: 200 - если все хорошо и вы возвращаете какое то логичное значение, 400 - если ошибка и вы возврщаете описание ошибки. У данного типа есть различные методы (можно почитать в синтакс помошнике, там все понятно написано). Опять же, всегда можно вернуть все что нужно в виде строки - метод УстановитьТелоИзСтроки(). (одна небольшая хитрость: если вы возвращаете html и хотите чтобы браузер при вводе в адресную строку адреса вашего сервиса на экране красиво отобразил его, в свойстве ответ Заголовки напишите: Ответ.Заголовки.Вставить("Content-Type","text/html; charset=utf-8") - тем самым вы укажите, что это не просто набор символов, а HTML и его надо показать соответствующе)

После того как вы все сделаете, HTTP-сервис надо опубликовать. Делается это на компьютере с установленным веб-сервером (про настройки писать не буду, есть полно статей) через меню:

Администрирование - Публикация на веб сервере.

Там закладка HTTP-сервисы. Ставим галки и нажимаем "Опубликовать"

Итак , мы получили готовый HTTP-сервис. КАК к нему обратиться? Если у нас используется метод GET то в адресной строке браузера пишем: http://<имя веб сервера>/<имя базы>/hs/<корневой URL>/<обязательный параметр1>/<обязательный параметр2> <имя не обязательного параметра 1>=<значение не обязательного параметра 1>&<имя не обязательного параметра 2> =<значение не обязательного параметра 2> .

Ну и, наконец, еще раз в картинках))):

В начале декабря состоялся долгожданный релиз десктопной версии почтового клиента Spark для macOS. Это приложение пользуется популярностью на iPhone и iPad за счет привлекательного дизайна, всей необходимой (но не избыточной) функциональности, а также большого количества востребованных опций типа закрепления важных писем, умной папки «Входящие», уведомлений о прочтении и так далее. Компания Apple оперативно внесла Spark для macOS в список лучших приложений года в Mac App Store, что только добавило популярности этому почтовому клиенту. Лично я пользуюсь Spark на iPhone, iPad Pro, а с момента начала бета-тестирования десктопной версии отказался от «тяжелого» AirMail на Mac. Впрочем, у бесплатного почтового клиента с удобным интерфейсом и отличной функциональностью все-таки есть подводные камни. Разработчик Владимир Шабанов в Facebook обратил внимание пользователей на политику конфиденциальности Spark.

Почему опасны бесплатные неофициальные email приложения вроде Spark? Потому что они получают доступ ко всем вашим письмам вне вашего ноутбука, айфона и gmail у себя на сервере - и когда его взломают, большинство ваших аккаунтов в магазинах, соцсетях, платежных системах, дейтингах, букингах, стимах и дропбоксах тоже окажутся взломаны. А у компаний, которые разрабатывают такие приложения, нет мотива вкладываться в безопасность, потому что они не берут с вас денег за приложение.

Чтобы не копировать очень большой текст с предысторией, советами и выводами, советуем прочитать о Spark в публикации Владимира Шабанова . А в редакции iG мы задались вопросом: как на самом деле обстоят дела со сбором и хранением пользовательских данных при использовании сторонних почтовых клиентов? Для этого мы заглянули в непопулярные среди большинства пользователей разделы «Политика конфиденциальности» и выбрали оттуда главные факты, которые вам нужно знать при использовании сторонних почтовых клиентов на Mac. Вкратце речь идет о том, что практически все приложения отправляют на серверы разработчиков пользовательские данные, включая адреса электронной почты, в некоторых случаях пароли, тексты писем, списки контактов, данные календаря и различные обезличенные данные. А некоторые приложения даже собирают сведения об устройствах, номера телефонов, местоположение или полностью копируют на сервер все доступные в аккаунте электронной почты данные. Также мы спросили Яндекс и Mail.ru относительно сбора пользовательских данных и писем при работе с учетными записями сторонних сервисов и механизма отправки push-уведомлений о новых письмах, однако представители компаний не смогли оперативно ответить на запрос редакции.

Разумеется, каждый разработчик заявляет о том, что пользовательская информация хранится на надежных серверах типа Amazon Web Services, а также они все предпринимают некие дополнительные меры защиты. Однако нужно ли говорить, что о стопроцентной безопасности речь не идет? В то время как порой происходят утечки пользовательских данных самых крупных и надежных интернет-компаний, полагаться на защиту небольших стартапов было бы опрометчиво. С одной стороны от всех угроз можно отмахнуться под предлогом того, что в вашей почте нет никаких секретных данных, но не стоит забывать, что для злоумышленников даже в самом скучном почтовом ящике найдется много всего интересного. В наше время адрес электронной почты выполняет роль ключевого идентификатора, к которому привязываются аккаунты платежных систем, социальных сетей, различных сайтов и сервисов, а в некоторых случаях пароль от электронной почты подходит к другим учетным записям, что повышает возможный ущерб от взлома. Проще говоря, нельзя безалаберно относиться к выбору почтового клиента, а при использовании стороннего софта обязательно нужно понимать, какие именно данные вы передаете разработчикам.

Spark


1. Помимо обезличенной статистической информации об использовании приложения вас могут попросить предоставить некоторую личную информацию.
2. Первый адрес электронной почты, который будет добавлен, используется в качестве имени пользователя. На него вам могут отправлять письма с информацией о новых функциях, обновлениях, объявлениях и запросы оставить отзыв об использовании.
3. Серверы Spark используются только для доставки push-уведмолений, а в некоторых случаях для отправки сообщений по электронной почте.
4. Учетные записи, если это возможно, добавляются с помощью аутентификации OAuth. В противном случае адреса и пароли хранятся на облачном сервере Amazon Web Services.
5. Помимо политики безопасности Amazon Web Services, Spark используют ряд мер, предотвращающих доступ к данным третьими лицами, а также протокол HTTPS и ассиметричное шифрование данных учетных записей.
6. Spark загружает на сервер тему и часть письма для отправки push-уведомления и удаляет эти данные сразу после доставки уведомления. Сообщения хранятся в зашифрованном виде на сервере.


1. Почтовый клиент может запрашивать добровольную передачу таких данных как имя адрес электронной почты, номер телефона и банковской карты.
2. Polymail собирает и хранит данные о сценариях использования приложения и его функций, а также мобильных устройствах, на котором оно работает, включая: операционную систему, модель смартфона или планшета, уникальные идентификаторы устройства, информацию мобильной связи и номер телефона.
3. При использовании Polymail разработчики могут собирать информацию о местоположении пользователя, IP-адреса, данные GPS, а также информацию с других сенсоров мобильного устройства.
4. Polymail собирает и хранит информацию о контактах пользователей, с которыми вы обмениваетесь письмами. Эти данные служат для улучшения работы сервиса.
5. Polymail собирает и хранит информацию об отправленных письмах (тему письма и вложения) для обеспечения работы функции уведомления о прочтении.
6. Для улучшения сервиса Polymail индексируем письма: дату получения сообщения, папки и имена отправителей.
7. Cookies и прочие анонимные идентификаторы собираются и хранятся Polymail и ее партнерами.


1. Почтовый клиент Airmail не собирает и не хранит письма на облачных серверах. При использовании таких опций как Snooze Sync, все необходимые данные синхронизируются непосредственно между устройствами.
2. Airmail собирает и хранит такие данные как Cookies, обезличенную информацию о сценариях использования приложения и адреса электронной почты.
3. Сбор и использование Cookies производится только с целью идентификации пользователя для сохранения настроек и для предоставления требуемых пользователем услуг.
4. В некоторых случаях доступ к собранным и хранящимся на серверах данным может быть предоставлен некоторым сотрудникам, связанным с работой Airmail: администраторам, специалистам по продажам, маркетологам, юристам.
5. Пользовательские данные собираются для обеспечения работы Airmail, а также для следующих целей: взаимодействие со сторонними социальными сетями и платформами, управления контактами и отправки сообщений, аналитики, ремаркетинга, поведенческого таргетинга, в коммерческих целях, для обработки платежей, взаимодействия со службой технической поддержки и обратной связи.


1. Если учетная запись не поддерживает аутентификацию OAuth, логин и пароль хранятся на облачном сервере AWS.
2. На облачные серверы происходит загрузка писем для отправки push-уведомлений.
3. Письма загружаются за последние 14 дней на мобильных устройствах и за 60 дней на Mac.
4. Newton получает и хранит информацию от наших партнеров о пользователях, которые отправляют вам сообщения по электронной почте.
5. Для использования функции «Отметка о прочтении» Newton собирает и хранит данные об отправленных письмах.
6. Newton обещает, что не продает и не передает третьим лицам персональную информацию, а также использует протокол HTTPS и дополнительные инструменты защиты при передачи данных на серверы AWS.


1. Использование почтового клиента Canary не предусматривает предоставление доступа к персональным данным пользователей и передачу их на облачные серверы.


1. При создании аккаунта Nylas N1 собирает и хранит персональные данные, например, адрес электронной почты, имя и фамилию, которые могут быть использованы для идентификации.
2. При использовании приложения Nylas N1 собирает и хранит данные учетной записи и связанные пароли.
3. Ввод данные учетной записи электронной почты означает согласие на предоставление Nylas N1 прав на создание копии всего содержимого почтового ящика, календаря и списка контактов.
4. Nylas N1 также использует автоматизированные средства сбора данных, такие как Cookies и Web Beacons.


1. Почта, календари, файлы, контакты, параметры и другие данные из нее будут автоматически синхронизироваться с устройством посредством облачного сервера.
2. Outlook хранит данные на серверах Майкрософт для поддержки дополнительных возможностей, таких как быстрый поиск, персонализированная фильтрация менее важной почты и добавление вложений из связанных поставщиков хранилища.


1. На официальном сайте приложения информация в разделе «Политика конфиденциальности» относится только к работе самого сайта Unibox. Информация о сборе и хранении персональных и обезличенных данных при использовании почтового клиента Unibox отсутствует.

С версии 1.6 в Android существует «сервис специальных возможностей». Нетрудно догадаться, с какой целью он был создан, но нас, как людей, стремящихся как раз к неограниченным возможностям, этот сервис интересует с несколько другой стороны. Сегодня мы будем писать программу, которая позволит следить за вводом в других приложениях!

Зачем нужен сервис специальных возможностей?

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

В Android есть стандартный сервис спецвозможностей - TalkBack . При необходимости разработчики могут реализовать и свои собственные. Такие сервисы стало возможно писать с незапамятных времен (Android 1.6, API уровень 4), а с Android 4.0 (API уровня 14) они получили значительные улучшения. Через «библиотеку поддержки» эти улучшения реализованы и для устройств с API версией ниже 14.

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

В этой статье я расскажу, как максимально просто реализовать сервис для перехвата клавиатурного ввода.

Для этого требуется создать наследник AccessibilityService . В методе подключения onServiceConnected нам нужно задать фильтр событий (класс AccessibilityServiceInfo ) , которые будет слушать сервис. А в методе onAccessibilityEvent обрабатывать эти события.
В манифесте приложения обязательно следует добавить строчки описания сервиса:

Если все сделано верно, то в логе можно увидеть что-то вроде этого:

OnAccessibilityEvent: TYPE_VIEW_TEXT_CHANGED android.widget.EditText com.android.chrome 113326642 сайт

Класс AccessibilityServiceInfo позволяет выставить фильтры для определенных приложений (кто сказал «мобильных банков» или «клиентов социальных сетей»?). По нужному нам событию можно делать скриншоты.
Совсем просто это делается на рутованном устройстве, а если рута нет, то нужно искать сторонние библиотеки для получения скриншотов из сервиса.
Пример кода получения скриншота из сервиса на рутованном устройстве:

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

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов.

Статистика использования ресурсов хостинга

На каждой услуге виртуального хостинга RU-CENTER ведётся учёт использования следующих ресурсов:

  1. Оперативная память - размер выделенной памяти для работы программного обеспечения на хостинге, устанавливается в мегабайтах в соответствии с тарифным планом.
  2. Процессорное время - время в секундах, которое потратил процессор сервера на выполнение задачи, например, скрипта сайта. Значение лимита 50% на процессорное время в тарифном плане означает, что за период в 1 минуту скрипт может полностью использовать 1 ядро процессора в течение 30 секунд. Лимит 200% означает, что за период в 1 минуту допустимо использовать полностью 2 ядра процессора, то есть 120 секунд процессорного времени.
  3. Число дисковых операций - количество операций ввода-вывода, выполняемых системой хранения данных за минуту.
  4. HDD чтение - скорость чтения информации с диска сервера, мегабайт в минуту.
  5. HDD запись - скорость записи информации на диск сервера, мегабайт в минуту.

Информация об использовании ресурсов размещена в разделе Ресурсы Статистика .

При нажатии на график происходит переход к детальной информации по использованию отдельного ресурса:

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

Причины повышенного потребления ресурсов

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

Основные причины повышенного потребления ресурсов:

  1. Использование ресурсоёмкой CMS , например 1C-Bitrix. Выбирайте .
  2. Высокая посещаемость сайта . В этом случае рекомендуем переход на или .
  3. Неоптимизированные скрипты на сайте - скрипты, алгоритм выполнения которых является неэффективным. Например: подсчёт заведомо известных данных, неоптимальные методы расчёта, лишние циклы и др.
  4. Неоптимизированные запросы к базе данных MySQL . Проблемы могут возникать из-за неправильно сформированных индексов, большого объёма выбираемых данных, большой вложенности запроса и т.д.
  5. Активность поисковых роботов . Роботы могут замедлять работу сайта, если их много и они проводят одновременное сканирование для обновления своей поисковой базы.
  6. Вредоносный код на сайте . Нагрузка на сервер может быть вызвана работой вредоносных скриптов на хостинге.

Способы снижения потребления ресурсов

1. Отключите неиспользуемые модули веб-сервера Apache и расширения модуля PHP

По умолчанию на хостинге включены модули Apache: auth_module, cgi, realip_module, rewrite_module, autoindex_module, env_module, expires_module

Проверьте, включены ли у вас следующие модули Apache и отключите их: для работы большинства сайтов на PHP и MySQL они не требуются. Сделать это можно в разделе
Управление веб-сервером Управление модулем PHP панели управления хостингом. Для просмотра списка модулей необходимо нажать на ссылку Управление расширениями .

  • FastCGI - требуется, если вы самостоятельно устанавливаете на хостинге какое-либо программное обеспечение, работающее в качестве FastCGI-сервера.
  • gzip_module - требуется, если вы настраиваете gzip-сжатие. Помимо включения модуля требуется дополнительная настройка сжатия в файле .htaccess . Отключите модуль, если вы не пользуетесь данной функциональностью.
  • mime_magic_module - позволяет веб-серверу определять mime-типы файлов, для работы большинства сайтов достаточно стандартного mime_module.
  • Perl - он же mod_perl , требуется для работы perl-скриптов, специально написанных под mod_perl. Для запуска perl-скриптов в большинстве случаев используется модуль CGI (см. статью )
  • proxy_module - требуется, если вы планируете настроить проксирование запросов с помощью веб-сервера apache.
  • bandwidth_module, usertrack_module, speling_module, limitipconn_module - эти модули потребляют небольшой объем памяти, но их функциональность большинству сайтов не требуется, поэтому их также можно отключить.

Управление расширениями модуля PHP производится в разделе панели управления хостингом Управление веб-сервером Управление модулем PHP в соответствии с инструкцией .

  • Eaccelerator, APC - кэшируют данные в оперативной памяти, поэтому требуют большое ее количество. На виртуальном хостинге оперативной памяти недостаточно для эффективной работы данных модулей.
  • mysql, mysqli, pdo_mysql - модули для работы с базой данных MySQL, обычно сайту требуется какой-либо один из них, отключите неиспользуемые.
  • imagick, gd - модули для работы с графикой, если сайт может работать с библиотекой gd, лучше использовать ее, так как она потребляет значительно меньше памяти.
  • imap - позволяет работать с почтовыми серверами по протоколу imap, большинству сайтов эта функция не требуется.
  • dba, sqlite, pgsql, pdo_sqlite, pdo_pgsql - модули для работы с соответствующими СУБД. Большинство сайтов работает с использованием СУБД MySQL , эти модули можно отключить.

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

2. Проанализируйте лог-файлы сайта

На хостинге в каталоге /var/log/ размещаются лог-файлы:

  • /var/log/ваш_домен.access.log – лог обращений к сайту,
  • /var/log/ваш_домен.error.log – лог ошибок.

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

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

3. Проверьте работу скриптов сайта со сторонними серверами

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

4. Проанализируйте работу скриптов сайта и запросы к базе данных MySQL

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

Мы рекомендуем проконсультироваться с разработчиками сайта относительно оптимизации SQL-запросов. Чем быстрее выполняются запросы сервером баз данных, тем быстрее веб-сервер получит необходимые данные, сформирует ответ клиенту и освободит память.

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

Оптимизация запросов к БД должна сводиться к следующим результатам:

  • во всех запросах используются для выборки данных индексы,
  • минимизировано использование временных файлов и операций filesort.

Все эти данные для каждого из запросов можно получить с помощью команды EXPLAIN в соответствии с документацией по MySQL .

5. Проанализируйте верстку сайта

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

6. Проверьте сайт на наличие вредоносного кода

Большинство сайтов, построенных на базе популярных CMS, обладают определёнными уязвимостями в системе безопасности. Разработчики регулярно выпускают обновления для устранения уязвимостей, однако защититься от взлома удаётся не всегда. Это происходит по причине того, что чаще всего взлом происходит через сторонние плагины или изменённые темы оформления.

Проверьте хостинг на наличие вредоносного кода с помощью .