Простой инструмент Linux для определения времени http-запроса в миллисекундах


12

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

Ответы:


12

Делает ли это то, что вы ищете?

time wget http://example.com

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

@PaulLynch: я сделал простой тест. Я запустил это в одном терминале, rm foo; touch foo; python -m SimpleHTTPServerа в другом: time wget --quiet --output-document=/dev/null localhost:8000/fooи результат составил 2 миллисекунды. Я запустил то же самое wgetна google.com (который получает около 10 000 символов) и получил около четверти секунды. Итак, давайте назовем время запуска / выполнения около 1% в этом случае. Затем для сравнения я сделал time curl file://fooи получил около 4 миллисекунд.
Приостановлено до дальнейшего уведомления.

Кажется, вы правы, для запросов http - из-за чего я получаю только около 2 мс замедления. Я пытался получить https URL. Для этого wget примерно на 25 мс медленнее для запроса, который Chrome возвращает примерно за 10 мс (а не "из кэша"). И wget, и Chrome работают на той же машине, что и веб-сервер, и называют его «localhost», поэтому я виню wget в разнице во времени.
Пол Линч

7

Httping сделает это.

Httping похож на «ping», но для http-запросов. Дайте ему URL, и он покажет вам, сколько времени требуется для подключения, отправки запроса и получения ответа (только заголовки). Имейте в виду, что передача по сети также требует времени! Таким образом, он измеряет задержку сети веб-сервер +.


3

Wireshark позволит вам изучить перевод во многих деталях. Вы можете увидеть, сколько времени требуется для загрузки одного файла, как предложил Деннис, или, если вы откроете URL-адрес в веб-браузере, вы увидите, сколько времени потребуется для загрузки всех связанных файлов (изображений, сценариев и т. Д.).


2

Вы можете сделать это с помощью curl согласно этому ответу

Создайте новый файл curl-format.txtи вставьте:

    time_namelookup:  %{time_namelookup}\n
       time_connect:  %{time_connect}\n
    time_appconnect:  %{time_appconnect}\n
   time_pretransfer:  %{time_pretransfer}\n
      time_redirect:  %{time_redirect}\n
 time_starttransfer:  %{time_starttransfer}\n
                    ----------\n
         time_total:  %{time_total}\n

Затем запустите curl следующим образом:

curl -w "@curl-format.txt" -o /dev/null -s "http://wordpress.com/"

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.