LINUX.ORG.RU
ФорумAdmin

Nginx показывает время запроса 0 (ноль) секунд

 


0

3

Делаю тест в браузере (fetch), скачиваю JS (~1mb), консоль браузера показывает

Waiting for server 146ms
Content download 823ms
Total: 972ms

Но в логах вижу Nginx ($request_time) отдает за 0ms (бывает через раз отдает 0.3s)

...HTTP/1.1 200 1145976 0.000

Лог стандартный main
log_format main '$host $scheme $remote_addr $realip_remote_addr - [$time_local] "$request" $status $body_bytes_sent $request_time "$http_referer" "$http_user_agent"';

Читаю в мане
$request_time
время обработки запроса в секундах с точностью до миллисекунд; время, прошедшее с момента чтения первых байт от клиента до момента записи в лог после отправки последних байт клиенту

То есть Nginx отдал 1145976 байт за 0 сек.?

UDP. Вроде понял почему, если через одно TCP соединение гонять запросы то будет всегда - 0. Получается время всех запросов накапливается и когда оно закрывается то (что?)...в общем время посмотреть что ли?

UPD2.
Делаю через curl

HTTP/1.1" 200 1145976 0.004 "-" "curl/8.5.0"
HTTP/1.1" 200 1145976 0.004 "-" "curl/8.5.0"
HTTP/1.1" 200 1145976 0.004 "-" "curl/8.5.0"
HTTP/1.1" 200 1145976 0.004 "-" "curl/8.5.0"
HTTP/1.1" 200 1145976 0.254 "-" "curl/8.5.0"
HTTP/1.1" 200 1145976 0.005 "-" "curl/8.5.0"
HTTP/1.1" 200 1145976 0.000 "-" "curl/8.5.0"
HTTP/1.1" 200 1145976 0.052 "-" "curl/8.5.0"
HTTP/1.1" 200 1145976 0.004 "-" "curl/8.5.0"


И тут 0 бывает проскакивает, но заметно реже, чем через хром, но все же. Но CURL ведь каждый раз новое соединение устанавливает или че?


ВОПРОС2
==========
Почему хром показывает время запроса 900ms, а Nginx 0.3s?
Connection Start

Staled 0.74ms
DNS Lookup 128ms
Initial connection 153ms
SSL 73ms

Request
Request sent 0.18ms
Waiting for server  response 150ms
Content Download 498ms

Total 932ms

//Но в логах nginx этот же запрос показывает что выполнился за 0.3s
HTTP/1.1" 200 1145976 0.313



Кому верить? Разумеетя в хроме отключены все кеши + запрос делается с меткой времени (в хвост добавляется ?t=Date.now())

★★★★

Последнее исправление: gobot (всего исправлений: 5)
  1. между тобой и nginx есть что-нибудь кэширующее? Особенно если nginx в облаке. tls терминируется где-нибудь на балансировщике, nginx общается с ним, а не с клиентом. На скорости линка 10Gbit (а виртуальный может и больше) твой мегабайт улетит примерно за 0.9ms

  2. можно посмотреть тайминг в дампе трафика

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

router ★★★★★
()
Ответ на: комментарий от router

Я собственно хочу понять какого фига мегабайт мой несчастный скачивается секунду а то и две, на сервере 1GBPS. Никаких промежутков кешей\CF нет. Сервер РУССКИЙ православный (освящен святой водой кстати!) Это я к тому, что РКН ничего там не шаманит, не подпихивает не подсовывает не замедляет.

С других серверов я смотрю 2 мега мой же хром проглатывает за 500ms. Как добиться таких скоростей? Где затык может быть? Nginx медленно отдает? OS тюнинговать? Сетевуху или что?

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

Вся лабуда это отнимает 300ms

500

Initial connection 153ms

Waiting for server response 150ms

Ну я бы сказал, что RTT порядка 150. Либо он сильно далеко, либо православно-освящеенный ркн православно-освященно бдит

И кстати по http тоже самое, даже медленней почему то

dpi видит голый текст. надо и его проверить на предмет экстремизма

router ★★★★★
()
Ответ на: комментарий от router

500

Хм, 153 + 128 + 73 = 354? Откуда 500?

Ну да ладно, замерял по iperf скорость, скачет от 4-8-20mbit/s, в среднем где то 12mbit/s. Если 8mbit/s, то это 1mb\sec так и есть. Это до РУССКОГО провайдера-хостера. Замерял на OVH-speedtest, там уже 30mbit\s (что странно). Либо провайдер скорость режет по клиентам то ли че.

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

Waiting for server response 150ms

nginx отдаёт статику мгновенно. Эти 150 мс между запросом и началом ответа - время где-то в пути, как и initial connection

итого 153 + 128 + 73 + 150 = 504

router ★★★★★
()
Ответ на: комментарий от gobot

скачет от 4-8-20mbit/s

Ну т.е. это не выделенный канал, ты его делишь с другими клиентами. И он довольно сильно нагружен

20mbit - это 2.5 МБайт/с, т.е твои 500 мс на передачу 1 МБ - это ещё удачный вариант

router ★★★★★
()
Ответ на: комментарий от router

Ну ладно, в целом если убрать расходы на соединения (keep-alive), включить gzip на сервере(включил для js\css, сжал в 3 раза), то ещё по божески

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

по iperf скорость, скачет от 4-8-20mbit/s, в среднем где то 12mbit/s. Если 8mbit/s, то это 1mb\sec так и есть

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

vbr ★★★★★
()