heap.tech
лаборатория велосипедов
×

Удобный. Полезный и Быстрый

09 июля 2018
Каждый сайт можно характеризовать по трем пунктам: удобный, полезный, быстрый. Первые две характеристики достаточно субъективные, и их достаточно сложно измерить. Но, в отличие от удобства и полезности, скорость работы сайта можно вполне точно измерить. Более того, скорость работы сайта имеет наибольший вес – если сайт крайне удобный и очень полезный, но медленно работает, реакция пользователя уже не будет такой медленной - он поспешит закрыть вкладку так быстро, как только может.
Еще скорость отклика, или работы сайта, сильно влияет на поисковую выдачу. На самом верху располагаются сайты, которые обрабатывают запросы быстрее, разумеется, при прочих равных условиях.
В итоге получается, что скорость работы сайты – очень критичный показатель, оказывающие наибольшее влияние и лояльность аудитории.

Измерение скорости


Скорость работы сайты складывается из нескольких показателей: время на поиск сопоставления DNS-имени и ip-адреса, время на соединение с полученным ip-адресом, время на установку защищенного соединения и время на проверку действительности сертификата, время на отправку запроса на сервер, время ожидания ответа и, наконец, загрузка контента. Такой цикл выполняется для загрузки абсолютно любого документа, доступного по http-протоколу. Конечно, все современные браузеры умеют кешировать сопоставленные ранее DNS-имена, сохранять, на время сессии, данные о SSL-сертификате (чтобы сократить издержки на запросы удостоверяющего центра).

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

1. Поиск DNS-имени или DNS-resolve.
2. Соединение с сервером. Init connection
3. Проверка SSL – SSL handshake, check cerfiticate valid
4. Отправка запроса. Sending Request
5. Ожидание ответа. Time To First Byte
6. Загрузка контента. Content Download

Полученную сумму надо умножить на кол-во загружаемых документов, связанных, например, с одной страницей. То есть – если мы запрашиваем heap.tech то вместе с основным html-документом дополнительно будут загружены несколько файлов с css-стилями, парочка javascript-сценариев и штук 10 картинок и т.д.

Оптимизация


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

Например, администратор Валера расположил свои сервера в России, но часть его аудитории расположена в Казахстане. Соответственно время на поиск и соединение с сервером, у этой части аудитории, будет выше, чем у Российской, и, как следствие, общая скорость работы сайты будет ниже, а недовольства больше.
Валера круто сис-админ, он создал распределенную сеть серверов, часть из которых, он физически разместил ближе к определенному географическому сегменту аудитории. Это позволило снизить сетевые издержки на поиск DNS-имени и соединение казахской аудитории. Еще он установил сертификаты очень быстрого удостоверяющего центра (CA Authority), расположенного прямо в центре мира. Но сайт почему-то работает по-прежнему долго, и даже еще дольше, чем было раньше.
В ходе разбирательств он пришел к выводу, что его web-сервер слишком долго обрабатывает запросы при большом количестве пользователей. Разумеется, он снес свой старый http-сервер и перешел на использование более современного, с web-сокетами и оптимизациями.
Но чуда не произошло. Сайт хоть и стал работать несколько быстрее, но этого явно недостаточно. После анализа трафика Валера понял, что время, прошедшее после установки соединения и отправки запроса на получения главной страницы его сайта, до получения ответа слишком велико. То есть web-сервер, получив запрос от пользователя начинает подготавливать ответ - для этого он (web-сервер) выполняет сценарии, например, написанные на php (.Net / cgi / node-js & etc). На этом этапе главную роль играет мастерство программиста Виталика, которые разрабатывал сайт. И, к сожалению, Виталик допустил ряд ошибок, и прямо на главной странице: блок с новостями периодически зависает, а если повезло, и он не завис - то работает экстремально долго. Валера рассказал Виталику о проблеме, вместе они её исправили. И заодно пробежались остальным разделам на предмет поиска подобных ошибок.

Набор средств для измерения скорости сайта


Одним из лучших средств для проверки скорости работы сайты – это сам браузер в режиме отладки. Возьмем, например Chrome или любой другой браузер на его основе. Далее откроем инструменты разработчика и посмотрим на тайм-лайн загрузки любимого сайта.
Такую проверку нужно выполнять как можно чаще - проблемы с доступностью или со скоростью работы сайта обычно возникают не по расписанию.
Для таких задач лучше всего подойдет сервис, выполняющий проверку ресурса с высокой периодчностью. Например pingdom.com, airin.one, monitis.com.
Из трех лучшим, на мой взгляд, является airin.one - ресурс комплексно оценивает скорость отклика сайта, измеряя абсолютно все показатели и, на основании накопленных данных формирует отчет по производительности, и, в случае обнаружения проблем со скоростью или доступностью, информирует администратора по email. К томуже airin.one работает абсолютно бесплатно, по крайней мере пока.


Финалочка


Скорость работы сайта складывается из:
1. потраченного времени на поиск, соединение, проверку сертификата и другие накладные расходы, затрачиваемые на передачу траффика по сети интернет.
2. Скорость работы веб-сервера как отдельного приложения (Apache, Nginx, IIS & etc)
3. Скорость формирования страниц и разделов, за которые отвечают серверные сценарии, написанные на php, .net, cgi, node-js или с использованием других фреймворков

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

Оставлять комментарии могут только зарегистрированные пользователи

пока никто не оставлял комментариев