Как узнать время отклика сайта из командной строки Linux

Sep 10, 2015 14:54 · 350 words · 2 minute read curl monitoring

Узнать время отклика сайта из командной строки Linux проще всего с помощью curl — утилиты с открытым исходным кодом, которая позволяет взаимодействовать с серверами по множеству протоколов.

Давайте разберемся с использованием данной весьма полезной утилиты!

Установить утилиту можно с помощью команды:

aptitude install curl

Проверить версию установленной утилиты curl можно так:

curl --version

Для получения суммарного времени отклика сайта (в секундах) воспользуемся следующей командой:

curl -s -w %{time_total}\\n -o /dev/null https://letsclearitup.com.ua/

Результатом будет:

0.182

Описание используемых параметров:

  • -s — не отображать индикатор выполнения или сообщения об ошибках (тихий режим);
  • -w — что отображать после завершенной и успешной операции;
  • -o — перенаправление вывода в /dev/null;
  • time_total — время выполнения операции (в секундах).

Для получения суммарного времени отклика сайта, а также времени затраченного на lookup, connect, pretransfer, starttransfer (в секундах) используем следующую команду:

curl -s -w '\nLookup time:\t%{time_namelookup}\nConnect time:\t%{time_connect}\nPreXfer time:\t%{time_pretransfer}\nStartXfer time:\t%{time_starttransfer}\n\nTotal time:\t%{time_total}\n' -o /dev/null https://letsclearitup.com.ua/

Результатом выполнения команды будет:

Lookup time:	0.001
Connect time:	0.012
PreXfer time:	0.012
StartXfer time:	0.088

Total time:	0.101

Здесь используется несколько новых параметров:

  • time_namelookup — время, затраченное на преобразование доменного имени в IP-адрес;
  • time_connect — время, затраченное на подключение к удаленному серверу по TCP;
  • time_pretransfer — время, затраченное на подготовку к обмену данными (включает в себя «обмен рукопожатиями»);
  • time_starttransfer — время, затраченное на действия до начала передачи первого байта данных (включает в себя time_pretransfer).

В последних версиях утилиты curl (>7.12) появилась возможность получать время (в секундах), затраченное на appconnect и redirect. Для этого выполняем следующую команду:

curl -s -w '\nLookup time:\t%{time_namelookup}\nConnect time:\t%{time_connect}\nAppCon time:\t%{time_appconnect}\nRedirect time:\t%{time_redirect}\nPreXfer time:\t%{time_pretransfer}\nStartXfer time:\t%{time_starttransfer}\n\nTotal time:\t%{time_total}\n' -o /dev/null https://letsclearitup.com.ua/

Результат выполнения команды:

Lookup time:	0.001
Connect time:	0.012
AppCon time:	0.000
Redirect time:	0.000
PreXfer time:	0.012
StartXfer time:	0.089

Total time:	0.102

В данном примере появилось два новых параметра:

  • time_appconnect — время до завершения соединения/рукопожатия по протоколу SSL/SSH (доступно с версии 7.19.0);
  • time_redirect — время, затраченное на редиректы (суммарное время всех редиректов. Доступно с версии 7.12.3).

Примечание. Доверять одному значению, полученному в результате замеров, не совсем правильно. Поэтому лучше несколько раз измерить время отклика сайта из командной строки Linux, например так:

seq 5 | xargs -I@ -n1 curl -s -w %{time_total}\\n -o /dev/null https://letsclearitup.com.ua/
tweet Share